summaryrefslogtreecommitdiffstats
path: root/src/test/ui/borrowck/borrowck-vec-pattern-nesting.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/ui/borrowck/borrowck-vec-pattern-nesting.rs')
-rw-r--r--src/test/ui/borrowck/borrowck-vec-pattern-nesting.rs94
1 files changed, 0 insertions, 94 deletions
diff --git a/src/test/ui/borrowck/borrowck-vec-pattern-nesting.rs b/src/test/ui/borrowck/borrowck-vec-pattern-nesting.rs
deleted file mode 100644
index 8a9296c59..000000000
--- a/src/test/ui/borrowck/borrowck-vec-pattern-nesting.rs
+++ /dev/null
@@ -1,94 +0,0 @@
-#![feature(box_patterns)]
-
-
-fn a() {
- let mut vec = [Box::new(1), Box::new(2), Box::new(3)];
- match vec {
- [box ref _a, _, _] => {
- //~^ NOTE borrow of `vec[_]` occurs here
- vec[0] = Box::new(4); //~ ERROR cannot assign
- //~^ NOTE assignment to borrowed `vec[_]` occurs here
- _a.use_ref();
- //~^ NOTE borrow later used here
- }
- }
-}
-
-fn b() {
- let mut vec = vec![Box::new(1), Box::new(2), Box::new(3)];
- let vec: &mut [Box<isize>] = &mut vec;
- match vec {
- &mut [ref _b @ ..] => {
- //~^ borrow of `vec[_]` occurs here
- vec[0] = Box::new(4); //~ ERROR cannot assign
- //~^ NOTE assignment to borrowed `vec[_]` occurs here
- _b.use_ref();
- //~^ NOTE borrow later used here
- }
- }
-}
-
-fn c() {
- let mut vec = vec![Box::new(1), Box::new(2), Box::new(3)];
- let vec: &mut [Box<isize>] = &mut vec;
- match vec {
- //~^ ERROR cannot move out
- //~| NOTE cannot move out
- &mut [_a,
- //~^ NOTE data moved here
- //~| NOTE move occurs because `_a` has type
- //~| HELP consider removing the `&mut`
- ..
- ] => {
- }
- _ => {}
- }
- let a = vec[0]; //~ ERROR cannot move out
- //~| NOTE cannot move out of here
- //~| NOTE move occurs because
- //~| HELP consider borrowing here
-}
-
-fn d() {
- let mut vec = vec![Box::new(1), Box::new(2), Box::new(3)];
- let vec: &mut [Box<isize>] = &mut vec;
- match vec {
- //~^ ERROR cannot move out
- //~| NOTE cannot move out
- &mut [
- //~^ HELP consider removing the `&mut`
- _b] => {}
- //~^ NOTE data moved here
- //~| NOTE move occurs because `_b` has type
- _ => {}
- }
- let a = vec[0]; //~ ERROR cannot move out
- //~| NOTE cannot move out of here
- //~| NOTE move occurs because
- //~| HELP consider borrowing here
-}
-
-fn e() {
- let mut vec = vec![Box::new(1), Box::new(2), Box::new(3)];
- let vec: &mut [Box<isize>] = &mut vec;
- match vec {
- //~^ ERROR cannot move out
- //~| NOTE cannot move out
- //~| NOTE move occurs because these variables have types
- &mut [_a, _b, _c] => {}
- //~^ NOTE data moved here
- //~| NOTE and here
- //~| NOTE and here
- //~| HELP consider removing the `&mut`
- _ => {}
- }
- let a = vec[0]; //~ ERROR cannot move out
- //~| NOTE cannot move out of here
- //~| NOTE move occurs because
- //~| HELP consider borrowing here
-}
-
-fn main() {}
-
-trait Fake { fn use_mut(&mut self) { } fn use_ref(&self) { } }
-impl<T> Fake for T { }