// check-pass | |
// rust-lang/rust#68590: confusing diagnostics when reborrowing through DerefMut. | |
use std::cell::RefCell; | |
struct A; | |
struct S<'a> { | |
a: &'a mut A, | |
} | |
fn take_a(_: &mut A) {} | |
fn test<'a>(s: &RefCell<S<'a>>) { | |
let mut guard = s.borrow_mut(); | |
take_a(guard.a); | |
let _s2 = S { a: guard.a }; | |
} | |
fn main() { | |
let a = &mut A; | |
let s = RefCell::new(S { a }); | |
test(&s); | |
} |