2018-09-14 08:44:45 -05:00
|
|
|
struct Test;
|
|
|
|
|
|
|
|
impl Test {
|
|
|
|
fn bar(&self, x: &u32) -> &u32 {
|
|
|
|
let x = 22;
|
|
|
|
&x
|
2018-11-27 03:56:36 -06:00
|
|
|
//~^ ERROR cannot return reference to local variable
|
2018-09-14 08:44:45 -05:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
fn foo(x: &u32) -> &u32 {
|
|
|
|
let x = 22;
|
|
|
|
&x
|
2018-11-27 03:56:36 -06:00
|
|
|
//~^ ERROR cannot return reference to local variable
|
2018-09-14 08:44:45 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
fn baz(x: &u32) -> &&u32 {
|
|
|
|
let x = 22;
|
|
|
|
&&x
|
2018-11-27 03:56:36 -06:00
|
|
|
//~^ ERROR cannot return value referencing local variable
|
|
|
|
//~| ERROR cannot return reference to temporary value
|
2018-09-14 08:44:45 -05:00
|
|
|
}
|
|
|
|
|
2018-09-18 14:28:06 -05:00
|
|
|
fn foobazbar<'a>(x: u32, y: &'a u32) -> &'a u32 {
|
|
|
|
let x = 22;
|
|
|
|
&x
|
2018-11-27 03:56:36 -06:00
|
|
|
//~^ ERROR cannot return reference to local variable
|
2018-09-18 14:28:06 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
fn foobar<'a>(x: &'a u32) -> &'a u32 {
|
|
|
|
let x = 22;
|
|
|
|
&x
|
2018-11-27 03:56:36 -06:00
|
|
|
//~^ ERROR cannot return reference to local variable
|
2018-09-18 14:28:06 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
fn foobaz<'a, 'b>(x: &'a u32, y: &'b u32) -> &'a u32 {
|
|
|
|
let x = 22;
|
|
|
|
&x
|
2018-11-27 03:56:36 -06:00
|
|
|
//~^ ERROR cannot return reference to local variable
|
2018-09-18 14:28:06 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
fn foobarbaz<'a, 'b>(x: &'a u32, y: &'b u32, z: &'a u32) -> &'a u32 {
|
|
|
|
let x = 22;
|
|
|
|
&x
|
2018-11-27 03:56:36 -06:00
|
|
|
//~^ ERROR cannot return reference to local variable
|
2018-09-18 14:28:06 -05:00
|
|
|
}
|
|
|
|
|
2018-09-14 08:44:45 -05:00
|
|
|
fn main() { }
|