@@ -16,6 +16,7 @@ use crate::util::toml_mut::upgrade::upgrade_requirement;
16
16
use crate :: util:: { style, OptVersionReq } ;
17
17
use crate :: util:: { CargoResult , VersionExt } ;
18
18
use anyhow:: Context as _;
19
+ use cargo_util_schemas:: core:: PartialVersion ;
19
20
use itertools:: Itertools ;
20
21
use semver:: { Op , Version , VersionReq } ;
21
22
use std:: cmp:: Ordering ;
@@ -724,14 +725,7 @@ fn status_locking(ws: &Workspace<'_>, num_pkgs: usize) -> CargoResult<()> {
724
725
write ! ( & mut cfg, " latest" ) ?;
725
726
}
726
727
727
- if ws. resolve_honors_rust_version ( ) {
728
- let rust_version = if let Some ( ver) = ws. rust_version ( ) {
729
- ver. clone ( ) . into_partial ( )
730
- } else {
731
- let rustc = ws. gctx ( ) . load_global_rustc ( Some ( ws) ) ?;
732
- let rustc_version = rustc. version . clone ( ) . into ( ) ;
733
- rustc_version
734
- } ;
728
+ if let Some ( rust_version) = required_rust_version ( ws) {
735
729
write ! ( & mut cfg, " Rust {rust_version}" ) ?;
736
730
}
737
731
write ! ( & mut cfg, " compatible version{plural}" ) ?;
@@ -743,6 +737,20 @@ fn status_locking(ws: &Workspace<'_>, num_pkgs: usize) -> CargoResult<()> {
743
737
Ok ( ( ) )
744
738
}
745
739
740
+ fn required_rust_version ( ws : & Workspace < ' _ > ) -> Option < PartialVersion > {
741
+ if !ws. resolve_honors_rust_version ( ) {
742
+ return None ;
743
+ }
744
+
745
+ if let Some ( ver) = ws. rust_version ( ) {
746
+ Some ( ver. clone ( ) . into_partial ( ) )
747
+ } else {
748
+ let rustc = ws. gctx ( ) . load_global_rustc ( Some ( ws) ) . ok ( ) ?;
749
+ let rustc_version = rustc. version . clone ( ) . into ( ) ;
750
+ Some ( rustc_version)
751
+ }
752
+ }
753
+
746
754
fn report_latest ( possibilities : & [ IndexSummary ] , package : PackageId ) -> Option < String > {
747
755
possibilities
748
756
. iter ( )
0 commit comments