File tree Expand file tree Collapse file tree 2 files changed +45
-2
lines changed Expand file tree Collapse file tree 2 files changed +45
-2
lines changed Original file line number Diff line number Diff line change @@ -531,7 +531,7 @@ impl<'a> FindUsages<'a> {
531
531
node. token_at_offset ( offset)
532
532
. find ( |it| {
533
533
// `name` is stripped of raw ident prefix. See the comment on name retrieval below.
534
- it. text ( ) . trim_start_matches ( "r#" ) == name
534
+ it. text ( ) . trim_start_matches ( '\'' ) . trim_start_matches ( "r#" ) == name
535
535
} )
536
536
. into_iter ( )
537
537
. flat_map ( move |token| {
@@ -938,7 +938,12 @@ impl<'a> FindUsages<'a> {
938
938
} )
939
939
} ;
940
940
// We need to search without the `r#`, hence `as_str` access.
941
- self . def . name ( sema. db ) . or_else ( self_kw_refs) . map ( |it| it. as_str ( ) . to_smolstr ( ) )
941
+ // We strip `'` from lifetimes and labels as otherwise they may not match with raw-escaped ones,
942
+ // e.g. if we search `'foo` we won't find `'r#foo`.
943
+ self . def
944
+ . name ( sema. db )
945
+ . or_else ( self_kw_refs)
946
+ . map ( |it| it. as_str ( ) . trim_start_matches ( '\'' ) . to_smolstr ( ) )
942
947
}
943
948
} ;
944
949
let name = match & name {
Original file line number Diff line number Diff line change @@ -3088,4 +3088,42 @@ fn main() {
3088
3088
"# ] ] ,
3089
3089
) ;
3090
3090
}
3091
+
3092
+ #[ test]
3093
+ fn raw_labels_and_lifetimes ( ) {
3094
+ check (
3095
+ r#"
3096
+ fn foo<'r#fn>(s: &'r#fn str) {
3097
+ let _a: &'r#fn str = s;
3098
+ let _b: &'r#fn str;
3099
+ 'r#break$0: {
3100
+ break 'r#break;
3101
+ }
3102
+ }
3103
+ "# ,
3104
+ expect ! [ [ r#"
3105
+ 'r#break Label FileId(0) 87..96 87..95
3106
+
3107
+ FileId(0) 113..121
3108
+ "# ] ] ,
3109
+ ) ;
3110
+ check (
3111
+ r#"
3112
+ fn foo<'r#fn$0>(s: &'r#fn str) {
3113
+ let _a: &'r#fn str = s;
3114
+ let _b: &'r#fn str;
3115
+ 'r#break: {
3116
+ break 'r#break;
3117
+ }
3118
+ }
3119
+ "# ,
3120
+ expect ! [ [ r#"
3121
+ 'r#fn LifetimeParam FileId(0) 7..12
3122
+
3123
+ FileId(0) 18..23
3124
+ FileId(0) 44..49
3125
+ FileId(0) 72..77
3126
+ "# ] ] ,
3127
+ ) ;
3128
+ }
3091
3129
}
You can’t perform that action at this time.
0 commit comments