From 307c6fec618d5e509c754362687253ef44bb5f3f Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Wed, 1 Jul 2020 09:53:53 +0200 Subject: Use CrateName for semantic names --- crates/ra_db/src/input.rs | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) (limited to 'crates/ra_db/src') diff --git a/crates/ra_db/src/input.rs b/crates/ra_db/src/input.rs index 7f3660118..a8cc588f9 100644 --- a/crates/ra_db/src/input.rs +++ b/crates/ra_db/src/input.rs @@ -94,6 +94,13 @@ impl fmt::Display for CrateName { } } +impl ops::Deref for CrateName { + type Target = str; + fn deref(&self) -> &Self::Target { + &*self.0 + } +} + #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] pub struct ProcMacroId(pub u32); @@ -138,7 +145,7 @@ pub struct Env { #[derive(Debug, Clone, PartialEq, Eq)] pub struct Dependency { pub crate_id: CrateId, - pub name: SmolStr, + pub name: CrateName, } impl CrateGraph { @@ -178,7 +185,7 @@ impl CrateGraph { if self.dfs_find(from, to, &mut FxHashSet::default()) { return Err(CyclicDependenciesError); } - self.arena.get_mut(&from).unwrap().add_dep(name.0, to); + self.arena.get_mut(&from).unwrap().add_dep(name, to); Ok(()) } @@ -247,7 +254,7 @@ impl CrateId { } impl CrateData { - fn add_dep(&mut self, name: SmolStr, crate_id: CrateId) { + fn add_dep(&mut self, name: CrateName, crate_id: CrateId) { self.dependencies.push(Dependency { name, crate_id }) } } @@ -429,7 +436,10 @@ mod tests { .is_ok()); assert_eq!( graph[crate1].dependencies, - vec![Dependency { crate_id: crate2, name: "crate_name_with_dashes".into() }] + vec![Dependency { + crate_id: crate2, + name: CrateName::new("crate_name_with_dashes").unwrap() + }] ); } } -- cgit v1.2.3