summaryrefslogtreecommitdiffstats
path: root/tests/ui/generator/yielding-in-match-guards.rs
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-06-07 05:48:48 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-06-07 05:48:48 +0000
commitef24de24a82fe681581cc130f342363c47c0969a (patch)
tree0d494f7e1a38b95c92426f58fe6eaa877303a86c /tests/ui/generator/yielding-in-match-guards.rs
parentReleasing progress-linux version 1.74.1+dfsg1-1~progress7.99u1. (diff)
downloadrustc-ef24de24a82fe681581cc130f342363c47c0969a.tar.xz
rustc-ef24de24a82fe681581cc130f342363c47c0969a.zip
Merging upstream version 1.75.0+dfsg1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'tests/ui/generator/yielding-in-match-guards.rs')
-rw-r--r--tests/ui/generator/yielding-in-match-guards.rs53
1 files changed, 0 insertions, 53 deletions
diff --git a/tests/ui/generator/yielding-in-match-guards.rs b/tests/ui/generator/yielding-in-match-guards.rs
deleted file mode 100644
index 4e89fc975..000000000
--- a/tests/ui/generator/yielding-in-match-guards.rs
+++ /dev/null
@@ -1,53 +0,0 @@
-// build-pass
-// edition:2018
-
-// This test is derived from
-// https://github.com/rust-lang/rust/issues/72651#issuecomment-668720468
-
-// This test demonstrates that, in `async fn g()`,
-// indeed a temporary borrow `y` from `x` is live
-// while `f().await` is being evaluated.
-// Thus, `&'_ u8` should be included in type signature
-// of the underlying generator.
-
-#![feature(if_let_guard)]
-
-async fn f() -> u8 { 1 }
-async fn foo() -> [bool; 10] { [false; 10] }
-
-pub async fn g(x: u8) {
- match x {
- y if f().await == y => (),
- _ => (),
- }
-}
-
-// #78366: check the reference to the binding is recorded even if the binding is not autorefed
-
-async fn h(x: usize) {
- match x {
- y if foo().await[y] => (),
- _ => (),
- }
-}
-
-async fn i(x: u8) {
- match x {
- y if f().await == y + 1 => (),
- _ => (),
- }
-}
-
-async fn j(x: u8) {
- match x {
- y if let (1, 42) = (f().await, y) => (),
- _ => (),
- }
-}
-
-fn main() {
- let _ = g(10);
- let _ = h(9);
- let _ = i(8);
- let _ = j(7);
-}