summaryrefslogtreecommitdiffstats
path: root/src/test/ui/try-block/try-block-maybe-bad-lifetime.rs
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/try-block/try-block-maybe-bad-lifetime.rs
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/try-block/try-block-maybe-bad-lifetime.rs')
-rw-r--r--src/test/ui/try-block/try-block-maybe-bad-lifetime.rs44
1 files changed, 0 insertions, 44 deletions
diff --git a/src/test/ui/try-block/try-block-maybe-bad-lifetime.rs b/src/test/ui/try-block/try-block-maybe-bad-lifetime.rs
deleted file mode 100644
index cd2ddf63a..000000000
--- a/src/test/ui/try-block/try-block-maybe-bad-lifetime.rs
+++ /dev/null
@@ -1,44 +0,0 @@
-// compile-flags: --edition 2018
-
-#![feature(try_blocks)]
-
-#[inline(never)]
-fn do_something_with<T>(_x: T) {}
-
-// This test checks that borrows made and returned inside try blocks are properly constrained
-pub fn main() {
- {
- // Test that a borrow which *might* be returned still freezes its referent
- let mut i = 222;
- let x: Result<&i32, ()> = try {
- Err(())?;
- &i
- };
- i = 0; //~ ERROR cannot assign to `i` because it is borrowed
- let _ = i;
- do_something_with(x);
- }
-
- {
- let x = String::new();
- let _y: Result<(), ()> = try {
- Err(())?;
- ::std::mem::drop(x);
- };
- println!("{}", x); //~ ERROR borrow of moved value: `x`
- }
-
- {
- // Test that a borrow which *might* be assigned to an outer variable still freezes
- // its referent
- let mut i = 222;
- let mut j = &-1;
- let _x: Result<(), ()> = try {
- Err(())?;
- j = &i;
- };
- i = 0; //~ ERROR cannot assign to `i` because it is borrowed
- let _ = i;
- do_something_with(j);
- }
-}