]> git.lizzy.rs Git - rust.git/blobdiff - src/test/ui/cleanup-rvalue-scopes-cf.rs
Rollup merge of #82259 - osa1:issue82156, r=petrochenkov
[rust.git] / src / test / ui / cleanup-rvalue-scopes-cf.rs
index 0f83bf80d2453f55cb248587d6f34ed89d4d090b..e3cecb1bffed633eadd76bd028338d22edbed961 100644 (file)
@@ -1,15 +1,3 @@
-// Copyright 2014 The Rust Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution and at
-// http://rust-lang.org/COPYRIGHT.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-// ignore-compare-mode-nll
-
 // Test that the borrow checker prevents pointers to temporaries
 // with statement lifetimes from escaping.
 
@@ -17,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 {
@@ -35,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);
 }