diff options
Diffstat (limited to 'src/test/ui/pattern/bindings-after-at/borrowck-pat-by-copy-bindings-in-at.rs')
-rw-r--r-- | src/test/ui/pattern/bindings-after-at/borrowck-pat-by-copy-bindings-in-at.rs | 49 |
1 files changed, 0 insertions, 49 deletions
diff --git a/src/test/ui/pattern/bindings-after-at/borrowck-pat-by-copy-bindings-in-at.rs b/src/test/ui/pattern/bindings-after-at/borrowck-pat-by-copy-bindings-in-at.rs deleted file mode 100644 index 0108861cf..000000000 --- a/src/test/ui/pattern/bindings-after-at/borrowck-pat-by-copy-bindings-in-at.rs +++ /dev/null @@ -1,49 +0,0 @@ -// check-pass - -// Test `Copy` bindings in the rhs of `@` patterns. - -#[derive(Copy, Clone)] -struct C; - -fn mk_c() -> C { C } - -#[derive(Copy, Clone)] -struct P<A, B>(A, B); - -enum E<A, B> { L(A), R(B) } - -fn main() { - let a @ b @ c @ d = C; - let a @ (b, c) = (C, mk_c()); - let a @ P(b, P(c, d)) = P(mk_c(), P(C, C)); - let a @ [b, c] = [C, C]; - let a @ [b, .., c] = [C, mk_c(), C]; - let a @ [b, mid @ .., c] = [C, mk_c(), C]; - let a @ &(b, c) = &(C, C); - let a @ &(b, &P(c, d)) = &(mk_c(), &P(C, C)); - - fn foo(a @ [b, mid @ .., c]: [C; 3]) {} - - use self::E::*; - match L(C) { - L(a) | R(a) => { - let a: C = a; - drop(a); - drop(a); - } - } - match R(&L(&mk_c())) { - L(L(&a)) | L(R(&a)) | R(L(&a)) | R(R(&a)) => { - let a: C = a; - drop(a); - drop(a); - } - } - - match Ok(mk_c()) { - Ok(ref a @ b) | Err(b @ ref a) => { - let _: &C = a; - let _: C = b; - } - } -} |