@@ -524,6 +524,7 @@ impl<'a> FindUsages<'a> {
524
524
fn find_nodes < ' b > (
525
525
sema : & ' b Semantics < ' _ , RootDatabase > ,
526
526
name : & str ,
527
+ file_id : EditionedFileId ,
527
528
node : & syntax:: SyntaxNode ,
528
529
offset : TextSize ,
529
530
) -> impl Iterator < Item = SyntaxNode > + ' b {
@@ -534,7 +535,7 @@ impl<'a> FindUsages<'a> {
534
535
} )
535
536
. into_iter ( )
536
537
. 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) ) {
538
539
sema. descend_into_macros_exact ( token)
539
540
} else {
540
541
<_ >:: from ( [ token] )
@@ -654,11 +655,14 @@ impl<'a> FindUsages<'a> {
654
655
let tree = LazyCell :: new ( move || sema. parse ( file_id) . syntax ( ) . clone ( ) ) ;
655
656
656
657
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 ) ) ;
662
666
for usage in usages {
663
667
if let Some ( alias) = usage. parent ( ) . and_then ( |it| {
664
668
let path = ast:: PathSegment :: cast ( it) ?. parent_path ( ) ;
@@ -813,7 +817,7 @@ impl<'a> FindUsages<'a> {
813
817
let tree = LazyCell :: new ( move || this. sema . parse ( file_id) . syntax ( ) . clone ( ) ) ;
814
818
815
819
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)
817
821
. filter_map ( ast:: NameRef :: cast) ;
818
822
for usage in usages {
819
823
let found_usage = usage
@@ -970,8 +974,8 @@ impl<'a> FindUsages<'a> {
970
974
return ;
971
975
}
972
976
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)
975
979
{
976
980
if match name {
977
981
ast:: NameLike :: NameRef ( name_ref) => self . found_name_ref ( & name_ref, sink) ,
@@ -985,8 +989,8 @@ impl<'a> FindUsages<'a> {
985
989
// Search for occurrences of the `Self` referring to our type
986
990
if let Some ( ( self_ty, finder) ) = & include_self_kw_refs {
987
991
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)
990
994
{
991
995
if self . found_self_ty_name_ref ( self_ty, & name_ref, sink) {
992
996
return ;
@@ -1010,7 +1014,7 @@ impl<'a> FindUsages<'a> {
1010
1014
let tree = LazyCell :: new ( move || sema. parse ( file_id) . syntax ( ) . clone ( ) ) ;
1011
1015
1012
1016
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)
1014
1018
. filter_map ( ast:: NameRef :: cast)
1015
1019
{
1016
1020
if self . found_name_ref ( & name_ref, sink) {
@@ -1020,7 +1024,7 @@ impl<'a> FindUsages<'a> {
1020
1024
}
1021
1025
if let Some ( finder) = & is_crate_root {
1022
1026
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)
1024
1028
. filter_map ( ast:: NameRef :: cast)
1025
1029
{
1026
1030
if self . found_name_ref ( & name_ref, sink) {
@@ -1064,8 +1068,8 @@ impl<'a> FindUsages<'a> {
1064
1068
let finder = & Finder :: new ( "self" ) ;
1065
1069
1066
1070
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)
1069
1073
{
1070
1074
if self . found_self_module_name_ref ( & name_ref, sink) {
1071
1075
return ;
0 commit comments