File tree Expand file tree Collapse file tree 2 files changed +16
-5
lines changed
crates/ide-completion/src/context Expand file tree Collapse file tree 2 files changed +16
-5
lines changed Original file line number Diff line number Diff line change @@ -353,7 +353,7 @@ fn expected_type_and_name(
353
353
_ => ty,
354
354
} ;
355
355
356
- loop {
356
+ let ( ty , name ) = loop {
357
357
break match_ast ! {
358
358
match node {
359
359
ast:: LetStmt ( it) => {
@@ -385,9 +385,7 @@ fn expected_type_and_name(
385
385
token. clone( ) ,
386
386
) . map( |ap| {
387
387
let name = ap. ident( ) . map( NameOrNameRef :: Name ) ;
388
-
389
- let ty = strip_refs( ap. ty) ;
390
- ( Some ( ty) , name)
388
+ ( Some ( ap. ty) , name)
391
389
} )
392
390
. unwrap_or( ( None , None ) )
393
391
} ,
@@ -489,7 +487,8 @@ fn expected_type_and_name(
489
487
} ,
490
488
}
491
489
} ;
492
- }
490
+ } ;
491
+ ( ty. map ( strip_refs) , name)
493
492
}
494
493
495
494
fn classify_lifetime (
Original file line number Diff line number Diff line change @@ -411,3 +411,15 @@ fn main() {
411
411
expect ! [ "ty: i32, name: ?" ] ,
412
412
) ;
413
413
}
414
+
415
+ #[ test]
416
+ fn expected_type_ref_return_pos ( ) {
417
+ check_expected_type_and_name (
418
+ r#"
419
+ fn f(thing: u32) -> &u32 {
420
+ &thin$0
421
+ }
422
+ "# ,
423
+ expect ! [ "ty: u32, name: ?" ] ,
424
+ ) ;
425
+ }
You can’t perform that action at this time.
0 commit comments