Skip to content

Commit a627377

Browse files
bors[bot]Veykril
andauthored
Merge #8102
8102: Cleanup qualify_path r=Veykril a=Veykril bors r+ Co-authored-by: Lukas Wirth <[email protected]>
2 parents 7200b99 + c34a9f1 commit a627377

File tree

1 file changed

+17
-27
lines changed

1 file changed

+17
-27
lines changed

crates/ide_assists/src/handlers/qualify_path.rs

Lines changed: 17 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,10 @@ use syntax::{
1414

1515
use crate::{
1616
assist_context::{AssistContext, Assists},
17+
handlers::auto_import::find_importable_node,
1718
AssistId, AssistKind, GroupLabel,
1819
};
1920

20-
use super::auto_import::find_importable_node;
21-
2221
// Assist: qualify_path
2322
//
2423
// If the name is unresolved, provides all possible qualified paths for it.
@@ -43,22 +42,20 @@ pub(crate) fn qualify_path(acc: &mut Assists, ctx: &AssistContext) -> Option<()>
4342
return None;
4443
}
4544

46-
let candidate = import_assets.import_candidate();
4745
let range = ctx.sema.original_range(&syntax_under_caret).range;
48-
46+
let candidate = import_assets.import_candidate();
4947
let qualify_candidate = match candidate {
50-
ImportCandidate::Path(candidate) => {
51-
if candidate.qualifier.is_some() {
52-
cov_mark::hit!(qualify_path_qualifier_start);
53-
let path = ast::Path::cast(syntax_under_caret)?;
54-
let (prev_segment, segment) = (path.qualifier()?.segment()?, path.segment()?);
55-
QualifyCandidate::QualifierStart(segment, prev_segment.generic_arg_list())
56-
} else {
57-
cov_mark::hit!(qualify_path_unqualified_name);
58-
let path = ast::Path::cast(syntax_under_caret)?;
59-
let generics = path.segment()?.generic_arg_list();
60-
QualifyCandidate::UnqualifiedName(generics)
61-
}
48+
ImportCandidate::Path(candidate) if candidate.qualifier.is_some() => {
49+
cov_mark::hit!(qualify_path_qualifier_start);
50+
let path = ast::Path::cast(syntax_under_caret)?;
51+
let (prev_segment, segment) = (path.qualifier()?.segment()?, path.segment()?);
52+
QualifyCandidate::QualifierStart(segment, prev_segment.generic_arg_list())
53+
}
54+
ImportCandidate::Path(_) => {
55+
cov_mark::hit!(qualify_path_unqualified_name);
56+
let path = ast::Path::cast(syntax_under_caret)?;
57+
let generics = path.segment()?.generic_arg_list();
58+
QualifyCandidate::UnqualifiedName(generics)
6259
}
6360
ImportCandidate::TraitAssocItem(_) => {
6461
cov_mark::hit!(qualify_path_trait_assoc_item);
@@ -119,7 +116,7 @@ impl QualifyCandidate<'_> {
119116
QualifyCandidate::TraitAssocItem(qualifier, segment) => {
120117
replacer(format!("<{} as {}>::{}", qualifier, import, segment));
121118
}
122-
&QualifyCandidate::TraitMethod(db, ref mcall_expr) => {
119+
QualifyCandidate::TraitMethod(db, mcall_expr) => {
123120
Self::qualify_trait_method(db, mcall_expr, replacer, import, item);
124121
}
125122
}
@@ -201,17 +198,10 @@ fn group_label(candidate: &ImportCandidate) -> GroupLabel {
201198

202199
fn label(candidate: &ImportCandidate, import: &LocatedImport) -> String {
203200
match candidate {
204-
ImportCandidate::Path(candidate) => {
205-
if candidate.qualifier.is_some() {
206-
format!("Qualify with `{}`", import.import_path)
207-
} else {
208-
format!("Qualify as `{}`", import.import_path)
209-
}
210-
}
211-
ImportCandidate::TraitAssocItem(_) => {
212-
format!("Qualify with `{}`", import.import_path)
201+
ImportCandidate::Path(candidate) if candidate.qualifier.is_none() => {
202+
format!("Qualify as `{}`", import.import_path)
213203
}
214-
ImportCandidate::TraitMethod(_) => format!("Qualify with `{}`", import.import_path),
204+
_ => format!("Qualify with `{}`", import.import_path),
215205
}
216206
}
217207

0 commit comments

Comments
 (0)