summaryrefslogtreecommitdiffstats
path: root/tests/ui/pattern/bindings-after-at
diff options
context:
space:
mode:
Diffstat (limited to 'tests/ui/pattern/bindings-after-at')
-rw-r--r--tests/ui/pattern/bindings-after-at/borrowck-pat-at-and-box-pass.rs3
-rw-r--r--tests/ui/pattern/bindings-after-at/borrowck-pat-at-and-box.stderr16
-rw-r--r--tests/ui/pattern/bindings-after-at/borrowck-pat-by-copy-bindings-in-at.rs2
-rw-r--r--tests/ui/pattern/bindings-after-at/borrowck-pat-by-move-and-ref-inverse.stderr144
-rw-r--r--tests/ui/pattern/bindings-after-at/borrowck-pat-by-move-and-ref.stderr84
-rw-r--r--tests/ui/pattern/bindings-after-at/borrowck-pat-ref-mut-and-ref.stderr82
-rw-r--r--tests/ui/pattern/bindings-after-at/borrowck-pat-ref-mut-twice.stderr88
-rw-r--r--tests/ui/pattern/bindings-after-at/nested-type-ascription-syntactically-invalid.rs3
-rw-r--r--tests/ui/pattern/bindings-after-at/nested-type-ascription-syntactically-invalid.stderr10
9 files changed, 216 insertions, 216 deletions
diff --git a/tests/ui/pattern/bindings-after-at/borrowck-pat-at-and-box-pass.rs b/tests/ui/pattern/bindings-after-at/borrowck-pat-at-and-box-pass.rs
index fbdefd9d3..43b53b7cf 100644
--- a/tests/ui/pattern/bindings-after-at/borrowck-pat-at-and-box-pass.rs
+++ b/tests/ui/pattern/bindings-after-at/borrowck-pat-at-and-box-pass.rs
@@ -2,6 +2,9 @@
// Test `@` patterns combined with `box` patterns.
+#![allow(dropping_references)]
+#![allow(dropping_copy_types)]
+
#![feature(box_patterns)]
#[derive(Copy, Clone)]
diff --git a/tests/ui/pattern/bindings-after-at/borrowck-pat-at-and-box.stderr b/tests/ui/pattern/bindings-after-at/borrowck-pat-at-and-box.stderr
index 9305facc4..3ce48b1a7 100644
--- a/tests/ui/pattern/bindings-after-at/borrowck-pat-at-and-box.stderr
+++ b/tests/ui/pattern/bindings-after-at/borrowck-pat-at-and-box.stderr
@@ -54,14 +54,6 @@ LL | ref mut a @ box ref b => {
| |
| value is mutably borrowed by `a` here
-error: cannot borrow value as immutable because it is also borrowed as mutable
- --> $DIR/borrowck-pat-at-and-box.rs:54:11
- |
-LL | fn f5(ref mut a @ box ref b: Box<NC>) {
- | ^^^^^^^^^ ----- value is borrowed by `b` here
- | |
- | value is mutably borrowed by `a` here
-
error[E0382]: borrow of moved value
--> $DIR/borrowck-pat-at-and-box.rs:31:9
|
@@ -120,6 +112,14 @@ LL | ref mut a @ box ref b => {
LL | drop(b);
| - immutable borrow later used here
+error: cannot borrow value as immutable because it is also borrowed as mutable
+ --> $DIR/borrowck-pat-at-and-box.rs:54:11
+ |
+LL | fn f5(ref mut a @ box ref b: Box<NC>) {
+ | ^^^^^^^^^ ----- value is borrowed by `b` here
+ | |
+ | value is mutably borrowed by `a` here
+
error[E0502]: cannot borrow value as mutable because it is also borrowed as immutable
--> $DIR/borrowck-pat-at-and-box.rs:54:11
|
diff --git a/tests/ui/pattern/bindings-after-at/borrowck-pat-by-copy-bindings-in-at.rs b/tests/ui/pattern/bindings-after-at/borrowck-pat-by-copy-bindings-in-at.rs
index 0108861cf..1df51c0ed 100644
--- a/tests/ui/pattern/bindings-after-at/borrowck-pat-by-copy-bindings-in-at.rs
+++ b/tests/ui/pattern/bindings-after-at/borrowck-pat-by-copy-bindings-in-at.rs
@@ -2,6 +2,8 @@
// Test `Copy` bindings in the rhs of `@` patterns.
+#![allow(dropping_copy_types)]
+
#[derive(Copy, Clone)]
struct C;
diff --git a/tests/ui/pattern/bindings-after-at/borrowck-pat-by-move-and-ref-inverse.stderr b/tests/ui/pattern/bindings-after-at/borrowck-pat-by-move-and-ref-inverse.stderr
index 13989ebad..1ed019f0a 100644
--- a/tests/ui/pattern/bindings-after-at/borrowck-pat-by-move-and-ref-inverse.stderr
+++ b/tests/ui/pattern/bindings-after-at/borrowck-pat-by-move-and-ref-inverse.stderr
@@ -286,78 +286,6 @@ help: borrow this binding in the pattern to avoid moving the value
LL | ref mut a @ Some([ref b, ref mut c]) => {}
| +++
-error: borrow of moved value
- --> $DIR/borrowck-pat-by-move-and-ref-inverse.rs:11:11
- |
-LL | fn f1(a @ ref b: U) {}
- | ^ ----- value borrowed here after move
- | |
- | value moved into `a` here
- | move occurs because `a` has type `U` which does not implement the `Copy` trait
- |
-help: borrow this binding in the pattern to avoid moving the value
- |
-LL | fn f1(ref a @ ref b: U) {}
- | +++
-
-error: borrow of moved value
- --> $DIR/borrowck-pat-by-move-and-ref-inverse.rs:14:11
- |
-LL | fn f2(mut a @ (b @ ref c, mut d @ ref e): (U, U)) {}
- | ^^^^^ ----- ----- value borrowed here after move
- | | |
- | | value borrowed here after move
- | value moved into `a` here
- | move occurs because `a` has type `(U, U)` which does not implement the `Copy` trait
- |
-help: borrow this binding in the pattern to avoid moving the value
- |
-LL | fn f2(ref mut a @ (b @ ref c, mut d @ ref e): (U, U)) {}
- | +++
-
-error: borrow of moved value
- --> $DIR/borrowck-pat-by-move-and-ref-inverse.rs:14:20
- |
-LL | fn f2(mut a @ (b @ ref c, mut d @ ref e): (U, U)) {}
- | ^ ----- value borrowed here after move
- | |
- | value moved into `b` here
- | move occurs because `b` has type `U` which does not implement the `Copy` trait
- |
-help: borrow this binding in the pattern to avoid moving the value
- |
-LL | fn f2(mut a @ (ref b @ ref c, mut d @ ref e): (U, U)) {}
- | +++
-
-error: borrow of moved value
- --> $DIR/borrowck-pat-by-move-and-ref-inverse.rs:14:31
- |
-LL | fn f2(mut a @ (b @ ref c, mut d @ ref e): (U, U)) {}
- | ^^^^^ ----- value borrowed here after move
- | |
- | value moved into `d` here
- | move occurs because `d` has type `U` which does not implement the `Copy` trait
- |
-help: borrow this binding in the pattern to avoid moving the value
- |
-LL | fn f2(mut a @ (b @ ref c, ref mut d @ ref e): (U, U)) {}
- | +++
-
-error: borrow of moved value
- --> $DIR/borrowck-pat-by-move-and-ref-inverse.rs:19:11
- |
-LL | fn f3(a @ [ref mut b, ref c]: [U; 2]) {}
- | ^ --------- ----- value borrowed here after move
- | | |
- | | value borrowed here after move
- | value moved into `a` here
- | move occurs because `a` has type `[U; 2]` which does not implement the `Copy` trait
- |
-help: borrow this binding in the pattern to avoid moving the value
- |
-LL | fn f3(ref a @ [ref mut b, ref c]: [U; 2]) {}
- | +++
-
error[E0382]: use of partially moved value
--> $DIR/borrowck-pat-by-move-and-ref-inverse.rs:24:9
|
@@ -447,6 +375,63 @@ LL | mut a @ Some([ref b, ref mut c]) => {}
| |
| value moved here
+error: borrow of moved value
+ --> $DIR/borrowck-pat-by-move-and-ref-inverse.rs:11:11
+ |
+LL | fn f1(a @ ref b: U) {}
+ | ^ ----- value borrowed here after move
+ | |
+ | value moved into `a` here
+ | move occurs because `a` has type `U` which does not implement the `Copy` trait
+ |
+help: borrow this binding in the pattern to avoid moving the value
+ |
+LL | fn f1(ref a @ ref b: U) {}
+ | +++
+
+error: borrow of moved value
+ --> $DIR/borrowck-pat-by-move-and-ref-inverse.rs:14:11
+ |
+LL | fn f2(mut a @ (b @ ref c, mut d @ ref e): (U, U)) {}
+ | ^^^^^ ----- ----- value borrowed here after move
+ | | |
+ | | value borrowed here after move
+ | value moved into `a` here
+ | move occurs because `a` has type `(U, U)` which does not implement the `Copy` trait
+ |
+help: borrow this binding in the pattern to avoid moving the value
+ |
+LL | fn f2(ref mut a @ (b @ ref c, mut d @ ref e): (U, U)) {}
+ | +++
+
+error: borrow of moved value
+ --> $DIR/borrowck-pat-by-move-and-ref-inverse.rs:14:20
+ |
+LL | fn f2(mut a @ (b @ ref c, mut d @ ref e): (U, U)) {}
+ | ^ ----- value borrowed here after move
+ | |
+ | value moved into `b` here
+ | move occurs because `b` has type `U` which does not implement the `Copy` trait
+ |
+help: borrow this binding in the pattern to avoid moving the value
+ |
+LL | fn f2(mut a @ (ref b @ ref c, mut d @ ref e): (U, U)) {}
+ | +++
+
+error: borrow of moved value
+ --> $DIR/borrowck-pat-by-move-and-ref-inverse.rs:14:31
+ |
+LL | fn f2(mut a @ (b @ ref c, mut d @ ref e): (U, U)) {}
+ | ^^^^^ ----- value borrowed here after move
+ | |
+ | value moved into `d` here
+ | move occurs because `d` has type `U` which does not implement the `Copy` trait
+ |
+help: borrow this binding in the pattern to avoid moving the value
+ |
+LL | fn f2(mut a @ (b @ ref c, ref mut d @ ref e): (U, U)) {}
+ | +++
+
error[E0382]: use of partially moved value
--> $DIR/borrowck-pat-by-move-and-ref-inverse.rs:14:11
|
@@ -457,6 +442,21 @@ LL | fn f2(mut a @ (b @ ref c, mut d @ ref e): (U, U)) {}
|
= note: partial move occurs because value has type `U`, which does not implement the `Copy` trait
+error: borrow of moved value
+ --> $DIR/borrowck-pat-by-move-and-ref-inverse.rs:19:11
+ |
+LL | fn f3(a @ [ref mut b, ref c]: [U; 2]) {}
+ | ^ --------- ----- value borrowed here after move
+ | | |
+ | | value borrowed here after move
+ | value moved into `a` here
+ | move occurs because `a` has type `[U; 2]` which does not implement the `Copy` trait
+ |
+help: borrow this binding in the pattern to avoid moving the value
+ |
+LL | fn f3(ref a @ [ref mut b, ref c]: [U; 2]) {}
+ | +++
+
error: aborting due to 33 previous errors
For more information about this error, try `rustc --explain E0382`.
diff --git a/tests/ui/pattern/bindings-after-at/borrowck-pat-by-move-and-ref.stderr b/tests/ui/pattern/bindings-after-at/borrowck-pat-by-move-and-ref.stderr
index 00593b2a9..c8c4d9b8f 100644
--- a/tests/ui/pattern/bindings-after-at/borrowck-pat-by-move-and-ref.stderr
+++ b/tests/ui/pattern/bindings-after-at/borrowck-pat-by-move-and-ref.stderr
@@ -166,48 +166,6 @@ LL | ref mut a @ Some([b, mut c]) => {}
| | value is moved into `b` here
| value is mutably borrowed by `a` here
-error: cannot move out of value because it is borrowed
- --> $DIR/borrowck-pat-by-move-and-ref.rs:11:11
- |
-LL | fn f1(ref a @ b: U) {}
- | ^^^^^ - value is moved into `b` here
- | |
- | value is borrowed by `a` here
-
-error: cannot move out of value because it is borrowed
- --> $DIR/borrowck-pat-by-move-and-ref.rs:14:11
- |
-LL | fn f2(ref a @ (ref b @ mut c, ref d @ e): (U, U)) {}
- | ^^^^^ ----- - value is moved into `e` here
- | | |
- | | value is moved into `c` here
- | value is borrowed by `a` here
-
-error: cannot move out of value because it is borrowed
- --> $DIR/borrowck-pat-by-move-and-ref.rs:14:20
- |
-LL | fn f2(ref a @ (ref b @ mut c, ref d @ e): (U, U)) {}
- | ^^^^^ ----- value is moved into `c` here
- | |
- | value is borrowed by `b` here
-
-error: cannot move out of value because it is borrowed
- --> $DIR/borrowck-pat-by-move-and-ref.rs:14:35
- |
-LL | fn f2(ref a @ (ref b @ mut c, ref d @ e): (U, U)) {}
- | ^^^^^ - value is moved into `e` here
- | |
- | value is borrowed by `d` here
-
-error: cannot move out of value because it is borrowed
- --> $DIR/borrowck-pat-by-move-and-ref.rs:20:11
- |
-LL | fn f3(ref mut a @ [b, mut c]: [U; 2]) {}
- | ^^^^^^^^^ - ----- value is moved into `c` here
- | | |
- | | value is moved into `b` here
- | value is mutably borrowed by `a` here
-
error[E0382]: borrow of partially moved value
--> $DIR/borrowck-pat-by-move-and-ref.rs:30:9
|
@@ -306,6 +264,14 @@ help: borrow this binding in the pattern to avoid moving the value
LL | ref a @ Some((ref b @ mut c, ref d @ ref e)) => {}
| +++
+error: cannot move out of value because it is borrowed
+ --> $DIR/borrowck-pat-by-move-and-ref.rs:11:11
+ |
+LL | fn f1(ref a @ b: U) {}
+ | ^^^^^ - value is moved into `b` here
+ | |
+ | value is borrowed by `a` here
+
error[E0382]: borrow of moved value
--> $DIR/borrowck-pat-by-move-and-ref.rs:11:11
|
@@ -315,6 +281,31 @@ LL | fn f1(ref a @ b: U) {}
| value borrowed here after move
| move occurs because value has type `U`, which does not implement the `Copy` trait
+error: cannot move out of value because it is borrowed
+ --> $DIR/borrowck-pat-by-move-and-ref.rs:14:11
+ |
+LL | fn f2(ref a @ (ref b @ mut c, ref d @ e): (U, U)) {}
+ | ^^^^^ ----- - value is moved into `e` here
+ | | |
+ | | value is moved into `c` here
+ | value is borrowed by `a` here
+
+error: cannot move out of value because it is borrowed
+ --> $DIR/borrowck-pat-by-move-and-ref.rs:14:20
+ |
+LL | fn f2(ref a @ (ref b @ mut c, ref d @ e): (U, U)) {}
+ | ^^^^^ ----- value is moved into `c` here
+ | |
+ | value is borrowed by `b` here
+
+error: cannot move out of value because it is borrowed
+ --> $DIR/borrowck-pat-by-move-and-ref.rs:14:35
+ |
+LL | fn f2(ref a @ (ref b @ mut c, ref d @ e): (U, U)) {}
+ | ^^^^^ - value is moved into `e` here
+ | |
+ | value is borrowed by `d` here
+
error[E0382]: borrow of moved value
--> $DIR/borrowck-pat-by-move-and-ref.rs:14:20
|
@@ -335,6 +326,15 @@ LL | fn f2(ref a @ (ref b @ mut c, ref d @ e): (U, U)) {}
|
= note: move occurs because value has type `U`, which does not implement the `Copy` trait
+error: cannot move out of value because it is borrowed
+ --> $DIR/borrowck-pat-by-move-and-ref.rs:20:11
+ |
+LL | fn f3(ref mut a @ [b, mut c]: [U; 2]) {}
+ | ^^^^^^^^^ - ----- value is moved into `c` here
+ | | |
+ | | value is moved into `b` here
+ | value is mutably borrowed by `a` here
+
error[E0382]: borrow of partially moved value
--> $DIR/borrowck-pat-by-move-and-ref.rs:20:11
|
diff --git a/tests/ui/pattern/bindings-after-at/borrowck-pat-ref-mut-and-ref.stderr b/tests/ui/pattern/bindings-after-at/borrowck-pat-ref-mut-and-ref.stderr
index d6409d1b6..c0a6558a1 100644
--- a/tests/ui/pattern/bindings-after-at/borrowck-pat-ref-mut-and-ref.stderr
+++ b/tests/ui/pattern/bindings-after-at/borrowck-pat-ref-mut-and-ref.stderr
@@ -221,47 +221,6 @@ LL | let ref mut a @ (ref b, ref c) = (U, U);
| | value is borrowed by `b` here
| value is mutably borrowed by `a` here
-error: cannot borrow value as mutable because it is also borrowed as immutable
- --> $DIR/borrowck-pat-ref-mut-and-ref.rs:22:11
- |
-LL | fn f1(ref a @ ref mut b: U) {}
- | ^^^^^ --------- value is mutably borrowed by `b` here
- | |
- | value is borrowed by `a` here
-
-error: cannot borrow value as immutable because it is also borrowed as mutable
- --> $DIR/borrowck-pat-ref-mut-and-ref.rs:24:11
- |
-LL | fn f2(ref mut a @ ref b: U) {}
- | ^^^^^^^^^ ----- value is borrowed by `b` here
- | |
- | value is mutably borrowed by `a` here
-
-error: cannot borrow value as mutable because it is also borrowed as immutable
- --> $DIR/borrowck-pat-ref-mut-and-ref.rs:26:11
- |
-LL | fn f3(ref a @ [ref b, ref mut mid @ .., ref c]: [U; 4]) {}
- | ^^^^^ ----------- value is mutably borrowed by `mid` here
- | |
- | value is borrowed by `a` here
-
-error: cannot borrow value as mutable because it is also borrowed as immutable
- --> $DIR/borrowck-pat-ref-mut-and-ref.rs:28:22
- |
-LL | fn f4_also_moved(ref a @ ref mut b @ c: U) {}
- | ^^^^^ --------- - value is moved into `c` here
- | | |
- | | value is mutably borrowed by `b` here
- | value is borrowed by `a` here
-
-error: cannot move out of value because it is borrowed
- --> $DIR/borrowck-pat-ref-mut-and-ref.rs:28:30
- |
-LL | fn f4_also_moved(ref a @ ref mut b @ c: U) {}
- | ^^^^^^^^^ - value is moved into `c` here
- | |
- | value is mutably borrowed by `b` here
-
error[E0502]: cannot borrow value as immutable because it is also borrowed as mutable
--> $DIR/borrowck-pat-ref-mut-and-ref.rs:8:31
|
@@ -398,6 +357,47 @@ LL |
LL | *b = U;
| ------ mutable borrow later used here
+error: cannot borrow value as mutable because it is also borrowed as immutable
+ --> $DIR/borrowck-pat-ref-mut-and-ref.rs:22:11
+ |
+LL | fn f1(ref a @ ref mut b: U) {}
+ | ^^^^^ --------- value is mutably borrowed by `b` here
+ | |
+ | value is borrowed by `a` here
+
+error: cannot borrow value as immutable because it is also borrowed as mutable
+ --> $DIR/borrowck-pat-ref-mut-and-ref.rs:24:11
+ |
+LL | fn f2(ref mut a @ ref b: U) {}
+ | ^^^^^^^^^ ----- value is borrowed by `b` here
+ | |
+ | value is mutably borrowed by `a` here
+
+error: cannot borrow value as mutable because it is also borrowed as immutable
+ --> $DIR/borrowck-pat-ref-mut-and-ref.rs:26:11
+ |
+LL | fn f3(ref a @ [ref b, ref mut mid @ .., ref c]: [U; 4]) {}
+ | ^^^^^ ----------- value is mutably borrowed by `mid` here
+ | |
+ | value is borrowed by `a` here
+
+error: cannot borrow value as mutable because it is also borrowed as immutable
+ --> $DIR/borrowck-pat-ref-mut-and-ref.rs:28:22
+ |
+LL | fn f4_also_moved(ref a @ ref mut b @ c: U) {}
+ | ^^^^^ --------- - value is moved into `c` here
+ | | |
+ | | value is mutably borrowed by `b` here
+ | value is borrowed by `a` here
+
+error: cannot move out of value because it is borrowed
+ --> $DIR/borrowck-pat-ref-mut-and-ref.rs:28:30
+ |
+LL | fn f4_also_moved(ref a @ ref mut b @ c: U) {}
+ | ^^^^^^^^^ - value is moved into `c` here
+ | |
+ | value is mutably borrowed by `b` here
+
error[E0382]: borrow of moved value
--> $DIR/borrowck-pat-ref-mut-and-ref.rs:28:30
|
diff --git a/tests/ui/pattern/bindings-after-at/borrowck-pat-ref-mut-twice.stderr b/tests/ui/pattern/bindings-after-at/borrowck-pat-ref-mut-twice.stderr
index 24189d061..c634ea470 100644
--- a/tests/ui/pattern/bindings-after-at/borrowck-pat-ref-mut-twice.stderr
+++ b/tests/ui/pattern/bindings-after-at/borrowck-pat-ref-mut-twice.stderr
@@ -194,50 +194,6 @@ LL | ref mut a @ Ok(ref mut b) | ref mut a @ Err(ref mut b) => {
| |
| value is mutably borrowed by `a` here
-error: cannot borrow value as mutable more than once at a time
- --> $DIR/borrowck-pat-ref-mut-twice.rs:8:11
- |
-LL | fn f1(ref mut a @ ref mut b: U) {}
- | ^^^^^^^^^ --------- value is mutably borrowed by `b` here
- | |
- | value is mutably borrowed by `a` here
-
-error: cannot borrow value as mutable more than once at a time
- --> $DIR/borrowck-pat-ref-mut-twice.rs:10:11
- |
-LL | fn f2(ref mut a @ ref mut b: U) {}
- | ^^^^^^^^^ --------- value is mutably borrowed by `b` here
- | |
- | value is mutably borrowed by `a` here
-
-error: cannot borrow value as mutable more than once at a time
- --> $DIR/borrowck-pat-ref-mut-twice.rs:13:9
- |
-LL | ref mut a @ [
- | ^^^^^^^^^ value is mutably borrowed by `a` here
-LL |
-LL | [ref b @ .., _],
- | ----- value is borrowed by `b` here
-LL | [_, ref mut mid @ ..],
- | ----------- value is mutably borrowed by `mid` here
-
-error: cannot borrow value as mutable more than once at a time
- --> $DIR/borrowck-pat-ref-mut-twice.rs:21:22
- |
-LL | fn f4_also_moved(ref mut a @ ref mut b @ c: U) {}
- | ^^^^^^^^^ --------- - value is moved into `c` here
- | | |
- | | value is mutably borrowed by `b` here
- | value is mutably borrowed by `a` here
-
-error: cannot move out of value because it is borrowed
- --> $DIR/borrowck-pat-ref-mut-twice.rs:21:34
- |
-LL | fn f4_also_moved(ref mut a @ ref mut b @ c: U) {}
- | ^^^^^^^^^ - value is moved into `c` here
- | |
- | value is mutably borrowed by `b` here
-
error[E0499]: cannot borrow value as mutable more than once at a time
--> $DIR/borrowck-pat-ref-mut-twice.rs:29:9
|
@@ -304,6 +260,50 @@ LL | ref mut a @ Ok(ref mut b) | ref mut a @ Err(ref mut b) => {
LL | drop(a);
| - first borrow later used here
+error: cannot borrow value as mutable more than once at a time
+ --> $DIR/borrowck-pat-ref-mut-twice.rs:8:11
+ |
+LL | fn f1(ref mut a @ ref mut b: U) {}
+ | ^^^^^^^^^ --------- value is mutably borrowed by `b` here
+ | |
+ | value is mutably borrowed by `a` here
+
+error: cannot borrow value as mutable more than once at a time
+ --> $DIR/borrowck-pat-ref-mut-twice.rs:10:11
+ |
+LL | fn f2(ref mut a @ ref mut b: U) {}
+ | ^^^^^^^^^ --------- value is mutably borrowed by `b` here
+ | |
+ | value is mutably borrowed by `a` here
+
+error: cannot borrow value as mutable more than once at a time
+ --> $DIR/borrowck-pat-ref-mut-twice.rs:13:9
+ |
+LL | ref mut a @ [
+ | ^^^^^^^^^ value is mutably borrowed by `a` here
+LL |
+LL | [ref b @ .., _],
+ | ----- value is borrowed by `b` here
+LL | [_, ref mut mid @ ..],
+ | ----------- value is mutably borrowed by `mid` here
+
+error: cannot borrow value as mutable more than once at a time
+ --> $DIR/borrowck-pat-ref-mut-twice.rs:21:22
+ |
+LL | fn f4_also_moved(ref mut a @ ref mut b @ c: U) {}
+ | ^^^^^^^^^ --------- - value is moved into `c` here
+ | | |
+ | | value is mutably borrowed by `b` here
+ | value is mutably borrowed by `a` here
+
+error: cannot move out of value because it is borrowed
+ --> $DIR/borrowck-pat-ref-mut-twice.rs:21:34
+ |
+LL | fn f4_also_moved(ref mut a @ ref mut b @ c: U) {}
+ | ^^^^^^^^^ - value is moved into `c` here
+ | |
+ | value is mutably borrowed by `b` here
+
error[E0382]: borrow of moved value
--> $DIR/borrowck-pat-ref-mut-twice.rs:21:34
|
diff --git a/tests/ui/pattern/bindings-after-at/nested-type-ascription-syntactically-invalid.rs b/tests/ui/pattern/bindings-after-at/nested-type-ascription-syntactically-invalid.rs
index a709e34b5..01a978d55 100644
--- a/tests/ui/pattern/bindings-after-at/nested-type-ascription-syntactically-invalid.rs
+++ b/tests/ui/pattern/bindings-after-at/nested-type-ascription-syntactically-invalid.rs
@@ -22,8 +22,7 @@ fn case_1() {
#[cfg(FALSE)]
fn case_2() {
let a @ (b: u8);
- //~^ ERROR expected one of `!`
- //~| ERROR expected one of `)`
+ //~^ ERROR expected one of `)`
}
#[cfg(FALSE)]
diff --git a/tests/ui/pattern/bindings-after-at/nested-type-ascription-syntactically-invalid.stderr b/tests/ui/pattern/bindings-after-at/nested-type-ascription-syntactically-invalid.stderr
index 27660ae40..0c109ff6b 100644
--- a/tests/ui/pattern/bindings-after-at/nested-type-ascription-syntactically-invalid.stderr
+++ b/tests/ui/pattern/bindings-after-at/nested-type-ascription-syntactically-invalid.stderr
@@ -9,18 +9,14 @@ error: expected one of `)`, `,`, `@`, or `|`, found `:`
|
LL | let a @ (b: u8);
| ^ expected one of `)`, `,`, `@`, or `|`
-
-error: expected one of `!`, `(`, `+`, `::`, `;`, `<`, or `=`, found `)`
- --> $DIR/nested-type-ascription-syntactically-invalid.rs:24:19
|
-LL | let a @ (b: u8);
- | ^ expected one of 7 possible tokens
+ = note: type ascription syntax has been removed, see issue #101728 <https://github.com/rust-lang/rust/issues/101728>
error: expected one of `!`, `(`, `+`, `::`, `;`, `<`, or `=`, found `@`
- --> $DIR/nested-type-ascription-syntactically-invalid.rs:31:15
+ --> $DIR/nested-type-ascription-syntactically-invalid.rs:30:15
|
LL | let a: T1 @ Outer(b: T2);
| ^ expected one of 7 possible tokens
-error: aborting due to 4 previous errors
+error: aborting due to 3 previous errors