#![feature(nll)] #![allow(warnings)] struct Test; impl Test { fn bar(&self, x: &u32) -> &u32 { let x = 22; &x //~^ ERROR cannot return reference to local variable } } fn foo(x: &u32) -> &u32 { let x = 22; &x //~^ ERROR cannot return reference to local variable } fn baz(x: &u32) -> &&u32 { let x = 22; &&x //~^ ERROR cannot return value referencing local variable //~| ERROR cannot return reference to temporary value } fn foobazbar<'a>(x: u32, y: &'a u32) -> &'a u32 { let x = 22; &x //~^ ERROR cannot return reference to local variable } fn foobar<'a>(x: &'a u32) -> &'a u32 { let x = 22; &x //~^ ERROR cannot return reference to local variable } fn foobaz<'a, 'b>(x: &'a u32, y: &'b u32) -> &'a u32 { let x = 22; &x //~^ ERROR cannot return reference to local variable } fn foobarbaz<'a, 'b>(x: &'a u32, y: &'b u32, z: &'a u32) -> &'a u32 { let x = 22; &x //~^ ERROR cannot return reference to local variable } fn main() { }