This is a tracking issue for the work items remaining for the NLL team before we can consider NLL stabilized across all editions (see also #43234). Here is an outline of the steps we have identified. * [x] Stage 1: Move all editions to NLL (#57804) * Move Rust 2015 to borrowck=migrate * Potential blockers: * NLL-sound bugs that affect migration mode (vs ones that only arise with `#![feature(nll)]` today) * Major diagnostic regressions that affect migration mode * [ ] Stage 2: Transition fully to NLL (#58781) * one currently opts into this via `#![feature(nll)]` or `-Z borrowck=mir -Z two-phase-borrows`) * this causes NLL warnings (downgraded from errors) become errors again * possible intermediate steps * move to deny-by-default lints for the warnings * move 2018 to hard error on its own, leaving 2015 with downgrade-to-warnings * It also gets rid of AST-region inference, causing some code to be accepted that is rejected by migrate mode. * Potential blockers: * NLL-sound bugs that affect NLL mode without migration * Major diagnostic regressions * Two-phase borrows (2PB) question or other "unsettled questions" must have some conservative answer in place * Crater run showing no major crates fail in practice * [x] Stage 3: remove old AST-borrowck (done in https://github.com/rust-lang/rust/pull/64790) ### Blocking issues * [ ] https://github.com/rust-lang/rust/issues/73154 * [x] #57642 * [x] #59159
This is a tracking issue for the work items remaining for the NLL team before we can consider NLL stabilized across all editions (see also #43234).
Here is an outline of the steps we have identified.
#![feature(nll)]today)#![feature(nll)]or-Z borrowck=mir -Z two-phase-borrows)Blocking issues
mutable_borrow_reservation_conflictcompatibility lint #59159