summaryrefslogtreecommitdiffstats
path: root/src/test/ui/type-alias-enum-variants/no-type-application-on-aliased-enum-variant.rs
diff options
context:
space:
mode:
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.rs14
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
+}