diff --git a/crates/ide-db/src/search.rs b/crates/ide-db/src/search.rs index 494ff82490..c807a5940d 100644 --- a/crates/ide-db/src/search.rs +++ b/crates/ide-db/src/search.rs @@ -629,6 +629,7 @@ impl<'a> FindUsages<'a> { alias.syntax().text_range(), )) { tracing::debug!("found alias: {alias}"); + cov_mark::hit!(container_use_rename); // FIXME: `use`s have no easy way to determine their search scope, but they are rare. to_process.push(( alias.text().to_smolstr(), @@ -644,12 +645,15 @@ impl<'a> FindUsages<'a> { name.syntax().text_range(), )) { if let Some(def) = is_alias(&alias) { + cov_mark::hit!(container_type_alias); insert_type_alias( sema.db, &mut to_process, name.text().as_str(), def.into(), ); + } else { + cov_mark::hit!(same_name_different_def_type_alias); } } } @@ -706,12 +710,15 @@ impl<'a> FindUsages<'a> { name.syntax().text_range(), )) { if let Some(def) = is_alias(&type_alias) { + cov_mark::hit!(self_type_alias); insert_type_alias( sema.db, &mut to_process, name.text().as_str(), def.into(), ); + } else { + cov_mark::hit!(same_name_different_def_type_alias); } } } @@ -793,6 +800,8 @@ impl<'a> FindUsages<'a> { return false; }; + cov_mark::hit!(short_associated_function_fast_search); + // FIXME: If Rust ever gains the ability to `use Struct::method` we'll also need to account for free // functions. let finder = Finder::new(name.as_bytes()); diff --git a/crates/ide/src/references.rs b/crates/ide/src/references.rs index 43c04b20dd..64d717f88d 100644 --- a/crates/ide/src/references.rs +++ b/crates/ide/src/references.rs @@ -2516,6 +2516,7 @@ fn main() { #[test] fn goto_ref_on_short_associated_function() { + cov_mark::check!(short_associated_function_fast_search); check( r#" struct Foo; @@ -2541,6 +2542,9 @@ fn baz() { #[test] fn goto_ref_on_short_associated_function_with_aliases() { + cov_mark::check!(short_associated_function_fast_search); + cov_mark::check!(container_use_rename); + cov_mark::check!(container_type_alias); check( r#" //- /lib.rs @@ -2589,6 +2593,8 @@ pub(in super::super) type Baz = Itself; #[test] fn goto_ref_on_short_associated_function_self_works() { + cov_mark::check!(short_associated_function_fast_search); + cov_mark::check!(self_type_alias); check( r#" //- /lib.rs @@ -2651,6 +2657,7 @@ impl Foo { #[test] fn goto_ref_on_short_associated_function_no_direct_self_but_path_contains_self() { + cov_mark::check!(short_associated_function_fast_search); check( r#" struct Foo; @@ -2684,6 +2691,8 @@ impl Foo { // Usages search is not 100% accurate anyway; we miss macros. #[test] fn goto_ref_on_short_associated_function_complicated_type_magic_can_confuse_our_logic() { + cov_mark::check!(short_associated_function_fast_search); + cov_mark::check!(same_name_different_def_type_alias); check( r#" struct Foo; @@ -2718,6 +2727,7 @@ fn bar() { #[test] fn goto_ref_on_short_associated_function_same_path_mention_alias_and_self() { + cov_mark::check!(short_associated_function_fast_search); check( r#" struct Foo;