diff options
| author | bors <bors@rust-lang.org> | 2022-09-16 14:12:26 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2022-09-16 14:12:26 +0000 |
| commit | 870bfc7e3bfcf5b0073abf32182e4b57e8dd6cf1 (patch) | |
| tree | af19c1598356d5e7e6bb5bd4049f480db729ce4a | |
| parent | 6b163c301f70d0e1246fb898b5f5edcc4d03fa4c (diff) | |
| parent | ad17ba12d1a9985a7b8bc52060942149ffb18b69 (diff) | |
| download | rust-870bfc7e3bfcf5b0073abf32182e4b57e8dd6cf1.tar.gz rust-870bfc7e3bfcf5b0073abf32182e4b57e8dd6cf1.zip | |
Auto merge of #13242 - Veykril:completion-alias, r=Veykril
Complete variants and assoc items in path pattern through type aliases
| -rw-r--r-- | crates/ide-completion/src/completions/pattern.rs | 1 | ||||
| -rw-r--r-- | crates/ide-completion/src/tests/pattern.rs | 27 |
2 files changed, 28 insertions, 0 deletions
diff --git a/crates/ide-completion/src/completions/pattern.rs b/crates/ide-completion/src/completions/pattern.rs index 71d2d9d434b..58d5bf114cc 100644 --- a/crates/ide-completion/src/completions/pattern.rs +++ b/crates/ide-completion/src/completions/pattern.rs @@ -145,6 +145,7 @@ pub(crate) fn complete_pattern_path( u.ty(ctx.db) } hir::PathResolution::Def(hir::ModuleDef::BuiltinType(ty)) => ty.ty(ctx.db), + hir::PathResolution::Def(hir::ModuleDef::TypeAlias(ty)) => ty.ty(ctx.db), _ => return, }; diff --git a/crates/ide-completion/src/tests/pattern.rs b/crates/ide-completion/src/tests/pattern.rs index 85c4dbd6625..db8bef66405 100644 --- a/crates/ide-completion/src/tests/pattern.rs +++ b/crates/ide-completion/src/tests/pattern.rs @@ -714,3 +714,30 @@ impl Ty { "#]], ); } + +#[test] +fn through_alias() { + check_empty( + r#" +enum Enum<T> { + Unit, + Tuple(T), +} + +type EnumAlias<T> = Enum<T>; + +fn f(x: EnumAlias<u8>) { + match x { + EnumAlias::$0 => (), + _ => (), + } + +} + +"#, + expect![[r#" + bn Tuple(…) Tuple($1)$0 + bn Unit Unit$0 + "#]], + ); +} |
