Crate base_db[][src]

Expand description

base_db defines basic database traits. The concrete DB is defined by ide.


pub use salsa;


A set of high-level utility fixture methods to use in tests.



Path relative to a file.

Path relative to a file.

A panic payload indicating that a salsa revision was cancelled.

Encapsulate a bunch of raw .set calls on the database.

CrateGraph is a bit of information which turns a set of text files into a number of Rust crates.

Handle to a file in Vfs

Silly workaround for cyclic deps between the traits

A set of VfsPaths identified by FileIds.

Representative struct for the query group.

Representative struct for the query group.

Files are grouped into source roots. A source root is a directory on the file systems which is watched for changes. Typically it corresponds to a Rust crate. Source roots might be nested: in this case, a file belongs to the nearest enclosing source root. Paths to files are always relative to a source root, and the analyzer does not know the root path of the source root at all. So, a file from one source root can’t refer to a file in another source root by path.

Path in Vfs.


Origin of the crates. It is used in emitting monikers.



Database which stores all significant input facts: source code and project model. Everything else in rust-analyzer is derived from these queries.

We don’t want to give HIR knowledge of source roots, hence we extract these methods into a separate DB.