Skip to content

Commit

Permalink
Auto merge of #9694 - ehuss:edition-fix-latest, r=alexcrichton
Browse files Browse the repository at this point in the history
`cargo fix --edition`: extend warning when on latest edition

This extends the warning issued when `cargo fix --edition` is run when the user is already on the latest edition.  Before #9184, there were instructions on what to do, but those probably should not have been completely removed.  It seems likely that some users may get the steps out of order, so this hopefully tries to explain them clearly.
bors committed Jul 15, 2021

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
2 parents 3c5eb04 + be0cbb5 commit ae51ab9
Showing 2 changed files with 30 additions and 7 deletions.
31 changes: 28 additions & 3 deletions src/cargo/util/diagnostic_server.rs
Original file line number Diff line number Diff line change
@@ -181,10 +181,35 @@ impl<'a> DiagnosticPrinter<'a> {
if !self.dedupe.insert(msg.clone()) {
return Ok(());
}
self.config.shell().warn(&format!(
"`{}` is already on the latest edition ({}), unable to migrate further",
let warning = format!(
"`{}` is already on the latest edition ({}), \
unable to migrate further",
file, edition
))
);
// Don't give a really verbose warning if it has already been issued.
if self.dedupe.insert(Message::EditionAlreadyEnabled {
file: "".to_string(), // Dummy, so that this only long-warns once.
edition: *edition,
}) {
self.config.shell().warn(&format!("\
{}
If you are trying to migrate from the previous edition ({prev_edition}), the
process requires following these steps:
1. Start with `edition = \"{prev_edition}\"` in `Cargo.toml`
2. Run `cargo fix --edition`
3. Modify `Cargo.toml` to set `edition = \"{this_edition}\"`
4. Run `cargo build` or `cargo test` to verify the fixes worked
More details may be found at
https://doc.rust-lang.org/edition-guide/editions/transitioning-an-existing-project-to-a-new-edition.html
",
warning, this_edition=edition, prev_edition=edition.previous().unwrap()
))
} else {
self.config.shell().warn(warning)
}
}
}
}
6 changes: 2 additions & 4 deletions tests/testsuite/fix.rs
Original file line number Diff line number Diff line change
@@ -925,11 +925,10 @@ fn prepare_for_already_on_latest_unstable() {

p.cargo("fix --edition --allow-no-vcs")
.masquerade_as_nightly_cargo()
.with_stderr_contains("[CHECKING] foo [..]")
.with_stderr_contains(&format!(
"\
[CHECKING] foo [..]
[WARNING] `src/lib.rs` is already on the latest edition ({next_edition}), unable to migrate further
[FINISHED] [..]
",
next_edition = next_edition
))
@@ -961,11 +960,10 @@ fn prepare_for_already_on_latest_stable() {
.build();

p.cargo("fix --edition --allow-no-vcs")
.with_stderr_contains("[CHECKING] foo [..]")
.with_stderr_contains(&format!(
"\
[CHECKING] foo [..]
[WARNING] `src/lib.rs` is already on the latest edition ({latest_stable}), unable to migrate further
[FINISHED] [..]
",
latest_stable = latest_stable
))

0 comments on commit ae51ab9

Please sign in to comment.