Unnamed repository; edit this file 'description' to name the repository.
Make completion work too
Jonas Schievink 2022-05-09
parent 7e45915 · commit 2156815
-rw-r--r--crates/ide-completion/src/completions/type.rs3
-rw-r--r--crates/ide-completion/src/tests/type_pos.rs12
2 files changed, 11 insertions, 4 deletions
diff --git a/crates/ide-completion/src/completions/type.rs b/crates/ide-completion/src/completions/type.rs
index 9381548e5e..034a229702 100644
--- a/crates/ide-completion/src/completions/type.rs
+++ b/crates/ide-completion/src/completions/type.rs
@@ -168,8 +168,9 @@ pub(crate) fn complete_type_path(acc: &mut Completions, ctx: &CompletionContext)
if let Some(hir::PathResolution::Def(hir::ModuleDef::Trait(trait_))) =
ctx.sema.resolve_path(&path_seg.parent_path())
{
- trait_.items(ctx.sema.db).into_iter().for_each(|it| {
+ trait_.items_with_supertraits(ctx.sema.db).into_iter().for_each(|it| {
if let hir::AssocItem::TypeAlias(alias) = it {
+ cov_mark::hit!(complete_assoc_type_in_generics_list);
acc.add_type_alias_with_eq(ctx, alias)
}
});
diff --git a/crates/ide-completion/src/tests/type_pos.rs b/crates/ide-completion/src/tests/type_pos.rs
index 5224bc4b48..1e1b3f3efb 100644
--- a/crates/ide-completion/src/tests/type_pos.rs
+++ b/crates/ide-completion/src/tests/type_pos.rs
@@ -336,9 +336,13 @@ fn foo<'lt, T, const C: usize>() {
#[test]
fn completes_types_and_const_in_arg_list() {
+ cov_mark::check!(complete_assoc_type_in_generics_list);
check(
r#"
-trait Trait2 {
+trait Trait1 {
+ type Super;
+}
+trait Trait2: Trait1 {
type Foo;
}
@@ -348,14 +352,16 @@ fn foo<'lt, T: Trait2<$0>, const CONST_PARAM: usize>(_: T) {}
ct CONST
cp CONST_PARAM
en Enum
- ma makro!(…) macro_rules! makro
+ ma makro!(…) macro_rules! makro
md module
st Record
st Tuple
st Unit
tt Trait
+ tt Trait1
tt Trait2
- ta Foo = (as Trait2) type Foo
+ ta Foo = (as Trait2) type Foo
+ ta Super = (as Trait1) type Super
tp T
un Union
bt u32