summaryrefslogtreecommitdiffstats
path: root/src/test/ui/borrowck/borrowck-use-mut-borrow.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-use-mut-borrow.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-use-mut-borrow.rs')
-rw-r--r--src/test/ui/borrowck/borrowck-use-mut-borrow.rs86
1 files changed, 0 insertions, 86 deletions
diff --git a/src/test/ui/borrowck/borrowck-use-mut-borrow.rs b/src/test/ui/borrowck/borrowck-use-mut-borrow.rs
deleted file mode 100644
index 94f88395f..000000000
--- a/src/test/ui/borrowck/borrowck-use-mut-borrow.rs
+++ /dev/null
@@ -1,86 +0,0 @@
-#[derive(Copy, Clone)]
-struct A { a: isize, b: isize }
-
-struct B { a: isize, b: Box<isize> }
-
-
-
-fn var_copy_after_var_borrow() {
- let mut x: isize = 1;
- let p = &mut x;
- drop(x); //~ ERROR cannot use `x` because it was mutably borrowed
- *p = 2;
-}
-
-fn var_copy_after_field_borrow() {
- let mut x = A { a: 1, b: 2 };
- let p = &mut x.a;
- drop(x); //~ ERROR cannot use `x` because it was mutably borrowed
- *p = 3;
-}
-
-fn field_copy_after_var_borrow() {
- let mut x = A { a: 1, b: 2 };
- let p = &mut x;
- drop(x.a); //~ ERROR cannot use `x.a` because it was mutably borrowed
- p.a = 3;
-}
-
-fn field_copy_after_field_borrow() {
- let mut x = A { a: 1, b: 2 };
- let p = &mut x.a;
- drop(x.a); //~ ERROR cannot use `x.a` because it was mutably borrowed
- *p = 3;
-}
-
-fn fu_field_copy_after_var_borrow() {
- let mut x = A { a: 1, b: 2 };
- let p = &mut x;
- let y = A { b: 3, .. x }; //~ ERROR cannot use `x.a` because it was mutably borrowed
- drop(y);
- p.a = 4;
-}
-
-fn fu_field_copy_after_field_borrow() {
- let mut x = A { a: 1, b: 2 };
- let p = &mut x.a;
- let y = A { b: 3, .. x }; //~ ERROR cannot use `x.a` because it was mutably borrowed
- drop(y);
- *p = 4;
-}
-
-fn var_deref_after_var_borrow() {
- let mut x: Box<isize> = Box::new(1);
- let p = &mut x;
- drop(*x); //~ ERROR cannot use `*x` because it was mutably borrowed
- **p = 2;
-}
-
-fn field_deref_after_var_borrow() {
- let mut x = B { a: 1, b: Box::new(2) };
- let p = &mut x;
- drop(*x.b); //~ ERROR cannot use `*x.b` because it was mutably borrowed
- p.a = 3;
-}
-
-fn field_deref_after_field_borrow() {
- let mut x = B { a: 1, b: Box::new(2) };
- let p = &mut x.b;
- drop(*x.b); //~ ERROR cannot use `*x.b` because it was mutably borrowed
- **p = 3;
-}
-
-fn main() {
- var_copy_after_var_borrow();
- var_copy_after_field_borrow();
-
- field_copy_after_var_borrow();
- field_copy_after_field_borrow();
-
- fu_field_copy_after_var_borrow();
- fu_field_copy_after_field_borrow();
-
- var_deref_after_var_borrow();
- field_deref_after_var_borrow();
- field_deref_after_field_borrow();
-}