Rust 1.21, rvalue static , .
, 1 , static, , 'static. de-sugared :
fn f<'a>() -> &'a i32 {
static ONE: i32 = 1;
&ONE
}
, structs:
struct Foo<'a> {
x: i32,
y: i32,
p: Option<&'a Foo<'a>>
}
fn default_foo<'a>() -> &'a Foo<'a> {
&Foo { x: 12, y: 90, p: None }
}
:
fn bad_foo<'a>(x: i32) -> &'a Foo<'a> {
/* Doesn't compile as x isn't constant! */
&Foo { x, y: 90, p: None }
}