NLL: complete transition from migrate to full NLL · Issue #57895 · rust-lang/rust (original) (raw)
Navigation Menu
- Explore
- Pricing
Provide feedback
Saved searches
Use saved searches to filter your results more quickly
Appearance settings
Description
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.
- Stage 1: Move all editions to NLL (NLL: turn on borrowck=migrate by default on 2015 edition #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 (NLL: turn off migration mode #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
- one currently opts into this via
- Stage 3: remove old AST-borrowck (done in Rest In Peace, AST borrowck (2012-2019) #64790)