Skip to content

Commit

Permalink
Use locked_version more
Browse files Browse the repository at this point in the history
  • Loading branch information
Eh2406 committed Mar 3, 2022
1 parent 5f611af commit 15c7c08
Showing 1 changed file with 18 additions and 3 deletions.
21 changes: 18 additions & 3 deletions src/cargo/core/resolver/errors.rs
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,15 @@ pub(super) fn activation_error(

msg.push_str("\nversions that meet the requirements `");
msg.push_str(&dep.version_req().to_string());
msg.push_str("` are: ");
msg.push_str("` ");

if let Some(v) = dep.version_req().locked_version() {
msg.push_str("(locked to ");
msg.push_str(&v.to_string());
msg.push_str(") ");
}

msg.push_str("are: ");
msg.push_str(
&candidates
.iter()
Expand Down Expand Up @@ -239,12 +247,19 @@ pub(super) fn activation_error(
versions.join(", ")
};

let locked_version = dep
.version_req()
.locked_version()
.map(|v| format!(" (locked to {})", v))
.unwrap_or_default();

let mut msg = format!(
"failed to select a version for the requirement `{} = \"{}\"`\n\
"failed to select a version for the requirement `{} = \"{}\"`{}\n\
candidate versions found which didn't match: {}\n\
location searched: {}\n",
dep.package_name(),
dep.version_req(),
locked_version,
versions,
registry.describe_source(dep.source_id()),
);
Expand All @@ -254,7 +269,7 @@ pub(super) fn activation_error(
// If we have a path dependency with a locked version, then this may
// indicate that we updated a sub-package and forgot to run `cargo
// update`. In this case try to print a helpful error!
if dep.source_id().is_path() && dep.version_req().to_string().starts_with('=') {
if dep.source_id().is_path() && dep.version_req().is_locked() {
msg.push_str(
"\nconsider running `cargo update` to update \
a path dependency's locked version",
Expand Down

0 comments on commit 15c7c08

Please sign in to comment.