diff options
Diffstat (limited to 'crates/ide_assists/src/handlers/qualify_path.rs')
-rw-r--r-- | crates/ide_assists/src/handlers/qualify_path.rs | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/crates/ide_assists/src/handlers/qualify_path.rs b/crates/ide_assists/src/handlers/qualify_path.rs index b36dd3823..272874ae3 100644 --- a/crates/ide_assists/src/handlers/qualify_path.rs +++ b/crates/ide_assists/src/handlers/qualify_path.rs | |||
@@ -2,8 +2,8 @@ use std::iter; | |||
2 | 2 | ||
3 | use hir::AsAssocItem; | 3 | use hir::AsAssocItem; |
4 | use ide_db::helpers::{ | 4 | use ide_db::helpers::{ |
5 | import_assets::{ImportCandidate, LocatedImport, Qualifier}, | 5 | import_assets::{ImportCandidate, LocatedImport}, |
6 | mod_path_to_ast, | 6 | item_name, mod_path_to_ast, |
7 | }; | 7 | }; |
8 | use ide_db::RootDatabase; | 8 | use ide_db::RootDatabase; |
9 | use syntax::{ | 9 | use syntax::{ |
@@ -48,7 +48,7 @@ pub(crate) fn qualify_path(acc: &mut Assists, ctx: &AssistContext) -> Option<()> | |||
48 | 48 | ||
49 | let qualify_candidate = match candidate { | 49 | let qualify_candidate = match candidate { |
50 | ImportCandidate::Path(candidate) => { | 50 | ImportCandidate::Path(candidate) => { |
51 | if !matches!(candidate.qualifier, Qualifier::Absent) { | 51 | if candidate.qualifier.is_some() { |
52 | cov_mark::hit!(qualify_path_qualifier_start); | 52 | cov_mark::hit!(qualify_path_qualifier_start); |
53 | let path = ast::Path::cast(syntax_under_caret)?; | 53 | let path = ast::Path::cast(syntax_under_caret)?; |
54 | let (prev_segment, segment) = (path.qualifier()?.segment()?, path.segment()?); | 54 | let (prev_segment, segment) = (path.qualifier()?.segment()?, path.segment()?); |
@@ -191,20 +191,22 @@ fn item_as_trait(db: &RootDatabase, item: hir::ItemInNs) -> Option<hir::Trait> { | |||
191 | fn group_label(candidate: &ImportCandidate) -> GroupLabel { | 191 | fn group_label(candidate: &ImportCandidate) -> GroupLabel { |
192 | let name = match candidate { | 192 | let name = match candidate { |
193 | ImportCandidate::Path(it) => &it.name, | 193 | ImportCandidate::Path(it) => &it.name, |
194 | ImportCandidate::TraitAssocItem(it) | ImportCandidate::TraitMethod(it) => &it.name, | 194 | ImportCandidate::TraitAssocItem(it) | ImportCandidate::TraitMethod(it) => { |
195 | &it.assoc_item_name | ||
196 | } | ||
195 | } | 197 | } |
196 | .text(); | 198 | .text(); |
197 | GroupLabel(format!("Qualify {}", name)) | 199 | GroupLabel(format!("Qualify {}", name)) |
198 | } | 200 | } |
199 | 201 | ||
200 | fn label(db: &RootDatabase, candidate: &ImportCandidate, import: &LocatedImport) -> String { | 202 | fn label(db: &RootDatabase, candidate: &ImportCandidate, import: &LocatedImport) -> String { |
201 | let display_path = match import.original_item_name(db) { | 203 | let display_path = match item_name(db, import.original_item) { |
202 | Some(display_path) => display_path.to_string(), | 204 | Some(display_path) => display_path.to_string(), |
203 | None => "{unknown}".to_string(), | 205 | None => "{unknown}".to_string(), |
204 | }; | 206 | }; |
205 | match candidate { | 207 | match candidate { |
206 | ImportCandidate::Path(candidate) => { | 208 | ImportCandidate::Path(candidate) => { |
207 | if !matches!(candidate.qualifier, Qualifier::Absent) { | 209 | if candidate.qualifier.is_some() { |
208 | format!("Qualify with `{}`", display_path) | 210 | format!("Qualify with `{}`", display_path) |
209 | } else { | 211 | } else { |
210 | format!("Qualify as `{}`", display_path) | 212 | format!("Qualify as `{}`", display_path) |