diff --git a/crates/ide/src/doc_links.rs b/crates/ide/src/doc_links.rs index dfab8d313a..f199d599d5 100644 --- a/crates/ide/src/doc_links.rs +++ b/crates/ide/src/doc_links.rs @@ -112,7 +112,7 @@ pub(crate) fn external_docs( let node = token.parent()?; let definition = match_ast! { match node { - ast::NameRef(name_ref) => NameRefClass::classify(&sema, &name_ref).map(|d| d.referenced(sema.db))?, + ast::NameRef(name_ref) => NameRefClass::classify(&sema, &name_ref).map(|d| d.referenced())?, ast::Name(name) => NameClass::classify(&sema, &name).map(|d| d.referenced_or_defined(sema.db))?, _ => return None, } diff --git a/crates/ide/src/goto_declaration.rs b/crates/ide/src/goto_declaration.rs index e390616365..a9557ea5ef 100644 --- a/crates/ide/src/goto_declaration.rs +++ b/crates/ide/src/goto_declaration.rs @@ -25,7 +25,7 @@ pub(crate) fn goto_declaration( match parent { ast::NameRef(name_ref) => { let name_kind = NameRefClass::classify(&sema, &name_ref)?; - name_kind.referenced(sema.db) + name_kind.referenced() }, ast::Name(name) => { NameClass::classify(&sema, &name)?.referenced_or_defined(sema.db) diff --git a/crates/ide/src/goto_definition.rs b/crates/ide/src/goto_definition.rs index 0887af2ae3..d0f7d8de89 100644 --- a/crates/ide/src/goto_definition.rs +++ b/crates/ide/src/goto_definition.rs @@ -140,7 +140,7 @@ pub(crate) fn reference_definition( |lifetime| NameRefClass::classify_lifetime(sema, lifetime), |name_ref| NameRefClass::classify(sema, name_ref), )?; - let def = name_kind.referenced(sema.db); + let def = name_kind.referenced(); def.try_to_nav(sema.db) } diff --git a/crates/ide/src/goto_implementation.rs b/crates/ide/src/goto_implementation.rs index 07686017d0..c1f37e9ed0 100644 --- a/crates/ide/src/goto_implementation.rs +++ b/crates/ide/src/goto_implementation.rs @@ -32,7 +32,7 @@ pub(crate) fn goto_implementation( NameClass::classify(&sema, name).map(|class| class.referenced_or_defined(sema.db)) } ast::NameLike::NameRef(name_ref) => { - NameRefClass::classify(&sema, name_ref).map(|class| class.referenced(sema.db)) + NameRefClass::classify(&sema, name_ref).map(|class| class.referenced()) } ast::NameLike::Lifetime(_) => None, }?; diff --git a/crates/ide/src/hover.rs b/crates/ide/src/hover.rs index a5aeda9dd4..2cce43b41a 100644 --- a/crates/ide/src/hover.rs +++ b/crates/ide/src/hover.rs @@ -101,10 +101,10 @@ pub(crate) fn hover( def => def.defined(db), }), ast::NameRef(name_ref) => { - NameRefClass::classify(&sema, &name_ref).map(|d| d.referenced(db)) + NameRefClass::classify(&sema, &name_ref).map(|d| d.referenced()) }, ast::Lifetime(lifetime) => NameClass::classify_lifetime(&sema, &lifetime).map_or_else( - || NameRefClass::classify_lifetime(&sema, &lifetime).map(|d| d.referenced(db)), + || NameRefClass::classify_lifetime(&sema, &lifetime).map(|d| d.referenced()), |d| d.defined(db), ), diff --git a/crates/ide/src/references.rs b/crates/ide/src/references.rs index dfeee777d6..9d0b5f8f06 100644 --- a/crates/ide/src/references.rs +++ b/crates/ide/src/references.rs @@ -116,14 +116,12 @@ pub(crate) fn find_def( offset: TextSize, ) -> Option { let def = match sema.find_node_at_offset_with_descend(syntax, offset)? { - ast::NameLike::NameRef(name_ref) => { - NameRefClass::classify(sema, &name_ref)?.referenced(sema.db) - } + ast::NameLike::NameRef(name_ref) => NameRefClass::classify(sema, &name_ref)?.referenced(), ast::NameLike::Name(name) => { NameClass::classify(sema, &name)?.referenced_or_defined(sema.db) } ast::NameLike::Lifetime(lifetime) => NameRefClass::classify_lifetime(sema, &lifetime) - .map(|class| class.referenced(sema.db)) + .map(|class| class.referenced()) .or_else(|| { NameClass::classify_lifetime(sema, &lifetime) .map(|class| class.referenced_or_defined(sema.db)) diff --git a/crates/ide/src/rename.rs b/crates/ide/src/rename.rs index 7342ef4fcf..a1a03e775e 100644 --- a/crates/ide/src/rename.rs +++ b/crates/ide/src/rename.rs @@ -112,7 +112,7 @@ fn find_definition( } ast::NameLike::NameRef(name_ref) => { if let Some(def) = - NameRefClass::classify(sema, &name_ref).map(|class| class.referenced(sema.db)) + NameRefClass::classify(sema, &name_ref).map(|class| class.referenced()) { // if the name differs from the definitions name it has to be an alias if def.name(sema.db).map_or(false, |it| it.to_string() != name_ref.text()) { @@ -124,7 +124,7 @@ fn find_definition( } } ast::NameLike::Lifetime(lifetime) => NameRefClass::classify_lifetime(sema, &lifetime) - .map(|class| NameRefClass::referenced(class, sema.db)) + .map(|class| class.referenced()) .or_else(|| { NameClass::classify_lifetime(sema, &lifetime) .map(|it| it.referenced_or_defined(sema.db)) diff --git a/crates/ide_assists/src/handlers/extract_function.rs b/crates/ide_assists/src/handlers/extract_function.rs index 14dea0989f..eb6f7a7e6c 100644 --- a/crates/ide_assists/src/handlers/extract_function.rs +++ b/crates/ide_assists/src/handlers/extract_function.rs @@ -638,7 +638,7 @@ fn vars_used_in_body(ctx: &AssistContext, body: &FunctionBody) -> Vec { body.descendants() .filter_map(ast::NameRef::cast) .filter_map(|name_ref| NameRefClass::classify(&ctx.sema, &name_ref)) - .map(|name_kind| name_kind.referenced(ctx.db())) + .map(|name_kind| name_kind.referenced()) .filter_map(|definition| match definition { Definition::Local(local) => Some(local), _ => None, diff --git a/crates/ide_db/src/defs.rs b/crates/ide_db/src/defs.rs index 60bf11a4e3..2f944c53e3 100644 --- a/crates/ide_db/src/defs.rs +++ b/crates/ide_db/src/defs.rs @@ -186,7 +186,7 @@ impl NameClass { }) .and_then(|name_ref| NameRefClass::classify(sema, &name_ref))?; - Some(NameClass::Definition(name_ref_class.referenced(sema.db))) + Some(NameClass::Definition(name_ref_class.referenced())) } else { let extern_crate = it.syntax().parent().and_then(ast::ExternCrate::cast)?; let resolved = sema.resolve_extern_crate(&extern_crate)?; @@ -309,7 +309,7 @@ pub enum NameRefClass { impl NameRefClass { /// `Definition`, which this name refers to. - pub fn referenced(self, _db: &dyn HirDatabase) -> Definition { + pub fn referenced(self) -> Definition { match self { NameRefClass::Definition(def) => def, NameRefClass::FieldShorthand { local_ref, field_ref: _ } => {