Non-lexical lifetimes [0] are scheduled to be enabled in the Rust 2018 edition, which will be the default edition as of Rust 1.31, the next release.
After that, there's still some work that can be done towards NLL, specifically some details around how borrowing across functions works when the compiler "should" know that there actually isn't a borrow. This is part of some work codenamed "Polonius" [1], which should also improve the compiler time required to apply the borrow checker's rules.
After that, there's still some work that can be done towards NLL, specifically some details around how borrowing across functions works when the compiler "should" know that there actually isn't a borrow. This is part of some work codenamed "Polonius" [1], which should also improve the compiler time required to apply the borrow checker's rules.
[0]: https://stackoverflow.com/q/50251487/155423
[1]: https://github.com/rust-lang-nursery/polonius