@@ -14,11 +14,10 @@ use syntax::{
1414
1515use 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
202199fn 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