summaryrefslogtreecommitdiffstats
path: root/src/test/ui/type-alias-enum-variants/enum-variant-generic-args.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/ui/type-alias-enum-variants/enum-variant-generic-args.rs')
-rw-r--r--src/test/ui/type-alias-enum-variants/enum-variant-generic-args.rs105
1 files changed, 0 insertions, 105 deletions
diff --git a/src/test/ui/type-alias-enum-variants/enum-variant-generic-args.rs b/src/test/ui/type-alias-enum-variants/enum-variant-generic-args.rs
deleted file mode 100644
index 0031a4665..000000000
--- a/src/test/ui/type-alias-enum-variants/enum-variant-generic-args.rs
+++ /dev/null
@@ -1,105 +0,0 @@
-// Checks that applied type arguments of enums, and aliases to them, are respected.
-// For example, `Self` is never a type constructor. Therefore, no types can be applied to it.
-//
-// We also check that the variant to an type-aliased enum cannot be type applied whether
-// that alias is generic or monomorphic.
-
-enum Enum<T> { TSVariant(T), SVariant { v: T }, UVariant }
-type Alias<T> = Enum<T>;
-type AliasFixed = Enum<()>;
-
-impl<T> Enum<T> {
- fn ts_variant() {
- Self::TSVariant(());
- //~^ ERROR mismatched types [E0308]
- Self::TSVariant::<()>(());
- //~^ ERROR type arguments are not allowed on this type [E0109]
- Self::<()>::TSVariant(());
- //~^ ERROR type arguments are not allowed on self type [E0109]
- //~| ERROR mismatched types [E0308]
- Self::<()>::TSVariant::<()>(());
- //~^ ERROR type arguments are not allowed on self type [E0109]
- //~| ERROR type arguments are not allowed on this type [E0109]
- }
-
- fn s_variant() {
- Self::SVariant { v: () };
- //~^ ERROR mismatched types [E0308]
- Self::SVariant::<()> { v: () };
- //~^ ERROR type arguments are not allowed on this type [E0109]
- //~| ERROR mismatched types [E0308]
- Self::<()>::SVariant { v: () };
- //~^ ERROR type arguments are not allowed on self type [E0109]
- //~| ERROR mismatched types [E0308]
- Self::<()>::SVariant::<()> { v: () };
- //~^ ERROR type arguments are not allowed on self type [E0109]
- //~| ERROR type arguments are not allowed on this type [E0109]
- //~| ERROR mismatched types [E0308]
- }
-
- fn u_variant() {
- Self::UVariant::<()>;
- //~^ ERROR type arguments are not allowed on this type [E0109]
- Self::<()>::UVariant;
- //~^ ERROR type arguments are not allowed on self type [E0109]
- Self::<()>::UVariant::<()>;
- //~^ ERROR type arguments are not allowed on self type [E0109]
- //~| ERROR type arguments are not allowed on this type [E0109]
- }
-}
-
-fn main() {
- // Tuple struct variant
-
- Enum::<()>::TSVariant::<()>(());
- //~^ ERROR type arguments are not allowed on tuple variant `TSVariant` [E0109]
-
- Alias::TSVariant::<()>(());
- //~^ ERROR type arguments are not allowed on this type [E0109]
- Alias::<()>::TSVariant::<()>(());
- //~^ ERROR type arguments are not allowed on this type [E0109]
-
- AliasFixed::TSVariant::<()>(());
- //~^ ERROR type arguments are not allowed on this type [E0109]
- AliasFixed::<()>::TSVariant(());
- //~^ ERROR this type alias takes 0 generic arguments but 1 generic argument was supplied [E0107]
- AliasFixed::<()>::TSVariant::<()>(());
- //~^ ERROR type arguments are not allowed on this type [E0109]
- //~| ERROR this type alias takes 0 generic arguments but 1 generic argument was supplied [E0107]
-
- // Struct variant
-
- Enum::<()>::SVariant::<()> { v: () };
- //~^ ERROR type arguments are not allowed on variant `SVariant` [E0109]
-
- Alias::SVariant::<()> { v: () };
- //~^ ERROR type arguments are not allowed on this type [E0109]
- Alias::<()>::SVariant::<()> { v: () };
- //~^ ERROR type arguments are not allowed on this type [E0109]
-
- AliasFixed::SVariant::<()> { v: () };
- //~^ ERROR type arguments are not allowed on this type [E0109]
- AliasFixed::<()>::SVariant { v: () };
- //~^ ERROR this type alias takes 0 generic arguments but 1 generic argument was supplied [E0107]
- AliasFixed::<()>::SVariant::<()> { v: () };
- //~^ ERROR type arguments are not allowed on this type [E0109]
- //~| ERROR this type alias takes 0 generic arguments but 1 generic argument was supplied [E0107]
-
- // Unit variant
-
- Enum::<()>::UVariant::<()>;
- //~^ ERROR type arguments are not allowed on unit variant `UVariant` [E0109]
-
- Alias::UVariant::<()>;
- //~^ ERROR type arguments are not allowed on this type [E0109]
- Alias::<()>::UVariant::<()>;
- //~^ ERROR type arguments are not allowed on this type [E0109]
-
- AliasFixed::UVariant::<()>;
- //~^ ERROR type arguments are not allowed on this type [E0109]
- AliasFixed::<()>::UVariant;
- //~^ ERROR this type alias takes 0 generic arguments but 1 generic argument was supplied [E0107]
- AliasFixed::<()>::UVariant::<()>;
- //~^ ERROR type arguments are not allowed on this type [E0109]
- //~| ERROR this type alias takes 0 generic arguments but 1 generic argument was supplied [E0107]
-}