Skip to content

Commit

Permalink
refactor(msrv): Allow overriding MSRV-aware resolver
Browse files Browse the repository at this point in the history
  • Loading branch information
epage committed Apr 23, 2024
1 parent b89b81a commit 6e9f948
Showing 1 changed file with 6 additions and 5 deletions.
11 changes: 6 additions & 5 deletions src/cargo/core/workspace.rs
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ pub struct Workspace<'gctx> {

/// The resolver behavior specified with the `resolver` field.
resolve_behavior: ResolveBehavior,
resolve_honors_rust_version: bool,
resolve_honors_rust_version: Option<bool>,
honor_rust_version: Option<bool>,

/// Workspace-level custom metadata
Expand Down Expand Up @@ -234,7 +234,7 @@ impl<'gctx> Workspace<'gctx> {
loaded_packages: RefCell::new(HashMap::new()),
ignore_lock: false,
resolve_behavior: ResolveBehavior::V1,
resolve_honors_rust_version: false,
resolve_honors_rust_version: None,
honor_rust_version: None,
custom_metadata: None,
}
Expand Down Expand Up @@ -310,7 +310,7 @@ impl<'gctx> Workspace<'gctx> {
ResolveBehavior::V1 | ResolveBehavior::V2 => {}
ResolveBehavior::V3 => {
if self.resolve_behavior == ResolveBehavior::V3 {
self.resolve_honors_rust_version = true;
self.resolve_honors_rust_version = Some(true);
}
}
}
Expand All @@ -320,7 +320,7 @@ impl<'gctx> Workspace<'gctx> {
}) => {
if self.gctx().cli_unstable().msrv_policy {
self.resolve_honors_rust_version =
precedence == CargoResolverPrecedence::SomethingLikeRustVersion;
Some(precedence == CargoResolverPrecedence::SomethingLikeRustVersion);
} else {
self.gctx()
.shell()
Expand Down Expand Up @@ -660,7 +660,8 @@ impl<'gctx> Workspace<'gctx> {
pub fn resolve_honors_rust_version(&self) -> bool {
// Give CLI precedence
self.honor_rust_version
.unwrap_or(self.resolve_honors_rust_version)
.or(self.resolve_honors_rust_version)
.unwrap_or(false)
}

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

0 comments on commit 6e9f948

Please sign in to comment.