75 lines
2.5 KiB
Rust
75 lines
2.5 KiB
Rust
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
|
|
}
|
|
}
|