]> git.lizzy.rs Git - rust.git/blobdiff - src/test/ui/cleanup-rvalue-scopes-cf.rs
Auto merge of #84589 - In-line:zircon-thread-name, r=JohnTitor
[rust.git] / src / test / ui / cleanup-rvalue-scopes-cf.rs
index 106dbd324ff9e3d8a08818fe1dc8e4bec7043bfb..e3cecb1bffed633eadd76bd028338d22edbed961 100644 (file)
@@ -1,5 +1,3 @@
-// ignore-compare-mode-nll
-
 // Test that the borrow checker prevents pointers to temporaries
 // with statement lifetimes from escaping.
 
@@ -7,7 +5,7 @@
 
 static mut FLAGS: u64 = 0;
 
-struct Box<T> { f: T }
+struct StackBox<T> { f: T }
 struct AddFlags { bits: u64 }
 
 fn AddFlags(bits: u64) -> AddFlags {
@@ -25,11 +23,13 @@ fn get(&self) -> &AddFlags {
 }
 
 pub fn main() {
-    let _x = arg(&AddFlags(1)); //~ ERROR value does not live long enough
-    let _x = AddFlags(1).get(); //~ ERROR value does not live long enough
-    let _x = &*arg(&AddFlags(1)); //~ ERROR value does not live long enough
-    let ref _x = *arg(&AddFlags(1)); //~ ERROR value does not live long enough
-    let &ref _x = arg(&AddFlags(1)); //~ ERROR value does not live long enough
-    let _x = AddFlags(1).get(); //~ ERROR value does not live long enough
-    let Box { f: _x } = Box { f: AddFlags(1).get() }; //~ ERROR value does not live long enough
+    let x1 = arg(&AddFlags(1)); //~ ERROR temporary value dropped while borrowed
+    let x2 = AddFlags(1).get(); //~ ERROR temporary value dropped while borrowed
+    let x3 = &*arg(&AddFlags(1)); //~ ERROR temporary value dropped while borrowed
+    let ref x4 = *arg(&AddFlags(1)); //~ ERROR temporary value dropped while borrowed
+    let &ref x5 = arg(&AddFlags(1)); //~ ERROR temporary value dropped while borrowed
+    let x6 = AddFlags(1).get(); //~ ERROR temporary value dropped while borrowed
+    let StackBox { f: x7 } = StackBox { f: AddFlags(1).get() };
+    //~^ ERROR temporary value dropped while borrowed
+    (x1, x2, x3, x4, x5, x6, x7);
 }