about summary refs log tree commit diff
path: root/src/liballoc_system
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2018-07-27 09:10:07 +0000
committerbors <bors@rust-lang.org>2018-07-27 09:10:07 +0000
commitb18b9edf006c10f4e08794d31425001401e27a09 (patch)
tree2e6c4791602dbf267f89a81ab42f506f3af84d7b /src/liballoc_system
parent7c2aeb9d974e85e54efa18cd63195bfd95347a44 (diff)
parent9f05f29e564c03a432df78f7c4b6421e4fb1a338 (diff)
downloadrust-b18b9edf006c10f4e08794d31425001401e27a09.tar.gz
rust-b18b9edf006c10f4e08794d31425001401e27a09.zip
Auto merge of #52681 - pnkfelix:z-borrowck-migrate, r=nikomatsakis
Add `-Z borrowck=migrate`

This adds `-Z borrowck=migrate`, which represents the way we want to migrate to NLL under Rust versions to come. It also hooks this new mode into `--edition 2018`, which means we're officially turning NLL on in the 2018 edition.

The basic idea of `-Z borrowck=migrate` that there are cases where NLL is fixing old soundness bugs in the borrow-checker, but in order to avoid just breaking code by immediately rejecting the programs that hit those soundness bugs, we instead use the following strategy:

If your code is accepted by NLL, then we accept it.
If your code is rejected by both NLL and the old AST-borrowck, then we reject it.
If your code is rejected by NLL but accepted by the old AST-borrowck, then we emit the new NLL errors as **warnings**.

These warnings will be turned into hard errors in the future, and they say so in these diagnostics.

Fix #46908
Diffstat (limited to 'src/liballoc_system')
0 files changed, 0 insertions, 0 deletions