| 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 |
| } |
| } |