fix: Fix reference completions being emitted in places other than argument lists
This commit is contained in:
parent
ad91622d11
commit
82ed68c95e
@ -353,7 +353,7 @@ fn expected_type_and_name(
|
||||
_ => ty,
|
||||
};
|
||||
|
||||
loop {
|
||||
let (ty, name) = loop {
|
||||
break match_ast! {
|
||||
match node {
|
||||
ast::LetStmt(it) => {
|
||||
@ -385,9 +385,7 @@ fn expected_type_and_name(
|
||||
token.clone(),
|
||||
).map(|ap| {
|
||||
let name = ap.ident().map(NameOrNameRef::Name);
|
||||
|
||||
let ty = strip_refs(ap.ty);
|
||||
(Some(ty), name)
|
||||
(Some(ap.ty), name)
|
||||
})
|
||||
.unwrap_or((None, None))
|
||||
},
|
||||
@ -489,7 +487,8 @@ fn expected_type_and_name(
|
||||
},
|
||||
}
|
||||
};
|
||||
}
|
||||
};
|
||||
(ty.map(strip_refs), name)
|
||||
}
|
||||
|
||||
fn classify_lifetime(
|
||||
|
@ -411,3 +411,15 @@ fn main() {
|
||||
expect!["ty: i32, name: ?"],
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn expected_type_ref_return_pos() {
|
||||
check_expected_type_and_name(
|
||||
r#"
|
||||
fn f(thing: u32) -> &u32 {
|
||||
&thin$0
|
||||
}
|
||||
"#,
|
||||
expect!["ty: u32, name: ?"],
|
||||
);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user