44 lines
606 B
Rust
44 lines
606 B
Rust
// 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() {}
|