Skip to content

NLL: change compare-mode=nll to use borrowck=migrate #55118

Closed
@pnkfelix

Description

@pnkfelix

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.

Metadata

Metadata

Assignees

Labels

A-NLLArea: Non-lexical lifetimes (NLL)NLL-completeWorking towards the "valid code works" goalNLL-diagnosticsWorking towards the "diagnostic parity" goalNLL-soundWorking towards the "invalid code does not compile" goal

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions