fix: also exclude 2 coloncolon in a row

This commit is contained in:
yue4u 2022-11-27 02:39:38 +09:00
parent e1de04d60c
commit 1ca5cb7ed9
2 changed files with 14 additions and 3 deletions

View file

@ -581,9 +581,14 @@ impl<'a> CompletionContext<'a> {
return None;
}
// has 3 colon in a row
// has 3 colon or 2 coloncolon in a row
// special casing this as per discussion in https://github.com/rust-lang/rust-analyzer/pull/13611#discussion_r1031845205
if prev_token.prev_token().map(|t| t.kind() == T![:]).unwrap_or(false) {
// and https://github.com/rust-lang/rust-analyzer/pull/13611#discussion_r1032812751
if prev_token
.prev_token()
.map(|t| t.kind() == T![:] || t.kind() == T![::])
.unwrap_or(false)
{
return None;
}
}

View file

@ -967,11 +967,17 @@ fn foo { crate:$0 }
}
#[test]
fn no_completions_in_after_tripple_colon() {
fn no_completions_in_invalid_path() {
check(
r#"
fn foo { crate:::$0 }
"#,
expect![""],
);
check(
r#"
fn foo { crate::::$0 }
"#,
expect![""],
)
}