// 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(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() {}