diff options
Diffstat (limited to 'src/test/ui/type-alias-enum-variants/no-type-application-on-aliased-enum-variant.rs')
-rw-r--r-- | src/test/ui/type-alias-enum-variants/no-type-application-on-aliased-enum-variant.rs | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/test/ui/type-alias-enum-variants/no-type-application-on-aliased-enum-variant.rs b/src/test/ui/type-alias-enum-variants/no-type-application-on-aliased-enum-variant.rs new file mode 100644 index 000000000..872ece0c0 --- /dev/null +++ b/src/test/ui/type-alias-enum-variants/no-type-application-on-aliased-enum-variant.rs @@ -0,0 +1,14 @@ +// Check that a generic type for an `enum` admits type application +// on both the type constructor and the generic type's variant. +// +// Also check that a type alias to said generic type admits type application +// on the type constructor but *NOT* the variant. + +type Alias<T> = Option<T>; + +fn main() { + let _ = Option::<u8>::None; // OK + let _ = Option::None::<u8>; // OK (Lint in future!) + let _ = Alias::<u8>::None; // OK + let _ = Alias::None::<u8>; //~ ERROR type arguments are not allowed on this type +} |