On Monday, 12 May 2014 at 08:10:43 UTC, Tommi wrote:
Perhaps: [..]
Somewhat surprisingly to me, you can later on change the borrowed pointer in the mutable static 'Test' to point at a mutable static int:
struct Test { n: &'static int } static old: int = 111; static mut new: int = 222; static mut t: Test = Test { n: &'static old }; fn main() { unsafe { println!("{}", *t.n); // prints: 111 t.n = &new; // Can point to a different static println!("{}", *t.n); // prints: 222 // ...but can't point to a local, e.g: // let v = 123; // t.n = &v; // error: `v` does not live long enough new = 333; println!("{}", *t.n); // prints: 333 } }