1 pub const fn id<T>(x: T) -> T { x }
3 let _: &'static _ = &String::new();
4 //~^ ERROR: destructor of `String` cannot be evaluated at compile-time
5 //~| ERROR: temporary value dropped while borrowed
7 let _: &'static _ = &id(&String::new());
8 //~^ ERROR: destructor of `String` cannot be evaluated at compile-time
9 //~| ERROR: temporary value dropped while borrowed
10 //~| ERROR: temporary value dropped while borrowed
12 let _: &'static _ = &std::mem::ManuallyDrop::new(String::new());
13 //~^ ERROR: temporary value dropped while borrowed
17 let _: &'static _ = &String::new();
18 //~^ ERROR: temporary value dropped while borrowed
20 let _: &'static _ = &id(&String::new());
21 //~^ ERROR: temporary value dropped while borrowed
22 //~| ERROR: temporary value dropped while borrowed
24 let _: &'static _ = &std::mem::ManuallyDrop::new(String::new());
25 //~^ ERROR: temporary value dropped while borrowed