@@ -524,6 +524,7 @@ impl<'a> FindUsages<'a> {
524524 fn find_nodes < ' b > (
525525 sema : & ' b Semantics < ' _ , RootDatabase > ,
526526 name : & str ,
527+ file_id : EditionedFileId ,
527528 node : & syntax:: SyntaxNode ,
528529 offset : TextSize ,
529530 ) -> impl Iterator < Item = SyntaxNode > + ' b {
@@ -534,7 +535,7 @@ impl<'a> FindUsages<'a> {
534535 } )
535536 . into_iter ( )
536537 . flat_map ( move |token| {
537- if sema. might_be_inside_macro_call ( & token) {
538+ if sema. is_inside_macro_call ( InFile :: new ( file_id . into ( ) , & token) ) {
538539 sema. descend_into_macros_exact ( token)
539540 } else {
540541 <_ >:: from ( [ token] )
@@ -654,11 +655,14 @@ impl<'a> FindUsages<'a> {
654655 let tree = LazyCell :: new ( move || sema. parse ( file_id) . syntax ( ) . clone ( ) ) ;
655656
656657 for offset in FindUsages :: match_indices ( & file_text, & finder, search_range) {
657- let usages =
658- FindUsages :: find_nodes ( sema, & current_to_process, & tree, offset)
659- . filter ( |it| {
660- matches ! ( it. kind( ) , SyntaxKind :: NAME | SyntaxKind :: NAME_REF )
661- } ) ;
658+ let usages = FindUsages :: find_nodes (
659+ sema,
660+ & current_to_process,
661+ file_id,
662+ & tree,
663+ offset,
664+ )
665+ . filter ( |it| matches ! ( it. kind( ) , SyntaxKind :: NAME | SyntaxKind :: NAME_REF ) ) ;
662666 for usage in usages {
663667 if let Some ( alias) = usage. parent ( ) . and_then ( |it| {
664668 let path = ast:: PathSegment :: cast ( it) ?. parent_path ( ) ;
@@ -813,7 +817,7 @@ impl<'a> FindUsages<'a> {
813817 let tree = LazyCell :: new ( move || this. sema . parse ( file_id) . syntax ( ) . clone ( ) ) ;
814818
815819 for offset in FindUsages :: match_indices ( & file_text, finder, search_range) {
816- let usages = FindUsages :: find_nodes ( this. sema , name, & tree, offset)
820+ let usages = FindUsages :: find_nodes ( this. sema , name, file_id , & tree, offset)
817821 . filter_map ( ast:: NameRef :: cast) ;
818822 for usage in usages {
819823 let found_usage = usage
@@ -970,8 +974,8 @@ impl<'a> FindUsages<'a> {
970974 return ;
971975 }
972976
973- for name in
974- Self :: find_nodes ( sema , name , & tree , offset ) . filter_map ( ast:: NameLike :: cast)
977+ for name in Self :: find_nodes ( sema , name , file_id , & tree , offset )
978+ . filter_map ( ast:: NameLike :: cast)
975979 {
976980 if match name {
977981 ast:: NameLike :: NameRef ( name_ref) => self . found_name_ref ( & name_ref, sink) ,
@@ -985,8 +989,8 @@ impl<'a> FindUsages<'a> {
985989 // Search for occurrences of the `Self` referring to our type
986990 if let Some ( ( self_ty, finder) ) = & include_self_kw_refs {
987991 for offset in Self :: match_indices ( & text, finder, search_range) {
988- for name_ref in
989- Self :: find_nodes ( sema , "Self" , & tree , offset ) . filter_map ( ast:: NameRef :: cast)
992+ for name_ref in Self :: find_nodes ( sema , "Self" , file_id , & tree , offset )
993+ . filter_map ( ast:: NameRef :: cast)
990994 {
991995 if self . found_self_ty_name_ref ( self_ty, & name_ref, sink) {
992996 return ;
@@ -1010,7 +1014,7 @@ impl<'a> FindUsages<'a> {
10101014 let tree = LazyCell :: new ( move || sema. parse ( file_id) . syntax ( ) . clone ( ) ) ;
10111015
10121016 for offset in Self :: match_indices ( & text, finder, search_range) {
1013- for name_ref in Self :: find_nodes ( sema, "super" , & tree, offset)
1017+ for name_ref in Self :: find_nodes ( sema, "super" , file_id , & tree, offset)
10141018 . filter_map ( ast:: NameRef :: cast)
10151019 {
10161020 if self . found_name_ref ( & name_ref, sink) {
@@ -1020,7 +1024,7 @@ impl<'a> FindUsages<'a> {
10201024 }
10211025 if let Some ( finder) = & is_crate_root {
10221026 for offset in Self :: match_indices ( & text, finder, search_range) {
1023- for name_ref in Self :: find_nodes ( sema, "crate" , & tree, offset)
1027+ for name_ref in Self :: find_nodes ( sema, "crate" , file_id , & tree, offset)
10241028 . filter_map ( ast:: NameRef :: cast)
10251029 {
10261030 if self . found_name_ref ( & name_ref, sink) {
@@ -1064,8 +1068,8 @@ impl<'a> FindUsages<'a> {
10641068 let finder = & Finder :: new ( "self" ) ;
10651069
10661070 for offset in Self :: match_indices ( & text, finder, search_range) {
1067- for name_ref in
1068- Self :: find_nodes ( sema , "self" , & tree , offset ) . filter_map ( ast:: NameRef :: cast)
1071+ for name_ref in Self :: find_nodes ( sema , "self" , file_id , & tree , offset )
1072+ . filter_map ( ast:: NameRef :: cast)
10691073 {
10701074 if self . found_self_module_name_ref ( & name_ref, sink) {
10711075 return ;
0 commit comments