diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-30 03:57:19 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-30 03:57:19 +0000 |
commit | a0b8f38ab54ac451646aa00cd5e91b6c76f22a84 (patch) | |
tree | fc451898ccaf445814e26b46664d78702178101d /tests/ui/rfc-0107-bind-by-move-pattern-guards | |
parent | Adding debian version 1.71.1+dfsg1-2. (diff) | |
download | rustc-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')
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`. |