| //@ 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() {} |