//@ run-pass | |
//@ pretty-expanded FIXME #23616 | |
use std::cell::Cell; | |
struct C<'a> { | |
p: Cell<Option<&'a C<'a>>>, | |
} | |
impl<'a> C<'a> { | |
fn new() -> C<'a> { C { p: Cell::new(None) } } | |
} | |
fn f1() { | |
let (c1, c2) = (C::new(), C::new()); | |
c1.p.set(Some(&c2)); | |
c2.p.set(Some(&c1)); | |
} | |
fn f2() { | |
let (c1, c2); | |
c1 = C::new(); | |
c2 = C::new(); | |
c1.p.set(Some(&c2)); | |
c2.p.set(Some(&c1)); | |
} | |
fn main() { | |
f1(); | |
f2(); | |
} |