1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
|
//@ check-pass
struct Foo<const N: usize>;
fn bindingp() {
match Foo {
mut x @ Foo::<3> => {
let ref mut _x @ Foo::<3> = x;
}
}
}
struct Bar<const N: usize> {
field: Foo<N>,
}
fn structp() {
match todo!() {
Bar::<3> {
field: Foo::<3>,
} => (),
}
}
struct Baz<const N: usize>(Foo<N>);
fn tuplestructp() {
match Baz(Foo) {
Baz::<3>(Foo::<3>) => (),
}
}
impl<const N: usize> Baz<N> {
const ASSOC: usize = 3;
}
fn pathp() {
match 3 {
Baz::<3>::ASSOC => (),
_ => (),
}
}
fn main() {}
|