add more completion about "impl"
diff --git a/crates/ide-completion/src/completions/item_list.rs b/crates/ide-completion/src/completions/item_list.rs
index 4ae00cc..30ffeff 100644
--- a/crates/ide-completion/src/completions/item_list.rs
+++ b/crates/ide-completion/src/completions/item_list.rs
@@ -114,6 +114,8 @@
add_keyword("trait", "trait $1 {\n $0\n}");
if no_vis_qualifiers {
add_keyword("impl", "impl $1 {\n $0\n}");
+ add_keyword("impl for", "impl $1 for $2 {\n $0\n}");
+ add_keyword("impl<> for <>", "impl<$4> $1 for $2<$3> {\n $0\n}");
}
}
@@ -144,6 +146,8 @@
add_keyword("use", "use $0");
if no_vis_qualifiers {
add_keyword("impl", "impl $1 {\n $0\n}");
+ add_keyword("impl for", "impl $1 for $2 {\n $0\n}");
+ add_keyword("impl<> for <>", "impl<$4> $1 for $2<$3> {\n $0\n}");
}
}
diff --git a/crates/ide-completion/src/completions/keyword.rs b/crates/ide-completion/src/completions/keyword.rs
index 14b0d54..d0ba910 100644
--- a/crates/ide-completion/src/completions/keyword.rs
+++ b/crates/ide-completion/src/completions/keyword.rs
@@ -56,6 +56,8 @@
kw extern
kw fn
kw impl
+ kw impl for
+ kw impl<> for <>
kw trait
"#]],
);
diff --git a/crates/ide-completion/src/tests/expression.rs b/crates/ide-completion/src/tests/expression.rs
index 22d42ba..5314be3 100644
--- a/crates/ide-completion/src/tests/expression.rs
+++ b/crates/ide-completion/src/tests/expression.rs
@@ -171,6 +171,8 @@
kw if
kw if let
kw impl
+ kw impl for
+ kw impl<> for <>
kw let
kw letm
kw loop
@@ -236,8 +238,8 @@
}
"#,
expect![[r#"
- fn foo() fn()
- bt u32 u32
+ fn foo() fn()
+ bt u32 u32
kw async
kw const
kw crate::
@@ -249,6 +251,8 @@
kw if
kw if let
kw impl
+ kw impl for
+ kw impl<> for <>
kw let
kw letm
kw loop
@@ -285,8 +289,8 @@
}
"#,
expect![[r#"
- fn foo() fn()
- bt u32 u32
+ fn foo() fn()
+ bt u32 u32
kw async
kw const
kw crate::
@@ -300,6 +304,8 @@
kw if
kw if let
kw impl
+ kw impl for
+ kw impl<> for <>
kw let
kw letm
kw loop
@@ -360,8 +366,8 @@
check(
r"fn my() { loop { $0 } }",
expect![[r#"
- fn my() fn()
- bt u32 u32
+ fn my() fn()
+ bt u32 u32
kw async
kw break
kw const
@@ -375,6 +381,8 @@
kw if
kw if let
kw impl
+ kw impl for
+ kw impl<> for <>
kw let
kw letm
kw loop
@@ -946,8 +954,8 @@
fn foo() { if foo {} $0 }
"#,
expect![[r#"
- fn foo() fn()
- bt u32 u32
+ fn foo() fn()
+ bt u32 u32
kw async
kw const
kw crate::
@@ -961,6 +969,8 @@
kw if
kw if let
kw impl
+ kw impl for
+ kw impl<> for <>
kw let
kw letm
kw loop
@@ -988,8 +998,8 @@
fn foo() { if foo {} el$0 }
"#,
expect![[r#"
- fn foo() fn()
- bt u32 u32
+ fn foo() fn()
+ bt u32 u32
kw async
kw const
kw crate::
@@ -1003,6 +1013,8 @@
kw if
kw if let
kw impl
+ kw impl for
+ kw impl<> for <>
kw let
kw letm
kw loop
@@ -1080,8 +1092,8 @@
fn foo() { if foo {} $0 let x = 92; }
"#,
expect![[r#"
- fn foo() fn()
- bt u32 u32
+ fn foo() fn()
+ bt u32 u32
kw async
kw const
kw crate::
@@ -1095,6 +1107,8 @@
kw if
kw if let
kw impl
+ kw impl for
+ kw impl<> for <>
kw let
kw letm
kw loop
@@ -1122,8 +1136,8 @@
fn foo() { if foo {} el$0 let x = 92; }
"#,
expect![[r#"
- fn foo() fn()
- bt u32 u32
+ fn foo() fn()
+ bt u32 u32
kw async
kw const
kw crate::
@@ -1137,6 +1151,8 @@
kw if
kw if let
kw impl
+ kw impl for
+ kw impl<> for <>
kw let
kw letm
kw loop
@@ -1164,8 +1180,8 @@
fn foo() { if foo {} el$0 { let x = 92; } }
"#,
expect![[r#"
- fn foo() fn()
- bt u32 u32
+ fn foo() fn()
+ bt u32 u32
kw async
kw const
kw crate::
@@ -1179,6 +1195,8 @@
kw if
kw if let
kw impl
+ kw impl for
+ kw impl<> for <>
kw let
kw letm
kw loop
@@ -1217,9 +1235,9 @@
pub struct UnstableThisShouldNotBeListed;
"#,
expect![[r#"
- fn main() fn()
+ fn main() fn()
md std
- bt u32 u32
+ bt u32 u32
kw async
kw const
kw crate::
@@ -1231,6 +1249,8 @@
kw if
kw if let
kw impl
+ kw impl for
+ kw impl<> for <>
kw let
kw letm
kw loop
@@ -1285,6 +1305,8 @@
kw if
kw if let
kw impl
+ kw impl for
+ kw impl<> for <>
kw let
kw letm
kw loop
@@ -1529,6 +1551,8 @@
kw if
kw if let
kw impl
+ kw impl for
+ kw impl<> for <>
kw let
kw letm
kw loop
@@ -1986,6 +2010,8 @@
kw if
kw if let
kw impl
+ kw impl for
+ kw impl<> for <>
kw let
kw letm
kw loop
@@ -2044,9 +2070,9 @@
}
"#,
expect![[r#"
- fn foo() fn()
+ fn foo() fn()
md proc_macros
- bt u32 u32
+ bt u32 u32
kw async
kw const
kw crate::
@@ -2058,6 +2084,8 @@
kw if
kw if let
kw impl
+ kw impl for
+ kw impl<> for <>
kw let
kw letm
kw loop
diff --git a/crates/ide-completion/src/tests/item.rs b/crates/ide-completion/src/tests/item.rs
index be2c37d..a2d2cf3 100644
--- a/crates/ide-completion/src/tests/item.rs
+++ b/crates/ide-completion/src/tests/item.rs
@@ -284,6 +284,8 @@
kw if
kw if let
kw impl
+ kw impl for
+ kw impl<> for <>
kw let
kw letm
kw loop
diff --git a/crates/ide-completion/src/tests/item_list.rs b/crates/ide-completion/src/tests/item_list.rs
index 841c421..ee77845 100644
--- a/crates/ide-completion/src/tests/item_list.rs
+++ b/crates/ide-completion/src/tests/item_list.rs
@@ -16,6 +16,8 @@
kw extern
kw fn
kw impl
+ kw impl for
+ kw impl<> for <>
kw mod
kw pub
kw pub(crate)
@@ -50,6 +52,8 @@
kw extern
kw fn
kw impl
+ kw impl for
+ kw impl<> for <>
kw mod
kw pub
kw pub(crate)
@@ -83,6 +87,8 @@
kw extern
kw fn
kw impl
+ kw impl for
+ kw impl<> for <>
kw mod
kw pub
kw pub(crate)
@@ -122,6 +128,8 @@
kw extern
kw fn
kw impl
+ kw impl for
+ kw impl<> for <>
kw trait
"#]],
);
@@ -385,6 +393,8 @@
kw extern
kw fn
kw impl
+ kw impl for
+ kw impl<> for <>
kw mod
kw pub
kw pub(crate)
diff --git a/crates/ide-completion/src/tests/special.rs b/crates/ide-completion/src/tests/special.rs
index 70caeac..ca579b8 100644
--- a/crates/ide-completion/src/tests/special.rs
+++ b/crates/ide-completion/src/tests/special.rs
@@ -1008,6 +1008,8 @@
kw if
kw if let
kw impl
+ kw impl for
+ kw impl<> for <>
kw let
kw letm
kw loop
@@ -1059,6 +1061,8 @@
kw if
kw if let
kw impl
+ kw impl for
+ kw impl<> for <>
kw let
kw letm
kw loop
@@ -1184,6 +1188,8 @@
kw if
kw if let
kw impl
+ kw impl for
+ kw impl<> for <>
kw let
kw letm
kw loop
@@ -1428,8 +1434,8 @@
"#,
Some('_'),
expect![[r#"
- fn foo() fn()
- bt u32 u32
+ fn foo() fn()
+ bt u32 u32
kw async
kw const
kw crate::
@@ -1441,6 +1447,8 @@
kw if
kw if let
kw impl
+ kw impl for
+ kw impl<> for <>
kw let
kw letm
kw loop