Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/base_db/src/input.rs')
| -rw-r--r-- | crates/base_db/src/input.rs | 41 |
1 files changed, 22 insertions, 19 deletions
diff --git a/crates/base_db/src/input.rs b/crates/base_db/src/input.rs index db3f85604b..43d7ccad49 100644 --- a/crates/base_db/src/input.rs +++ b/crates/base_db/src/input.rs @@ -117,21 +117,22 @@ impl ops::Deref for CrateName { } /// Origin of the crates. It is used in emitting monikers. -#[derive(Debug, Clone)] +#[derive(Debug, Clone, PartialEq, Eq, Hash)] pub enum CrateOrigin { /// Crates that are from crates.io official registry, CratesIo { repo: Option<String> }, /// Crates that are provided by the language, like std, core, proc-macro, ... - Lang, - /// Crates that we don't know their origin. - // Ideally this enum should cover all cases, and then we remove this variant. - Unknown, + Lang(LangCrateOrigin), } -impl Default for CrateOrigin { - fn default() -> Self { - Self::Unknown - } +#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] +pub enum LangCrateOrigin { + Alloc, + Core, + ProcMacro, + Std, + Test, + Other, } #[derive(Debug, Clone, PartialEq, Eq, Hash)] @@ -585,6 +586,8 @@ impl fmt::Display for CyclicDependenciesError { #[cfg(test)] mod tests { + use crate::CrateOrigin; + use super::{CfgOptions, CrateGraph, CrateName, Dependency, Edition::Edition2018, Env, FileId}; #[test] @@ -600,7 +603,7 @@ mod tests { Env::default(), Default::default(), false, - Default::default(), + CrateOrigin::CratesIo { repo: None }, ); let crate2 = graph.add_crate_root( FileId(2u32), @@ -612,7 +615,7 @@ mod tests { Env::default(), Default::default(), false, - Default::default(), + CrateOrigin::CratesIo { repo: None }, ); let crate3 = graph.add_crate_root( FileId(3u32), @@ -624,7 +627,7 @@ mod tests { Env::default(), Default::default(), false, - Default::default(), + CrateOrigin::CratesIo { repo: None }, ); assert!(graph .add_dep(crate1, Dependency::new(CrateName::new("crate2").unwrap(), crate2)) @@ -650,7 +653,7 @@ mod tests { Env::default(), Default::default(), false, - Default::default(), + CrateOrigin::CratesIo { repo: None }, ); let crate2 = graph.add_crate_root( FileId(2u32), @@ -662,7 +665,7 @@ mod tests { Env::default(), Default::default(), false, - Default::default(), + CrateOrigin::CratesIo { repo: None }, ); assert!(graph .add_dep(crate1, Dependency::new(CrateName::new("crate2").unwrap(), crate2)) @@ -685,7 +688,7 @@ mod tests { Env::default(), Default::default(), false, - Default::default(), + CrateOrigin::CratesIo { repo: None }, ); let crate2 = graph.add_crate_root( FileId(2u32), @@ -697,7 +700,7 @@ mod tests { Env::default(), Default::default(), false, - Default::default(), + CrateOrigin::CratesIo { repo: None }, ); let crate3 = graph.add_crate_root( FileId(3u32), @@ -709,7 +712,7 @@ mod tests { Env::default(), Default::default(), false, - Default::default(), + CrateOrigin::CratesIo { repo: None }, ); assert!(graph .add_dep(crate1, Dependency::new(CrateName::new("crate2").unwrap(), crate2)) @@ -732,7 +735,7 @@ mod tests { Env::default(), Default::default(), false, - Default::default(), + CrateOrigin::CratesIo { repo: None }, ); let crate2 = graph.add_crate_root( FileId(2u32), @@ -744,7 +747,7 @@ mod tests { Env::default(), Default::default(), false, - Default::default(), + CrateOrigin::CratesIo { repo: None }, ); assert!(graph .add_dep( |