Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/hir-ty/src/tests/regression.rs')
-rw-r--r--crates/hir-ty/src/tests/regression.rs28
1 files changed, 28 insertions, 0 deletions
diff --git a/crates/hir-ty/src/tests/regression.rs b/crates/hir-ty/src/tests/regression.rs
index 35079e7094..b0532ddcb3 100644
--- a/crates/hir-ty/src/tests/regression.rs
+++ b/crates/hir-ty/src/tests/regression.rs
@@ -2012,3 +2012,31 @@ fn rustc_test_issue_52437() {
"#,
);
}
+
+#[test]
+fn incorrect_variant_form_through_alias_caught() {
+ check_types(
+ r#"
+enum Enum { Braced {}, Unit, Tuple() }
+type Alias = Enum;
+
+fn main() {
+ Alias::Braced;
+ //^^^^^^^^^^^^^ {unknown}
+ let Alias::Braced = loop {};
+ //^^^^^^^^^^^^^ !
+ let Alias::Braced(..) = loop {};
+ //^^^^^^^^^^^^^^^^^ Enum
+
+ Alias::Unit();
+ //^^^^^^^^^^^^^ {unknown}
+ Alias::Unit{};
+ //^^^^^^^^^^^^^ Enum
+ let Alias::Unit() = loop {};
+ //^^^^^^^^^^^^^ Enum
+ let Alias::Unit{} = loop {};
+ //^^^^^^^^^^^^^ Enum
+}
+"#,
+ )
+}