summaryrefslogtreecommitdiffstats
path: root/src/test/ui/borrowck/borrowck-vec-pattern-nesting.rs
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:19:03 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:19:03 +0000
commit64d98f8ee037282c35007b64c2649055c56af1db (patch)
tree5492bcf97fce41ee1c0b1cc2add283f3e66cdab0 /src/test/ui/borrowck/borrowck-vec-pattern-nesting.rs
parentAdding debian version 1.67.1+dfsg1-1. (diff)
downloadrustc-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.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 { }