1 struct TupleStruct<S, T>(S, T);
7 type Alias<S> = Enum<S, isize>;
10 fn test() -> TupleStruct<isize, isize> {
15 impl Test for Alias<isize> {}
17 fn test() -> TupleStruct<isize, isize> {
23 TupleStruct(a, .., b, ..) = TupleStruct(0, 1);
24 //~^ ERROR `..` can only be used once per tuple struct or variant pattern
25 Enum::SingleVariant(a, .., b, ..) = Enum::SingleVariant(0, 1);
26 //~^ ERROR `..` can only be used once per tuple struct or variant pattern
28 TupleStruct(a, a, b) = TupleStruct(1, 2);
29 //~^ ERROR this pattern has 3 fields, but the corresponding tuple struct has 2 fields
30 TupleStruct(_) = TupleStruct(1, 2);
31 //~^ ERROR this pattern has 1 field, but the corresponding tuple struct has 2 fields
32 Enum::SingleVariant(a, a, b) = Enum::SingleVariant(1, 2);
33 //~^ ERROR this pattern has 3 fields, but the corresponding tuple variant has 2 fields
34 Enum::SingleVariant(_) = Enum::SingleVariant(1, 2);
35 //~^ ERROR this pattern has 1 field, but the corresponding tuple variant has 2 fields
37 // Check if `test` is recognized as not a tuple struct but a function call:
38 test() = TupleStruct(0, 0);
39 //~^ ERROR invalid left-hand side of assignment
40 (test)() = TupleStruct(0, 0);
41 //~^ ERROR invalid left-hand side of assignment
42 <Alias::<isize> as Test>::test() = TupleStruct(0, 0);
43 //~^ ERROR invalid left-hand side of assignment