summaryrefslogtreecommitdiffstats
path: root/src/test/ui/generator/yielding-in-match-guards.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/ui/generator/yielding-in-match-guards.rs')
-rw-r--r--src/test/ui/generator/yielding-in-match-guards.rs53
1 files changed, 0 insertions, 53 deletions
diff --git a/src/test/ui/generator/yielding-in-match-guards.rs b/src/test/ui/generator/yielding-in-match-guards.rs
deleted file mode 100644
index 4e89fc975..000000000
--- a/src/test/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);
-}