Skip to main content

Module db

Module db 

Source
Expand description

Salsa-based incremental computation layer.

Phase A scaffold: defines the RootDatabase, a SourceFile input, and a trivial parsed_doc query that wraps diagnostics::parse_document. Not yet wired into Backend — this exists so downstream phases can grow queries on top of it incrementally.

Re-exports§

pub use analysis::AnalysisHost;
pub use analysis::RootDatabase;
pub use input::FileId;
pub use input::SourceFile;
pub use input::Workspace;

Modules§

analysis
Database + Analysis/AnalysisHost split (rust-analyzer pattern).
codebase
codebase salsa query — aggregates every file’s StubSlice into a finalized mir_codebase::Codebase via codebase_from_parts.
definitions
file_definitions salsa query — runs DefinitionCollector::collect_slice under salsa memoization, producing a pure StubSlice value per file.
index
file_index salsa query — derives a compact FileIndex from a parsed document. Depends on parsed_doc, so editing a file reparses once and the index re-extracts from the new AST.
input
Salsa inputs.
method_returns
method_returns salsa query — derives the per-file map of class_name -> method_name -> return_class_name. Depends on parsed_doc.
parse
The parsed_doc salsa query: parses a SourceFile into an Arc<ParsedDoc> under salsa memoization. Downstream queries (file_index, method_returns, semantic diagnostics) depend on this one, so each file is parsed at most once per revision.
refs
file_refs / symbol_refs salsa queries — Phase D.
semantic
semantic_issues salsa query — runs mir_analyzer Pass-2 body analysis on a single file against the finalized workspace codebase. Depends on codebase(ws) and parsed_doc(file), so invalidation happens automatically when the file’s text or any file that contributes to the shared codebase changes.
workspace_index
workspace_index salsa query — aggregates every file’s FileIndex into a single structure with pre-built reverse maps.