rust/tests/ui/pattern/bindings-after-at/copy-and-move-mixed.rs

15 lines
301 B
Rust

// Test that mixing `Copy` and non-`Copy` types in `@` patterns is forbidden.
#[derive(Copy, Clone)]
struct C;
struct NC<A, B>(A, B);
fn main() {
// this compiles
let a @ NC(b, c) = NC(C, C);
let a @ NC(b, c @ NC(d, e)) = NC(C, NC(C, C));
//~^ ERROR use of partially moved value
}