Description
We have a couple different modes that NLL can run in.
borrowck=mir is sort of the "adopt NLL whole hog"; it just runs the MIR-based borrow checker, and reports its errors as, well, errors.
borrowck=migrate is the migration plan for the 2018 edition. It runs the MIR-based borrow checker, and if it signals an error, then it runs the old AST-based borrow checker as a backup. If the code is accepted by AST-based borrow checker, then all the MIR-based errors are downgraded to warnings. This is the mode that we'll be deploying for Rust 2018.
Anyway: We are currently testing borrowck=mir for our test suite via compare-mode=nll
.
The plan is to deploy borrowck=migrate.
We have barely any automated testing of borrowck=migrate.
See the problem here?
My proposal: We should change compare-mode=nll
to use borrowck=migrate
instead of borrowck=mir
. We should make this change ASAP.