Skip to content

Commit 6e9f948

Browse files
committed
refactor(msrv): Allow overriding MSRV-aware resolver
1 parent b89b81a commit 6e9f948

File tree

1 file changed

+6
-5
lines changed

1 file changed

+6
-5
lines changed

src/cargo/core/workspace.rs

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ pub struct Workspace<'gctx> {
103103

104104
/// The resolver behavior specified with the `resolver` field.
105105
resolve_behavior: ResolveBehavior,
106-
resolve_honors_rust_version: bool,
106+
resolve_honors_rust_version: Option<bool>,
107107
honor_rust_version: Option<bool>,
108108

109109
/// Workspace-level custom metadata
@@ -234,7 +234,7 @@ impl<'gctx> Workspace<'gctx> {
234234
loaded_packages: RefCell::new(HashMap::new()),
235235
ignore_lock: false,
236236
resolve_behavior: ResolveBehavior::V1,
237-
resolve_honors_rust_version: false,
237+
resolve_honors_rust_version: None,
238238
honor_rust_version: None,
239239
custom_metadata: None,
240240
}
@@ -310,7 +310,7 @@ impl<'gctx> Workspace<'gctx> {
310310
ResolveBehavior::V1 | ResolveBehavior::V2 => {}
311311
ResolveBehavior::V3 => {
312312
if self.resolve_behavior == ResolveBehavior::V3 {
313-
self.resolve_honors_rust_version = true;
313+
self.resolve_honors_rust_version = Some(true);
314314
}
315315
}
316316
}
@@ -320,7 +320,7 @@ impl<'gctx> Workspace<'gctx> {
320320
}) => {
321321
if self.gctx().cli_unstable().msrv_policy {
322322
self.resolve_honors_rust_version =
323-
precedence == CargoResolverPrecedence::SomethingLikeRustVersion;
323+
Some(precedence == CargoResolverPrecedence::SomethingLikeRustVersion);
324324
} else {
325325
self.gctx()
326326
.shell()
@@ -660,7 +660,8 @@ impl<'gctx> Workspace<'gctx> {
660660
pub fn resolve_honors_rust_version(&self) -> bool {
661661
// Give CLI precedence
662662
self.honor_rust_version
663-
.unwrap_or(self.resolve_honors_rust_version)
663+
.or(self.resolve_honors_rust_version)
664+
.unwrap_or(false)
664665
}
665666

666667
pub fn custom_metadata(&self) -> Option<&toml::Value> {

0 commit comments

Comments
 (0)