blob: 1b25294c7e16186d1bd506d972316818ef23c676 [file] [log] [blame]
// This tests verifies that unary structs and enum variants
// are treated as rvalues and their lifetime is not bounded to
// the static scope.
fn id<T>(x: T) -> T { x }
struct Test;
enum MyEnum {
Variant1
}
fn structLifetime<'a>() -> &'a Test {
let testValue = &id(Test);
testValue
//~^ ERROR cannot return value referencing temporary value
}
fn variantLifetime<'a>() -> &'a MyEnum {
let testValue = &id(MyEnum::Variant1);
testValue
//~^ ERROR cannot return value referencing temporary value
}
fn main() {}