Unnamed repository; edit this file 'description' to name the repository.
Make completion work too
| -rw-r--r-- | crates/ide-completion/src/completions/type.rs | 3 | ||||
| -rw-r--r-- | crates/ide-completion/src/tests/type_pos.rs | 12 |
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 |