Correct has_ref detection

This commit is contained in:
Wang Ruochen 2022-01-06 11:45:09 -08:00
parent 638cc3e59f
commit 3a57f700d8
No known key found for this signature in database
GPG Key ID: C6DEA570A3B026FC
2 changed files with 31 additions and 1 deletions

View File

@ -876,7 +876,7 @@ fn path_or_use_tree_qualifier(path: &ast::Path) -> Option<(ast::Path, bool)> {
fn has_ref(token: &SyntaxToken) -> bool {
let mut token = token.clone();
for skip in [WHITESPACE, IDENT, T![mut]] {
for skip in [IDENT, WHITESPACE, T![mut]] {
if token.kind() == skip {
token = match token.prev_token() {
Some(it) => it,
@ -992,6 +992,20 @@ fn bar(x: &u32) {}
r#"
fn foo() { bar(&mut $0); }
fn bar(x: &mut u32) {}
"#,
expect![[r#"ty: u32, name: x"#]],
);
check_expected_type_and_name(
r#"
fn foo() { bar(& c$0); }
fn bar(x: &u32) {}
"#,
expect![[r#"ty: u32, name: x"#]],
);
check_expected_type_and_name(
r#"
fn foo() { bar(&mut c$0); }
fn bar(x: &mut u32) {}
"#,
expect![[r#"ty: u32, name: x"#]],
);

View File

@ -1156,6 +1156,22 @@ fn main() {
fn foo() []
"#]],
);
check_relevance(
r#"
struct S;
fn foo(s: &mut S) {}
fn main() {
let mut ssss = S;
foo(&mut s$0);
}
"#,
expect![[r#"
lc ssss [type+local]
st S []
fn main() []
fn foo() []
"#]],
);
}
#[test]