diff options
Diffstat (limited to '')
-rw-r--r-- | src/test/ui/type-alias-enum-variants/incorrect-variant-form-through-alias-caught.rs | 19 |
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] +} |