diff options
| author | Stanislav <ixentrum@gmail.com> | 2022-09-07 03:01:06 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-09-07 03:01:06 +0300 |
| commit | bd0eeb3f041cc57dad3ac40ed6cfcc08f1055638 (patch) | |
| tree | c37ab3fb1f674e340379d6f300f4edc534edc8ac | |
| parent | 6001e7dfb191f68332e2daf2eec692bbc2ae244f (diff) | |
| download | rust-bd0eeb3f041cc57dad3ac40ed6cfcc08f1055638.tar.gz rust-bd0eeb3f041cc57dad3ac40ed6cfcc08f1055638.zip | |
Update crates/ide/src/references.rs
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
| -rw-r--r-- | crates/ide/src/references.rs | 17 |
1 files changed, 4 insertions, 13 deletions
diff --git a/crates/ide/src/references.rs b/crates/ide/src/references.rs index 53a7a3a2173..d4c431f75f7 100644 --- a/crates/ide/src/references.rs +++ b/crates/ide/src/references.rs @@ -116,19 +116,10 @@ pub(crate) fn find_all_refs( fn retain_import_usages(usages: &mut UsageSearchResult, sema: &Semantics<'_, RootDatabase>) { for (file_id, refs) in &mut usages.references { - refs.retain(|x| { - let file_sema = sema.parse(file_id.clone()).syntax().clone(); - - let maybe_node = file_sema.child_or_token_at_range(x.range.clone()); - - if let Some(node) = maybe_node { - let res = match node { - syntax::NodeOrToken::Node(x) => !matches!(x.kind(), USE), - syntax::NodeOrToken::Token(_) => true, - }; - res - } else { - true + refs.retain(|it| { + match if.name.as_name_ref() { + Some(name_ref) => name_ref.syntax().ancestors().any(|it| !matches(it.kind(), USE)), + None => true, } }); } |
