]> git.lizzy.rs Git - rust.git/commit
Auto merge of #89103 - Mark-Simulacrum:migrate-2021, r=estebank
authorbors <bors@rust-lang.org>
Tue, 21 Sep 2021 19:25:49 +0000 (19:25 +0000)
committerbors <bors@rust-lang.org>
Tue, 21 Sep 2021 19:25:49 +0000 (19:25 +0000)
commitac2d9fc509e36d1b32513744adf58c34bcc4f43c
tree18984ef0d3874ed5f4827165eeff05c20e677446
parent840acd378a273dab6798352d3d6a087fa09e4806
parent3b896796719ed1e151d507b4bf2ea635a89cda9e
Auto merge of #89103 - Mark-Simulacrum:migrate-2021, r=estebank

Migrate in-tree crates to 2021

This replaces #89075 (cherry picking some of the commits from there), and closes #88637 and fixes #89074.

It excludes a migration of the library crates for now (see tidy diff) because we have some pending bugs around macro spans to fix there.

I instrumented bootstrap during the migration to make sure all crates moved from 2018 to 2021 had the compatibility warnings applied first.

Originally, the intent was to support cargo fix --edition within bootstrap, but this proved fairly difficult to pull off. We'd need to architect the check functionality to support running cargo check and cargo fix within the same x.py invocation, and only resetting sysroots on check. Further, it was found that cargo fix doesn't behave too well with "not quite workspaces", such as Clippy which has several crates. Bootstrap runs with --manifest-path ... for all the tools, and this makes cargo fix only attempt migration for that crate. We can't use e.g. --workspace due to needing to maintain sysroots for different phases of compilation appropriately.

It is recommended to skip the mass migration of Cargo.toml's to 2021 for review purposes; you can also use `git diff d6cd2c6c877110748296760aefddc21a0ea1d316 -I'^edition = .20...$'` to ignore the edition = 2018/21 lines in the diff.
compiler/rustc_hir/Cargo.toml
compiler/rustc_metadata/Cargo.toml