From 1f80ffabd1b5b60f5f40682881c7306f4f8f258d Mon Sep 17 00:00:00 2001 From: Ethan Brierley Date: Sun, 27 Aug 2023 20:32:03 +0100 Subject: [PATCH] Improve resolver version mismatch warning fixes: #12557 --- src/cargo/core/workspace.rs | 11 +++++++++-- tests/testsuite/features2.rs | 3 ++- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/cargo/core/workspace.rs b/src/cargo/core/workspace.rs index 9ee0cbe0430..d205fa73e42 100644 --- a/src/cargo/core/workspace.rs +++ b/src/cargo/core/workspace.rs @@ -1021,11 +1021,18 @@ impl<'cfg> Workspace<'cfg> { .max() { let resolver = edition.default_resolve_behavior().to_manifest(); - self.config.shell().warn(format_args!("some crates are on edition {edition} which defaults to `resolver = \"{resolver}\"`, but virtual workspaces default to `resolver = \"1\"`"))?; + self.config.shell().warn(format_args!( + "virtual workspace defaulting to `resolver = \"1\"` despite one or more workspace members being on edition {edition} which implies `resolver = \"{resolver}\"`" + ))?; self.config.shell().note( "to keep the current resolver, specify `workspace.resolver = \"1\"` in the workspace root's manifest", )?; - self.config.shell().note(format_args!("to use the edition {edition} resolver, specify `workspace.resolver = \"{resolver}\"` in the workspace root's manifest"))?; + self.config.shell().note(format_args!( + "to use the edition {edition} resolver, specify `workspace.resolver = \"{resolver}\"` in the workspace root's manifest" + ))?; + self.config.shell().note( + "for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions", + )?; } } } diff --git a/tests/testsuite/features2.rs b/tests/testsuite/features2.rs index 68fecb863a8..9238de2c6f5 100644 --- a/tests/testsuite/features2.rs +++ b/tests/testsuite/features2.rs @@ -1431,9 +1431,10 @@ fn edition_2021_workspace_member() { p.cargo("check") .with_stderr( "\ -warning: some crates are on edition 2021 which defaults to `resolver = \"2\"`, but virtual workspaces default to `resolver = \"1\"` +warning: virtual workspace defaulting to `resolver = \"1\"` despite one or more workspace members being on edition 2021 which implies `resolver = \"2\"` note: to keep the current resolver, specify `workspace.resolver = \"1\"` in the workspace root's manifest note: to use the edition 2021 resolver, specify `workspace.resolver = \"2\"` in the workspace root's manifest +note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions [CHECKING] a v0.1.0 [..] [FINISHED] [..] ",