| struct S(u8, u8, u8); | |
| struct M( | |
| u8, | |
| u8, | |
| u8, | |
| u8, | |
| u8, | |
| ); | |
| struct Z0; | |
| struct Z1(); | |
| enum E1 { | |
| Z0, | |
| Z1(), | |
| } | |
| fn main() { | |
| match (1, 2, 3) { | |
| (1, 2, 3, 4) => {} //~ ERROR mismatched types | |
| (1, 2, .., 3, 4) => {} //~ ERROR mismatched types | |
| _ => {} | |
| } | |
| match S(1, 2, 3) { | |
| S(1, 2, 3, 4) => {} | |
| //~^ ERROR this pattern has 4 fields, but the corresponding tuple struct has 3 fields | |
| S(1, 2, .., 3, 4) => {} | |
| //~^ ERROR this pattern has 4 fields, but the corresponding tuple struct has 3 fields | |
| _ => {} | |
| } | |
| match M(1, 2, 3, 4, 5) { | |
| M(1, 2, 3, 4, 5, 6) => {} | |
| //~^ ERROR this pattern has 6 fields, but the corresponding tuple struct has 5 fields | |
| M(1, | |
| 2, | |
| 3, | |
| 4, | |
| 5, | |
| 6) => {} | |
| //~^ ERROR this pattern has 6 fields, but the corresponding tuple struct has 5 fields | |
| M( | |
| 1, | |
| 2, | |
| 3, | |
| 4, | |
| 5, | |
| 6, | |
| ) => {} | |
| //~^^ ERROR this pattern has 6 fields, but the corresponding tuple struct has 5 fields | |
| } | |
| match Z0 { | |
| Z0 => {} | |
| Z0() => {} //~ ERROR expected tuple struct or tuple variant, found unit struct `Z0` | |
| Z0(_) => {} //~ ERROR expected tuple struct or tuple variant, found unit struct `Z0` | |
| Z0(_, _) => {} //~ ERROR expected tuple struct or tuple variant, found unit struct `Z0` | |
| } | |
| match Z1() { | |
| Z1 => {} //~ ERROR match bindings cannot shadow tuple structs | |
| Z1() => {} | |
| Z1(_) => {} //~ ERROR this pattern has 1 field, but the corresponding tuple struct has 0 fields | |
| Z1(_, _) => {} //~ ERROR this pattern has 2 fields, but the corresponding tuple struct has 0 fields | |
| } | |
| match E1::Z0 { | |
| E1::Z0 => {} | |
| E1::Z0() => {} //~ ERROR expected tuple struct or tuple variant, found unit variant `E1::Z0` | |
| E1::Z0(_) => {} //~ ERROR expected tuple struct or tuple variant, found unit variant `E1::Z0` | |
| E1::Z0(_, _) => {} //~ ERROR expected tuple struct or tuple variant, found unit variant `E1::Z0` | |
| } | |
| match E1::Z1() { | |
| E1::Z1 => {} //~ ERROR expected unit struct, unit variant or constant, found tuple variant `E1::Z1` | |
| E1::Z1() => {} | |
| E1::Z1(_) => {} //~ ERROR this pattern has 1 field, but the corresponding tuple variant has 0 fields | |
| E1::Z1(_, _) => {} //~ ERROR this pattern has 2 fields, but the corresponding tuple variant has 0 fields | |
| } | |
| } |