diff --git a/crates/ide/src/syntax_highlighting/highlight.rs b/crates/ide/src/syntax_highlighting/highlight.rs index e9b8eb407c5..ab48e5ad289 100644 --- a/crates/ide/src/syntax_highlighting/highlight.rs +++ b/crates/ide/src/syntax_highlighting/highlight.rs @@ -111,7 +111,6 @@ pub(super) fn element( } }; let h = match name_class { - NameRefClass::ExternCrate(_) => SymbolKind::Module.into(), NameRefClass::Definition(def) => { if let Definition::Local(local) = &def { if let Some(name) = local.name(db) { diff --git a/crates/ide/src/syntax_highlighting/test_data/highlight_extern_crate.html b/crates/ide/src/syntax_highlighting/test_data/highlight_extern_crate.html index 13f589cc0e2..957fe2f8656 100644 --- a/crates/ide/src/syntax_highlighting/test_data/highlight_extern_crate.html +++ b/crates/ide/src/syntax_highlighting/test_data/highlight_extern_crate.html @@ -38,6 +38,6 @@ pre { color: #DCDCCC; background: #3F3F3F; font-size: 22px; padd .unresolved_reference { color: #FC5555; text-decoration: wavy underline; } -
extern crate std;
-extern crate alloc as abc;
+
extern crate std;
+extern crate alloc as abc;
 
\ No newline at end of file diff --git a/crates/ide_assists/src/handlers/add_turbo_fish.rs b/crates/ide_assists/src/handlers/add_turbo_fish.rs index e4bb61c4e1c..d08111a90da 100644 --- a/crates/ide_assists/src/handlers/add_turbo_fish.rs +++ b/crates/ide_assists/src/handlers/add_turbo_fish.rs @@ -41,7 +41,7 @@ pub(crate) fn add_turbo_fish(acc: &mut Assists, ctx: &AssistContext) -> Option<( let name_ref = ast::NameRef::cast(ident.parent()?)?; let def = match NameRefClass::classify(&ctx.sema, &name_ref)? { NameRefClass::Definition(def) => def, - NameRefClass::ExternCrate(_) | NameRefClass::FieldShorthand { .. } => return None, + NameRefClass::FieldShorthand { .. } => return None, }; let fun = match def { Definition::ModuleDef(hir::ModuleDef::Function(it)) => it, diff --git a/crates/ide_db/src/defs.rs b/crates/ide_db/src/defs.rs index 4c7313f2f6d..60bf11a4e35 100644 --- a/crates/ide_db/src/defs.rs +++ b/crates/ide_db/src/defs.rs @@ -303,16 +303,14 @@ impl NameClass { /// reference to point to two different defs. #[derive(Debug)] pub enum NameRefClass { - ExternCrate(Crate), Definition(Definition), FieldShorthand { local_ref: Local, field_ref: Definition }, } impl NameRefClass { /// `Definition`, which this name refers to. - pub fn referenced(self, db: &dyn HirDatabase) -> Definition { + pub fn referenced(self, _db: &dyn HirDatabase) -> Definition { match self { - NameRefClass::ExternCrate(krate) => Definition::ModuleDef(krate.root_module(db).into()), NameRefClass::Definition(def) => def, NameRefClass::FieldShorthand { local_ref, field_ref: _ } => { // FIXME: this is inherently ambiguous -- this name refers to @@ -428,8 +426,9 @@ impl NameRefClass { } let extern_crate = ast::ExternCrate::cast(parent)?; - let resolved = sema.resolve_extern_crate(&extern_crate)?; - Some(NameRefClass::ExternCrate(resolved)) + let krate = sema.resolve_extern_crate(&extern_crate)?; + let root_module = krate.root_module(sema.db); + Some(NameRefClass::Definition(Definition::ModuleDef(root_module.into()))) } pub fn classify_lifetime(