Add SourceRoot::is_library, in preparation for salsa's durability

This commit is contained in:
Aleksey Kladov 2019-06-24 12:35:07 +03:00
parent 7d79be3280
commit 8109ebb101
2 changed files with 16 additions and 1 deletions

View file

@ -31,9 +31,23 @@ pub struct SourceRootId(pub u32);
#[derive(Default, Clone, Debug, PartialEq, Eq)]
pub struct SourceRoot {
/// Sysroot or crates.io library.
///
/// Libraries are considered mostly immutable, this assumption is used to
/// optimize salsa's query structure
pub is_library: bool,
pub files: FxHashMap<RelativePathBuf, FileId>,
}
impl SourceRoot {
pub fn new() -> SourceRoot {
Default::default()
}
pub fn new_library() -> SourceRoot {
SourceRoot { is_library: true, ..SourceRoot::new() }
}
}
/// `CrateGraph` is a bit of information which turns a set of text files into a
/// number of Rust crates. Each crate is defined by the `FileId` of its root module,
/// the set of cfg flags (not yet implemented) and the set of dependencies. Note