Add new reserved lifetime: 'owned
Rust Internals [Unofficial]
April 4, 2026
I'm not sure why you're trying to write this contrived example, but you can fix it again by:
- not having
clone_with_string_typetake a&'s1 Check<'s1, S>; there is no need to link the lifetime of the self reference to the lifetime that can be used to create an instance ofS, simply because you are not creating a new instance ofS. Use a separate lifetime untied to's1instead. - removing the
'slifetime parameter fromCheck: its usage along with thePhantomDatasignals to the borrow checker thatCheckholds some unknown reference with lifetime'spossibly unrelated toS, and this prevents any way to extend such lifetime when you know thatS: AsStr<'longer_lifetime>.
play.rust-lang.org
Rust Playground
A browser interface to the Rust compiler to experiment with the language
therefore any reference outlives 'owned
This doesn't make sense to me. Something that is owned can live forever, and if any reference can outlive it then you get that any reference can live forever, which is obviously false.
It would allow "fixing" your code above only because it would make the type system unsound. I don't see how any sound implementation of this 'owned lifetime concept would fix your code.
Discussion in the ATmosphere