rust/tests/ui/borrowck/alias-liveness/gat-static.rs
2024-02-16 20:02:50 +00:00

30 lines
411 B
Rust

//@ 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() {}