I think the future of Rust will be interesting to see the limits of the Edition system. The amount of complexity that is possible for breaking changes to be introduced in a backwards-compatible way is astounding. I would love to see Leak types (and Move), but what are going to be the long-term effects of adding all of this complexity, and all of the future changes?
There is also a follow up post
I’d like to highlight this reddit comment. I don’t understand why this should lead to exploding compile times – the generic interface either requires or doesn’t require Leak, and in 2024-edition, anything that doesn’t require Leak would be labelled ?Leak, or otherwise known to the compiler to be ?Leak, and thus handled by the compiler using existing rules. shrug
That point aside, one of the things I really respect in Rust’s design philosophy in general is that they’re usually willing to take time to do the right thing, so it’s interesting to see that some of the things that annoy me about the language (I’ve always wanted !Move and !Leak types) happened under time pressure for a 1.0 release. (I’m not sure how accurate this story is, I’ve had the impression that core rust didn’t want to invest in linear types until async-related footguns made folks look at it more seriously.)