aboutsummaryrefslogtreecommitdiff
path: root/crates/ide_assists/src/handlers/qualify_path.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/ide_assists/src/handlers/qualify_path.rs')
-rw-r--r--crates/ide_assists/src/handlers/qualify_path.rs23
1 files changed, 12 insertions, 11 deletions
diff --git a/crates/ide_assists/src/handlers/qualify_path.rs b/crates/ide_assists/src/handlers/qualify_path.rs
index b0b0d31b4..d3e34e540 100644
--- a/crates/ide_assists/src/handlers/qualify_path.rs
+++ b/crates/ide_assists/src/handlers/qualify_path.rs
@@ -1,6 +1,6 @@
1use std::iter; 1use std::iter;
2 2
3use hir::{AsAssocItem, AsName}; 3use hir::AsAssocItem;
4use ide_db::helpers::{import_assets::ImportCandidate, mod_path_to_ast}; 4use ide_db::helpers::{import_assets::ImportCandidate, mod_path_to_ast};
5use ide_db::RootDatabase; 5use ide_db::RootDatabase;
6use syntax::{ 6use syntax::{
@@ -8,7 +8,6 @@ use syntax::{
8 ast::{make, ArgListOwner}, 8 ast::{make, ArgListOwner},
9 AstNode, 9 AstNode,
10}; 10};
11use test_utils::mark;
12 11
13use crate::{ 12use crate::{
14 assist_context::{AssistContext, Assists}, 13 assist_context::{AssistContext, Assists},
@@ -47,25 +46,25 @@ pub(crate) fn qualify_path(acc: &mut Assists, ctx: &AssistContext) -> Option<()>
47 let qualify_candidate = match candidate { 46 let qualify_candidate = match candidate {
48 ImportCandidate::Path(candidate) => { 47 ImportCandidate::Path(candidate) => {
49 if candidate.qualifier.is_some() { 48 if candidate.qualifier.is_some() {
50 mark::hit!(qualify_path_qualifier_start); 49 cov_mark::hit!(qualify_path_qualifier_start);
51 let path = ast::Path::cast(syntax_under_caret)?; 50 let path = ast::Path::cast(syntax_under_caret)?;
52 let (prev_segment, segment) = (path.qualifier()?.segment()?, path.segment()?); 51 let (prev_segment, segment) = (path.qualifier()?.segment()?, path.segment()?);
53 QualifyCandidate::QualifierStart(segment, prev_segment.generic_arg_list()) 52 QualifyCandidate::QualifierStart(segment, prev_segment.generic_arg_list())
54 } else { 53 } else {
55 mark::hit!(qualify_path_unqualified_name); 54 cov_mark::hit!(qualify_path_unqualified_name);
56 let path = ast::Path::cast(syntax_under_caret)?; 55 let path = ast::Path::cast(syntax_under_caret)?;
57 let generics = path.segment()?.generic_arg_list(); 56 let generics = path.segment()?.generic_arg_list();
58 QualifyCandidate::UnqualifiedName(generics) 57 QualifyCandidate::UnqualifiedName(generics)
59 } 58 }
60 } 59 }
61 ImportCandidate::TraitAssocItem(_) => { 60 ImportCandidate::TraitAssocItem(_) => {
62 mark::hit!(qualify_path_trait_assoc_item); 61 cov_mark::hit!(qualify_path_trait_assoc_item);
63 let path = ast::Path::cast(syntax_under_caret)?; 62 let path = ast::Path::cast(syntax_under_caret)?;
64 let (qualifier, segment) = (path.qualifier()?, path.segment()?); 63 let (qualifier, segment) = (path.qualifier()?, path.segment()?);
65 QualifyCandidate::TraitAssocItem(qualifier, segment) 64 QualifyCandidate::TraitAssocItem(qualifier, segment)
66 } 65 }
67 ImportCandidate::TraitMethod(_) => { 66 ImportCandidate::TraitMethod(_) => {
68 mark::hit!(qualify_path_trait_method); 67 cov_mark::hit!(qualify_path_trait_method);
69 let mcall_expr = ast::MethodCallExpr::cast(syntax_under_caret)?; 68 let mcall_expr = ast::MethodCallExpr::cast(syntax_under_caret)?;
70 QualifyCandidate::TraitMethod(ctx.sema.db, mcall_expr) 69 QualifyCandidate::TraitMethod(ctx.sema.db, mcall_expr)
71 } 70 }
@@ -160,7 +159,9 @@ fn find_trait_method(
160) -> Option<hir::Function> { 159) -> Option<hir::Function> {
161 if let Some(hir::AssocItem::Function(method)) = 160 if let Some(hir::AssocItem::Function(method)) =
162 trait_.items(db).into_iter().find(|item: &hir::AssocItem| { 161 trait_.items(db).into_iter().find(|item: &hir::AssocItem| {
163 item.name(db).map(|name| name == trait_method_name.as_name()).unwrap_or(false) 162 item.name(db)
163 .map(|name| name.to_string() == trait_method_name.to_string())
164 .unwrap_or(false)
164 }) 165 })
165 { 166 {
166 Some(method) 167 Some(method)
@@ -210,7 +211,7 @@ mod tests {
210 211
211 #[test] 212 #[test]
212 fn applicable_when_found_an_import_partial() { 213 fn applicable_when_found_an_import_partial() {
213 mark::check!(qualify_path_unqualified_name); 214 cov_mark::check!(qualify_path_unqualified_name);
214 check_assist( 215 check_assist(
215 qualify_path, 216 qualify_path,
216 r" 217 r"
@@ -502,7 +503,7 @@ fn main() {
502 503
503 #[test] 504 #[test]
504 fn associated_struct_const() { 505 fn associated_struct_const() {
505 mark::check!(qualify_path_qualifier_start); 506 cov_mark::check!(qualify_path_qualifier_start);
506 check_assist( 507 check_assist(
507 qualify_path, 508 qualify_path,
508 r" 509 r"
@@ -603,7 +604,7 @@ fn main() {
603 604
604 #[test] 605 #[test]
605 fn associated_trait_const() { 606 fn associated_trait_const() {
606 mark::check!(qualify_path_trait_assoc_item); 607 cov_mark::check!(qualify_path_trait_assoc_item);
607 check_assist( 608 check_assist(
608 qualify_path, 609 qualify_path,
609 r" 610 r"
@@ -673,7 +674,7 @@ fn main() {
673 674
674 #[test] 675 #[test]
675 fn trait_method() { 676 fn trait_method() {
676 mark::check!(qualify_path_trait_method); 677 cov_mark::check!(qualify_path_trait_method);
677 check_assist( 678 check_assist(
678 qualify_path, 679 qualify_path,
679 r" 680 r"