summaryrefslogtreecommitdiffstats
path: root/src/test/ui/rfc-0107-bind-by-move-pattern-guards
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:19:13 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:19:13 +0000
commit218caa410aa38c29984be31a5229b9fa717560ee (patch)
treec54bd55eeb6e4c508940a30e94c0032fbd45d677 /src/test/ui/rfc-0107-bind-by-move-pattern-guards
parentReleasing progress-linux version 1.67.1+dfsg1-1~progress7.99u1. (diff)
downloadrustc-218caa410aa38c29984be31a5229b9fa717560ee.tar.xz
rustc-218caa410aa38c29984be31a5229b9fa717560ee.zip
Merging upstream version 1.68.2+dfsg1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/test/ui/rfc-0107-bind-by-move-pattern-guards')
-rw-r--r--src/test/ui/rfc-0107-bind-by-move-pattern-guards/bind-by-move-no-guards.rs19
-rw-r--r--src/test/ui/rfc-0107-bind-by-move-pattern-guards/former-E0008-now-pass.rs11
-rw-r--r--src/test/ui/rfc-0107-bind-by-move-pattern-guards/rfc-basic-examples.rs43
-rw-r--r--src/test/ui/rfc-0107-bind-by-move-pattern-guards/rfc-reject-double-move-across-arms.rs13
-rw-r--r--src/test/ui/rfc-0107-bind-by-move-pattern-guards/rfc-reject-double-move-across-arms.stderr11
-rw-r--r--src/test/ui/rfc-0107-bind-by-move-pattern-guards/rfc-reject-double-move-in-first-arm.rs14
-rw-r--r--src/test/ui/rfc-0107-bind-by-move-pattern-guards/rfc-reject-double-move-in-first-arm.stderr11
7 files changed, 0 insertions, 122 deletions
diff --git a/src/test/ui/rfc-0107-bind-by-move-pattern-guards/bind-by-move-no-guards.rs b/src/test/ui/rfc-0107-bind-by-move-pattern-guards/bind-by-move-no-guards.rs
deleted file mode 100644
index 1e086160f..000000000
--- a/src/test/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/src/test/ui/rfc-0107-bind-by-move-pattern-guards/former-E0008-now-pass.rs b/src/test/ui/rfc-0107-bind-by-move-pattern-guards/former-E0008-now-pass.rs
deleted file mode 100644
index 3161d6fbb..000000000
--- a/src/test/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/src/test/ui/rfc-0107-bind-by-move-pattern-guards/rfc-basic-examples.rs b/src/test/ui/rfc-0107-bind-by-move-pattern-guards/rfc-basic-examples.rs
deleted file mode 100644
index b716fc870..000000000
--- a/src/test/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/src/test/ui/rfc-0107-bind-by-move-pattern-guards/rfc-reject-double-move-across-arms.rs b/src/test/ui/rfc-0107-bind-by-move-pattern-guards/rfc-reject-double-move-across-arms.rs
deleted file mode 100644
index d1f685f3e..000000000
--- a/src/test/ui/rfc-0107-bind-by-move-pattern-guards/rfc-reject-double-move-across-arms.rs
+++ /dev/null
@@ -1,13 +0,0 @@
-enum VecWrapper { A(Vec<i32>) }
-
-fn foo(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 main() {
- foo(VecWrapper::A(vec![107]));
-}
diff --git a/src/test/ui/rfc-0107-bind-by-move-pattern-guards/rfc-reject-double-move-across-arms.stderr b/src/test/ui/rfc-0107-bind-by-move-pattern-guards/rfc-reject-double-move-across-arms.stderr
deleted file mode 100644
index 6c3d1caf8..000000000
--- a/src/test/ui/rfc-0107-bind-by-move-pattern-guards/rfc-reject-double-move-across-arms.stderr
+++ /dev/null
@@ -1,11 +0,0 @@
-error[E0507]: cannot move out of `v` in pattern guard
- --> $DIR/rfc-reject-double-move-across-arms.rs:5: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: aborting due to previous error
-
-For more information about this error, try `rustc --explain E0507`.
diff --git a/src/test/ui/rfc-0107-bind-by-move-pattern-guards/rfc-reject-double-move-in-first-arm.rs b/src/test/ui/rfc-0107-bind-by-move-pattern-guards/rfc-reject-double-move-in-first-arm.rs
deleted file mode 100644
index 571f51c90..000000000
--- a/src/test/ui/rfc-0107-bind-by-move-pattern-guards/rfc-reject-double-move-in-first-arm.rs
+++ /dev/null
@@ -1,14 +0,0 @@
-struct A { a: Box<i32> }
-
-fn foo(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 main() {
- foo(107);
-}
diff --git a/src/test/ui/rfc-0107-bind-by-move-pattern-guards/rfc-reject-double-move-in-first-arm.stderr b/src/test/ui/rfc-0107-bind-by-move-pattern-guards/rfc-reject-double-move-in-first-arm.stderr
deleted file mode 100644
index d1204bc26..000000000
--- a/src/test/ui/rfc-0107-bind-by-move-pattern-guards/rfc-reject-double-move-in-first-arm.stderr
+++ /dev/null
@@ -1,11 +0,0 @@
-error[E0507]: cannot move out of `v` in pattern guard
- --> $DIR/rfc-reject-double-move-in-first-arm.rs:6: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: aborting due to previous error
-
-For more information about this error, try `rustc --explain E0507`.