Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/project-model/src/cargo_config_file.rs')
-rw-r--r--crates/project-model/src/cargo_config_file.rs18
1 files changed, 16 insertions, 2 deletions
diff --git a/crates/project-model/src/cargo_config_file.rs b/crates/project-model/src/cargo_config_file.rs
index ae36deb71f..97526dbf8e 100644
--- a/crates/project-model/src/cargo_config_file.rs
+++ b/crates/project-model/src/cargo_config_file.rs
@@ -141,7 +141,9 @@ pub(crate) struct LockfileCopy {
pub(crate) enum LockfileUsage {
/// Rust [1.82.0, 1.95.0). `cargo <subcmd> --lockfile-path <lockfile path>`
WithFlag,
- /// Rust >= 1.95.0. `CARGO_RESOLVER_LOCKFILE_PATH=<lockfile path> cargo <subcmd>`
+ /// Rust [1.95.0, 1.97.0). `CARGO_RESOLVER_LOCKFILE_PATH=<lockfile path> cargo -Zlockfile-path <subcmd>`
+ WithEnvVarUnstable,
+ /// Rust >= 1.97.0. `CARGO_RESOLVER_LOCKFILE_PATH=<lockfile path> cargo <subcmd>`
WithEnvVar,
}
@@ -158,7 +160,7 @@ pub(crate) fn make_lockfile_copy(
build: semver::BuildMetadata::EMPTY,
};
- const MINIMUM_TOOLCHAIN_VERSION_SUPPORTING_LOCKFILE_PATH_ENV: semver::Version =
+ const MINIMUM_TOOLCHAIN_VERSION_SUPPORTING_LOCKFILE_PATH_ENV_UNSTABLE: semver::Version =
semver::Version {
major: 1,
minor: 95,
@@ -167,8 +169,20 @@ pub(crate) fn make_lockfile_copy(
build: semver::BuildMetadata::EMPTY,
};
+ const MINIMUM_TOOLCHAIN_VERSION_SUPPORTING_LOCKFILE_PATH_ENV: semver::Version =
+ semver::Version {
+ major: 1,
+ minor: 97,
+ patch: 0,
+ pre: semver::Prerelease::EMPTY,
+ build: semver::BuildMetadata::EMPTY,
+ };
+
let usage = if *toolchain_version >= MINIMUM_TOOLCHAIN_VERSION_SUPPORTING_LOCKFILE_PATH_ENV {
LockfileUsage::WithEnvVar
+ } else if *toolchain_version >= MINIMUM_TOOLCHAIN_VERSION_SUPPORTING_LOCKFILE_PATH_ENV_UNSTABLE
+ {
+ LockfileUsage::WithEnvVarUnstable
} else if *toolchain_version >= MINIMUM_TOOLCHAIN_VERSION_SUPPORTING_LOCKFILE_PATH_FLAG {
LockfileUsage::WithFlag
} else {