Auto merge of #17459 - MariaSolOs:async-compl, r=Veykril
fix(completion): complete async keyword
Fixes #17452
Not entirely confident of the fix here, but my logic is that `async` should in general be offered in similar semantic scenarios as other keywords like `static` or `pub`.
diff --git a/crates/ide-completion/src/completions/item_list.rs b/crates/ide-completion/src/completions/item_list.rs
index 44c6199..02298b1 100644
--- a/crates/ide-completion/src/completions/item_list.rs
+++ b/crates/ide-completion/src/completions/item_list.rs
@@ -100,6 +100,7 @@
add_keyword("enum", "enum $1 {\n $0\n}");
add_keyword("mod", "mod $0");
add_keyword("static", "static $0");
+ add_keyword("async", "async $0");
add_keyword("struct", "struct $0");
add_keyword("trait", "trait $1 {\n $0\n}");
add_keyword("union", "union $1 {\n $0\n}");
diff --git a/crates/ide-completion/src/tests/expression.rs b/crates/ide-completion/src/tests/expression.rs
index a653314..545c2a2 100644
--- a/crates/ide-completion/src/tests/expression.rs
+++ b/crates/ide-completion/src/tests/expression.rs
@@ -141,6 +141,7 @@
un Union Union
ev TupleV(…) TupleV(u32)
bt u32 u32
+ kw async
kw const
kw crate::
kw enum
@@ -217,6 +218,7 @@
expect![[r#"
fn foo() fn()
bt u32 u32
+ kw async
kw const
kw crate::
kw enum
@@ -264,6 +266,7 @@
expect![[r#"
fn foo() fn()
bt u32 u32
+ kw async
kw const
kw crate::
kw else
@@ -336,6 +339,7 @@
expect![[r#"
fn my() fn()
bt u32 u32
+ kw async
kw break
kw const
kw continue
@@ -799,6 +803,7 @@
expect![[r#"
fn foo() fn()
bt u32 u32
+ kw async
kw const
kw crate::
kw else
@@ -839,6 +844,7 @@
expect![[r#"
fn foo() fn()
bt u32 u32
+ kw async
kw const
kw crate::
kw else
@@ -927,6 +933,7 @@
expect![[r#"
fn foo() fn()
bt u32 u32
+ kw async
kw const
kw crate::
kw else
@@ -967,6 +974,7 @@
expect![[r#"
fn foo() fn()
bt u32 u32
+ kw async
kw const
kw crate::
kw else
@@ -1007,6 +1015,7 @@
expect![[r#"
fn foo() fn()
bt u32 u32
+ kw async
kw const
kw crate::
kw else
@@ -1059,6 +1068,7 @@
fn main() fn()
md std
bt u32 u32
+ kw async
kw const
kw crate::
kw enum
@@ -1111,6 +1121,7 @@
md std
st UnstableButWeAreOnNightlyAnyway UnstableButWeAreOnNightlyAnyway
bt u32 u32
+ kw async
kw const
kw crate::
kw enum
diff --git a/crates/ide-completion/src/tests/item_list.rs b/crates/ide-completion/src/tests/item_list.rs
index 2b5b4dd..c379004 100644
--- a/crates/ide-completion/src/tests/item_list.rs
+++ b/crates/ide-completion/src/tests/item_list.rs
@@ -14,6 +14,7 @@
r#"mod tests { $0 }"#,
expect![[r#"
ma makro!(…) macro_rules! makro
+ kw async
kw const
kw crate::
kw enum
@@ -47,6 +48,7 @@
expect![[r#"
ma makro!(…) macro_rules! makro
md module
+ kw async
kw const
kw crate::
kw enum
@@ -79,6 +81,7 @@
expect![[r#"
ma makro!(…) macro_rules! makro
md module
+ kw async
kw const
kw crate::
kw enum
@@ -132,6 +135,7 @@
check(
r#"pub $0"#,
expect![[r#"
+ kw async
kw const
kw enum
kw extern
@@ -356,6 +360,7 @@
expect![[r#"
ma makro!(…) macro_rules! makro
md module
+ kw async
kw const
kw crate::
kw enum
diff --git a/crates/ide-completion/src/tests/special.rs b/crates/ide-completion/src/tests/special.rs
index 69d8fe9..2ae7d37 100644
--- a/crates/ide-completion/src/tests/special.rs
+++ b/crates/ide-completion/src/tests/special.rs
@@ -1017,6 +1017,7 @@
fn here_we_go() fn()
st Foo (alias Bar) Foo
bt u32 u32
+ kw async
kw const
kw crate::
kw enum
@@ -1066,6 +1067,7 @@
fn here_we_go() fn()
st Foo (alias Bar, Qux, Baz) Foo
bt u32 u32
+ kw async
kw const
kw crate::
kw enum
@@ -1188,6 +1190,7 @@
fn bar() fn()
fn foo() (alias qux) fn()
bt u32 u32
+ kw async
kw const
kw crate::
kw enum
@@ -1443,6 +1446,7 @@
expect![[r#"
fn foo() fn()
bt u32 u32
+ kw async
kw const
kw crate::
kw enum