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(
353353 _ => ty,
354354 } ;
355355
356- loop {
356+ let ( ty , name ) = loop {
357357 break match_ast ! {
358358 match node {
359359 ast:: LetStmt ( it) => {
@@ -385,9 +385,7 @@ fn expected_type_and_name(
385385 token. clone( ) ,
386386 ) . map( |ap| {
387387 let name = ap. ident( ) . map( NameOrNameRef :: Name ) ;
388-
389- let ty = strip_refs( ap. ty) ;
390- ( Some ( ty) , name)
388+ ( Some ( ap. ty) , name)
391389 } )
392390 . unwrap_or( ( None , None ) )
393391 } ,
@@ -489,7 +487,8 @@ fn expected_type_and_name(
489487 } ,
490488 }
491489 } ;
492- }
490+ } ;
491+ ( ty. map ( strip_refs) , name)
493492}
494493
495494fn classify_lifetime (
Original file line number Diff line number Diff line change @@ -411,3 +411,15 @@ fn main() {
411411 expect ! [ "ty: i32, name: ?" ] ,
412412 ) ;
413413}
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