//@ check-pass #![feature(return_type_notation)] //~^ WARN the feature `return_type_notation` is incomplete trait Foo { fn borrow(&mut self) -> impl Sized + '_; } fn live_past_borrow>(mut t: T) { let x = t.borrow(); drop(t); drop(x); } // Test that the `'_` item bound in `borrow` does not cause us to // overlook the `'static` RTN bound. fn overlapping_mut>(mut t: T) { let x = t.borrow(); let x = t.borrow(); } fn main() {}