diff --git a/src/cargo/core/workspace.rs b/src/cargo/core/workspace.rs index 652e8adab..9f2a7db43 100644 --- a/src/cargo/core/workspace.rs +++ b/src/cargo/core/workspace.rs @@ -605,6 +605,10 @@ impl<'gctx> Workspace<'gctx> { self.members().filter_map(|pkg| pkg.rust_version()).min() } + pub fn resolve_honors_rust_version(&self) -> bool { + self.gctx().cli_unstable().msrv_policy + } + pub fn custom_metadata(&self) -> Option<&toml::Value> { self.custom_metadata.as_ref() } diff --git a/src/cargo/ops/resolve.rs b/src/cargo/ops/resolve.rs index 31a375514..61c014b4c 100644 --- a/src/cargo/ops/resolve.rs +++ b/src/cargo/ops/resolve.rs @@ -323,7 +323,7 @@ pub fn resolve_with_previous<'gctx>( if ws.gctx().cli_unstable().minimal_versions { version_prefs.version_ordering(VersionOrdering::MinimumVersionsFirst) } - if ws.gctx().cli_unstable().msrv_policy { + if ws.resolve_honors_rust_version() { version_prefs.max_rust_version(ws.rust_version().cloned().map(RustVersion::into_partial)); }