Skip to content

Commit 335131f

Browse files
committed
feat(resolve): Fallback to 'rustc -V' for MSRV resolving
1 parent b7b3874 commit 335131f

File tree

2 files changed

+9
-3
lines changed

2 files changed

+9
-3
lines changed

src/cargo/ops/resolve.rs

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,6 @@ use crate::util::cache_lock::CacheLockMode;
7373
use crate::util::errors::CargoResult;
7474
use crate::util::CanonicalUrl;
7575
use anyhow::Context as _;
76-
use cargo_util_schemas::manifest::RustVersion;
7776
use std::collections::{HashMap, HashSet};
7877
use tracing::{debug, trace};
7978

@@ -304,8 +303,14 @@ pub fn resolve_with_previous<'gctx>(
304303
version_prefs.version_ordering(VersionOrdering::MinimumVersionsFirst)
305304
}
306305
if ws.resolve_honors_rust_version() {
307-
let rust_version = ws.rust_version().cloned().map(RustVersion::into_partial);
308-
version_prefs.max_rust_version(rust_version);
306+
let rust_version = if let Some(ver) = ws.rust_version() {
307+
ver.clone().into_partial()
308+
} else {
309+
let rustc = ws.gctx().load_global_rustc(None)?;
310+
let rustc_version = rustc.version.clone().into();
311+
rustc_version
312+
};
313+
version_prefs.max_rust_version(Some(rust_version));
309314
}
310315

311316
let avoid_patch_ids = if register_patches {

tests/testsuite/rust_version.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -414,6 +414,7 @@ fn resolve_with_rustc() {
414414
"\
415415
[UPDATING] `dummy-registry` index
416416
[LOCKING] 2 packages
417+
[ADDING] bar v1.5.0 (latest: v1.6.0)
417418
",
418419
)
419420
.run();

0 commit comments

Comments
 (0)