Unnamed repository; edit this file 'description' to name the repository.
Merge pull request #20976 from A4-Tacks/comp-after-top-inner-attr
Fix not complete after inner-attr in source-file
Shoyu Vanilla (Flint) 5 months ago
parent f5a46ef · parent b67358a · commit ffa9cfa
-rw-r--r--crates/ide-completion/src/context/analysis.rs2
-rw-r--r--crates/ide-completion/src/tests/item_list.rs34
2 files changed, 35 insertions, 1 deletions
diff --git a/crates/ide-completion/src/context/analysis.rs b/crates/ide-completion/src/context/analysis.rs
index e84c065336..6758e80c3a 100644
--- a/crates/ide-completion/src/context/analysis.rs
+++ b/crates/ide-completion/src/context/analysis.rs
@@ -1635,7 +1635,7 @@ fn classify_name_ref<'db>(
&& let Some(t) = top.first_token()
&& let Some(prev) =
t.prev_token().and_then(|t| syntax::algo::skip_trivia_token(t, Direction::Prev))
- && ![T![;], T!['}'], T!['{']].contains(&prev.kind())
+ && ![T![;], T!['}'], T!['{'], T![']']].contains(&prev.kind())
{
// This was inferred to be an item position path, but it seems
// to be part of some other broken node which leaked into an item
diff --git a/crates/ide-completion/src/tests/item_list.rs b/crates/ide-completion/src/tests/item_list.rs
index ac32649d4f..c031856a70 100644
--- a/crates/ide-completion/src/tests/item_list.rs
+++ b/crates/ide-completion/src/tests/item_list.rs
@@ -106,6 +106,40 @@ fn in_item_list_after_attr() {
}
#[test]
+fn in_item_list_after_inner_attr() {
+ check_with_base_items(
+ r#"#![attr] $0"#,
+ expect![[r#"
+ ma makro!(…) macro_rules! makro
+ md module
+ kw async
+ kw const
+ kw crate::
+ kw enum
+ kw extern
+ kw fn
+ kw impl
+ kw impl for
+ kw mod
+ kw pub
+ kw pub(crate)
+ kw pub(super)
+ kw self::
+ kw static
+ kw struct
+ kw trait
+ kw type
+ kw union
+ kw unsafe
+ kw use
+ sn macro_rules
+ sn tfn (Test function)
+ sn tmod (Test module)
+ "#]],
+ )
+}
+
+#[test]
fn in_qualified_path() {
check_with_base_items(
r#"crate::$0"#,