diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-17 12:19:03 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-17 12:19:03 +0000 |
commit | 64d98f8ee037282c35007b64c2649055c56af1db (patch) | |
tree | 5492bcf97fce41ee1c0b1cc2add283f3e66cdab0 /src/test/ui/borrowck/borrowck-vec-pattern-nesting.rs | |
parent | Adding debian version 1.67.1+dfsg1-1. (diff) | |
download | rustc-64d98f8ee037282c35007b64c2649055c56af1db.tar.xz rustc-64d98f8ee037282c35007b64c2649055c56af1db.zip |
Merging upstream version 1.68.2+dfsg1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/test/ui/borrowck/borrowck-vec-pattern-nesting.rs')
-rw-r--r-- | src/test/ui/borrowck/borrowck-vec-pattern-nesting.rs | 94 |
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 { } |