summaryrefslogtreecommitdiffstats
path: root/src/test/ui/type-alias-enum-variants/incorrect-variant-form-through-alias-caught.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/ui/type-alias-enum-variants/incorrect-variant-form-through-alias-caught.rs')
-rw-r--r--src/test/ui/type-alias-enum-variants/incorrect-variant-form-through-alias-caught.rs19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/test/ui/type-alias-enum-variants/incorrect-variant-form-through-alias-caught.rs b/src/test/ui/type-alias-enum-variants/incorrect-variant-form-through-alias-caught.rs
new file mode 100644
index 000000000..e4abb96b4
--- /dev/null
+++ b/src/test/ui/type-alias-enum-variants/incorrect-variant-form-through-alias-caught.rs
@@ -0,0 +1,19 @@
+// Check that creating/matching on an enum variant through an alias with
+// the wrong braced/unit form is caught as an error.
+
+enum Enum { Braced {}, Unit, Tuple() }
+type Alias = Enum;
+
+fn main() {
+ Alias::Braced;
+ //~^ ERROR expected unit struct, unit variant or constant, found struct variant `Alias::Braced` [E0533]
+ let Alias::Braced = panic!();
+ //~^ ERROR expected unit struct, unit variant or constant, found struct variant `Alias::Braced` [E0533]
+ let Alias::Braced(..) = panic!();
+ //~^ ERROR expected tuple struct or tuple variant, found struct variant `Alias::Braced` [E0164]
+
+ Alias::Unit();
+ //~^ ERROR expected function, found enum variant `Alias::Unit`
+ let Alias::Unit() = panic!();
+ //~^ ERROR expected tuple struct or tuple variant, found unit variant `Alias::Unit` [E0164]
+}