summaryrefslogtreecommitdiffstats
path: root/tests/ui/rfc-0107-bind-by-move-pattern-guards
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-30 03:57:19 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-30 03:57:19 +0000
commita0b8f38ab54ac451646aa00cd5e91b6c76f22a84 (patch)
treefc451898ccaf445814e26b46664d78702178101d /tests/ui/rfc-0107-bind-by-move-pattern-guards
parentAdding debian version 1.71.1+dfsg1-2. (diff)
downloadrustc-a0b8f38ab54ac451646aa00cd5e91b6c76f22a84.tar.xz
rustc-a0b8f38ab54ac451646aa00cd5e91b6c76f22a84.zip
Merging upstream version 1.72.1+dfsg1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'tests/ui/rfc-0107-bind-by-move-pattern-guards')
-rw-r--r--tests/ui/rfc-0107-bind-by-move-pattern-guards/bind-by-move-no-guards.rs19
-rw-r--r--tests/ui/rfc-0107-bind-by-move-pattern-guards/former-E0008-now-pass.rs11
-rw-r--r--tests/ui/rfc-0107-bind-by-move-pattern-guards/rfc-basic-examples.rs43
-rw-r--r--tests/ui/rfc-0107-bind-by-move-pattern-guards/rfc-reject-double-move-across-arms.rs24
-rw-r--r--tests/ui/rfc-0107-bind-by-move-pattern-guards/rfc-reject-double-move-across-arms.stderr19
-rw-r--r--tests/ui/rfc-0107-bind-by-move-pattern-guards/rfc-reject-double-move-in-first-arm.rs26
-rw-r--r--tests/ui/rfc-0107-bind-by-move-pattern-guards/rfc-reject-double-move-in-first-arm.stderr19
7 files changed, 0 insertions, 161 deletions
diff --git a/tests/ui/rfc-0107-bind-by-move-pattern-guards/bind-by-move-no-guards.rs b/tests/ui/rfc-0107-bind-by-move-pattern-guards/bind-by-move-no-guards.rs
deleted file mode 100644
index 1e086160f..000000000
--- a/tests/ui/rfc-0107-bind-by-move-pattern-guards/bind-by-move-no-guards.rs
+++ /dev/null
@@ -1,19 +0,0 @@
-// Adaptation of existing ui test (from way back in
-// rust-lang/rust#2329), that starts passing with this feature in
-// place.
-
-// run-pass
-
-use std::sync::mpsc::channel;
-
-fn main() {
- let (tx, rx) = channel();
- let x = Some(rx);
- tx.send(false).unwrap();
- tx.send(false).unwrap();
- match x {
- Some(z) if z.recv().unwrap() => { panic!() },
- Some(z) => { assert!(!z.recv().unwrap()); },
- None => panic!()
- }
-}
diff --git a/tests/ui/rfc-0107-bind-by-move-pattern-guards/former-E0008-now-pass.rs b/tests/ui/rfc-0107-bind-by-move-pattern-guards/former-E0008-now-pass.rs
deleted file mode 100644
index 3161d6fbb..000000000
--- a/tests/ui/rfc-0107-bind-by-move-pattern-guards/former-E0008-now-pass.rs
+++ /dev/null
@@ -1,11 +0,0 @@
-// This test used to emit E0008 but now passed since `bind_by_move_pattern_guards`
-// have been stabilized.
-
-// check-pass
-
-fn main() {
- match Some("hi".to_string()) {
- Some(s) if s.len() == 0 => {},
- _ => {},
- }
-}
diff --git a/tests/ui/rfc-0107-bind-by-move-pattern-guards/rfc-basic-examples.rs b/tests/ui/rfc-0107-bind-by-move-pattern-guards/rfc-basic-examples.rs
deleted file mode 100644
index b716fc870..000000000
--- a/tests/ui/rfc-0107-bind-by-move-pattern-guards/rfc-basic-examples.rs
+++ /dev/null
@@ -1,43 +0,0 @@
-// run-pass
-
-struct A { a: Box<i32> }
-
-impl A {
- fn get(&self) -> i32 { *self.a }
-}
-
-fn foo(n: i32) -> i32 {
- let x = A { a: Box::new(n) };
- let y = match x {
- A { a: v } if *v == 42 => v,
- _ => Box::new(0),
- };
- *y
-}
-
-fn bar(n: i32) -> i32 {
- let x = A { a: Box::new(n) };
- let y = match x {
- A { a: v } if x.get() == 42 => v,
- _ => Box::new(0),
- };
- *y
-}
-
-fn baz(n: i32) -> i32 {
- let x = A { a: Box::new(n) };
- let y = match x {
- A { a: v } if *v.clone() == 42 => v,
- _ => Box::new(0),
- };
- *y
-}
-
-fn main() {
- assert_eq!(foo(107), 0);
- assert_eq!(foo(42), 42);
- assert_eq!(bar(107), 0);
- assert_eq!(bar(42), 42);
- assert_eq!(baz(107), 0);
- assert_eq!(baz(42), 42);
-}
diff --git a/tests/ui/rfc-0107-bind-by-move-pattern-guards/rfc-reject-double-move-across-arms.rs b/tests/ui/rfc-0107-bind-by-move-pattern-guards/rfc-reject-double-move-across-arms.rs
deleted file mode 100644
index 6f0d2b045..000000000
--- a/tests/ui/rfc-0107-bind-by-move-pattern-guards/rfc-reject-double-move-across-arms.rs
+++ /dev/null
@@ -1,24 +0,0 @@
-#![feature(if_let_guard)]
-
-enum VecWrapper { A(Vec<i32>) }
-
-fn if_guard(x: VecWrapper) -> usize {
- match x {
- VecWrapper::A(v) if { drop(v); false } => 1,
- //~^ ERROR cannot move out of `v` in pattern guard
- VecWrapper::A(v) => v.len()
- }
-}
-
-fn if_let_guard(x: VecWrapper) -> usize {
- match x {
- VecWrapper::A(v) if let Some(()) = { drop(v); None } => 1,
- //~^ ERROR cannot move out of `v` in pattern guard
- VecWrapper::A(v) => v.len()
- }
-}
-
-fn main() {
- if_guard(VecWrapper::A(vec![107]));
- if_let_guard(VecWrapper::A(vec![107]));
-}
diff --git a/tests/ui/rfc-0107-bind-by-move-pattern-guards/rfc-reject-double-move-across-arms.stderr b/tests/ui/rfc-0107-bind-by-move-pattern-guards/rfc-reject-double-move-across-arms.stderr
deleted file mode 100644
index a749361bf..000000000
--- a/tests/ui/rfc-0107-bind-by-move-pattern-guards/rfc-reject-double-move-across-arms.stderr
+++ /dev/null
@@ -1,19 +0,0 @@
-error[E0507]: cannot move out of `v` in pattern guard
- --> $DIR/rfc-reject-double-move-across-arms.rs:7:36
- |
-LL | VecWrapper::A(v) if { drop(v); false } => 1,
- | ^ move occurs because `v` has type `Vec<i32>`, which does not implement the `Copy` trait
- |
- = note: variables bound in patterns cannot be moved from until after the end of the pattern guard
-
-error[E0507]: cannot move out of `v` in pattern guard
- --> $DIR/rfc-reject-double-move-across-arms.rs:15:51
- |
-LL | VecWrapper::A(v) if let Some(()) = { drop(v); None } => 1,
- | ^ move occurs because `v` has type `Vec<i32>`, which does not implement the `Copy` trait
- |
- = note: variables bound in patterns cannot be moved from until after the end of the pattern guard
-
-error: aborting due to 2 previous errors
-
-For more information about this error, try `rustc --explain E0507`.
diff --git a/tests/ui/rfc-0107-bind-by-move-pattern-guards/rfc-reject-double-move-in-first-arm.rs b/tests/ui/rfc-0107-bind-by-move-pattern-guards/rfc-reject-double-move-in-first-arm.rs
deleted file mode 100644
index 827335f6a..000000000
--- a/tests/ui/rfc-0107-bind-by-move-pattern-guards/rfc-reject-double-move-in-first-arm.rs
+++ /dev/null
@@ -1,26 +0,0 @@
-#![feature(if_let_guard)]
-
-struct A { a: Box<i32> }
-
-fn if_guard(n: i32) {
- let x = A { a: Box::new(n) };
- let _y = match x {
- A { a: v } if { drop(v); true } => v,
- //~^ ERROR cannot move out of `v` in pattern guard
- _ => Box::new(0),
- };
-}
-
-fn if_let_guard(n: i32) {
- let x = A { a: Box::new(n) };
- let _y = match x {
- A { a: v } if let Some(()) = { drop(v); Some(()) } => v,
- //~^ ERROR cannot move out of `v` in pattern guard
- _ => Box::new(0),
- };
-}
-
-fn main() {
- if_guard(107);
- if_let_guard(107);
-}
diff --git a/tests/ui/rfc-0107-bind-by-move-pattern-guards/rfc-reject-double-move-in-first-arm.stderr b/tests/ui/rfc-0107-bind-by-move-pattern-guards/rfc-reject-double-move-in-first-arm.stderr
deleted file mode 100644
index 9285492b2..000000000
--- a/tests/ui/rfc-0107-bind-by-move-pattern-guards/rfc-reject-double-move-in-first-arm.stderr
+++ /dev/null
@@ -1,19 +0,0 @@
-error[E0507]: cannot move out of `v` in pattern guard
- --> $DIR/rfc-reject-double-move-in-first-arm.rs:8:30
- |
-LL | A { a: v } if { drop(v); true } => v,
- | ^ move occurs because `v` has type `Box<i32>`, which does not implement the `Copy` trait
- |
- = note: variables bound in patterns cannot be moved from until after the end of the pattern guard
-
-error[E0507]: cannot move out of `v` in pattern guard
- --> $DIR/rfc-reject-double-move-in-first-arm.rs:17:45
- |
-LL | A { a: v } if let Some(()) = { drop(v); Some(()) } => v,
- | ^ move occurs because `v` has type `Box<i32>`, which does not implement the `Copy` trait
- |
- = note: variables bound in patterns cannot be moved from until after the end of the pattern guard
-
-error: aborting due to 2 previous errors
-
-For more information about this error, try `rustc --explain E0507`.