blob: 92153124af9325b954ed5c286bf449386a2e7446 [file] [log] [blame]
// check-pass
trait Foo {
type Assoc<'a>
where
Self: 'a;
fn assoc(&mut self) -> Self::Assoc<'_>;
}
fn overlapping_mut<T>(mut t: T)
where
T: Foo,
for<'a> T::Assoc<'a>: 'static,
{
let a = t.assoc();
let b = t.assoc();
}
fn live_past_borrow<T>(mut t: T)
where
T: Foo,
for<'a> T::Assoc<'a>: 'static {
let x = t.assoc();
drop(t);
drop(x);
}
fn main() {}