3 // Test `Copy` bindings in the rhs of `@` patterns.
5 #![feature(slice_patterns)]
6 #![feature(bindings_after_at)]
13 #[derive(Copy, Clone)]
16 enum E<A, B> { L(A), R(B) }
19 let a @ b @ c @ d = C;
20 let a @ (b, c) = (C, mk_c());
21 let a @ P(b, P(c, d)) = P(mk_c(), P(C, C));
22 let a @ [b, c] = [C, C];
23 let a @ [b, .., c] = [C, mk_c(), C];
24 let a @ [b, mid @ .., c] = [C, mk_c(), C];
25 let a @ &(b, c) = &(C, C);
26 let a @ &(b, &P(c, d)) = &(mk_c(), &P(C, C));
28 fn foo(a @ [b, mid @ .., c]: [C; 3]) {}
38 match R(&L(&mk_c())) {
39 L(L(&a)) | L(R(&a)) | R(L(&a)) | R(R(&a)) => {
47 Ok(ref a @ b) | Err(b @ ref a) => {