File tree Expand file tree Collapse file tree 2 files changed +36
-4
lines changed Expand file tree Collapse file tree 2 files changed +36
-4
lines changed Original file line number Diff line number Diff line change @@ -1224,4 +1224,29 @@ fn test() {}
1224
1224
"# ] ] ,
1225
1225
) ;
1226
1226
}
1227
+
1228
+ #[ test]
1229
+ fn test_const_in_pattern ( ) {
1230
+ check (
1231
+ r#"
1232
+ const A$0: i32 = 42;
1233
+
1234
+ fn main() {
1235
+ match A {
1236
+ A => (),
1237
+ _ => (),
1238
+ }
1239
+ if let A = A {}
1240
+ }
1241
+ "# ,
1242
+ expect ! [ [ r#"
1243
+ A Const FileId(0) 0..18 6..7
1244
+
1245
+ FileId(0) 42..43
1246
+ FileId(0) 54..55
1247
+ FileId(0) 97..98
1248
+ FileId(0) 101..102
1249
+ "# ] ] ,
1250
+ ) ;
1251
+ }
1227
1252
}
Original file line number Diff line number Diff line change @@ -416,10 +416,11 @@ impl<'a> FindUsages<'a> {
416
416
sink : & mut dyn FnMut ( FileId , FileReference ) -> bool ,
417
417
) -> bool {
418
418
match NameClass :: classify ( self . sema , name) {
419
- Some ( NameClass :: PatFieldShorthand { local_def : _, field_ref } ) => {
420
- if !matches ! ( self . def, Definition :: Field ( _) if & field_ref == self . def) {
421
- return false ;
422
- }
419
+ Some ( NameClass :: PatFieldShorthand { local_def : _, field_ref } )
420
+ if matches ! (
421
+ self . def, Definition :: Field ( _) if & field_ref == self . def
422
+ ) =>
423
+ {
423
424
let FileRange { file_id, range } = self . sema . original_range ( name. syntax ( ) ) ;
424
425
let reference = FileReference {
425
426
range,
@@ -429,6 +430,12 @@ impl<'a> FindUsages<'a> {
429
430
} ;
430
431
sink ( file_id, reference)
431
432
}
433
+ Some ( NameClass :: ConstReference ( def) ) if * self . def == def => {
434
+ let FileRange { file_id, range } = self . sema . original_range ( name. syntax ( ) ) ;
435
+ let reference =
436
+ FileReference { range, name : ast:: NameLike :: Name ( name. clone ( ) ) , access : None } ;
437
+ sink ( file_id, reference)
438
+ }
432
439
_ => false , // not a usage
433
440
}
434
441
}
You can’t perform that action at this time.
0 commit comments