Skip to content

Commit ed073c9

Browse files
committed
refactor(resolve): Calculate all states
1 parent c369821 commit ed073c9

File tree

1 file changed

+26
-28
lines changed

1 file changed

+26
-28
lines changed

src/cargo/ops/cargo_update.rs

Lines changed: 26 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -788,12 +788,6 @@ fn report_latest(possibilities: &[IndexSummary], change: &PackageChange) -> Opti
788788
})
789789
.filter(|s| package_id.version() != s.version() && version_req.matches(s.version()))
790790
.max_by_key(|s| s.version());
791-
if let Some(summary) = compat_ver_compat_msrv_summary {
792-
let warn = style::WARN;
793-
let version = summary.version();
794-
let report = format!(" {warn}(available: v{version}){warn:#}");
795-
return Some(report);
796-
}
797791

798792
let incompat_ver_compat_msrv_summary = possibilities
799793
.iter()
@@ -809,50 +803,54 @@ fn report_latest(possibilities: &[IndexSummary], change: &PackageChange) -> Opti
809803
})
810804
.filter(|s| is_latest(s.version(), package_id.version()))
811805
.max_by_key(|s| s.version());
812-
if let Some(summary) = incompat_ver_compat_msrv_summary {
806+
807+
let compat_ver_summary = possibilities
808+
.iter()
809+
.map(|s| s.as_summary())
810+
.filter(|s| package_id.version() != s.version() && version_req.matches(s.version()))
811+
.max_by_key(|s| s.version());
812+
813+
let incompat_ver_summary = possibilities
814+
.iter()
815+
.map(|s| s.as_summary())
816+
.filter(|s| is_latest(s.version(), package_id.version()))
817+
.max_by_key(|s| s.version());
818+
819+
if let Some(summary) = compat_ver_compat_msrv_summary {
820+
let warn = style::WARN;
821+
let version = summary.version();
822+
let report = format!(" {warn}(available: v{version}){warn:#}");
823+
Some(report)
824+
} else if let Some(summary) = incompat_ver_compat_msrv_summary {
813825
let warn = if change.is_transitive.unwrap_or(true) {
814826
Default::default()
815827
} else {
816828
style::WARN
817829
};
818830
let version = summary.version();
819831
let report = format!(" {warn}(available: v{version}){warn:#}");
820-
return Some(report);
821-
}
822-
823-
let compat_ver_summary = possibilities
824-
.iter()
825-
.map(|s| s.as_summary())
826-
.filter(|s| package_id.version() != s.version() && version_req.matches(s.version()))
827-
.max_by_key(|s| s.version());
828-
if let Some(summary) = compat_ver_summary {
832+
Some(report)
833+
} else if let Some(summary) = compat_ver_summary {
829834
let msrv_note = summary
830835
.rust_version()
831836
.map(|rv| format!(", requires Rust {rv}"))
832837
.unwrap_or_default();
833838
let warn = style::NOP;
834839
let version = summary.version();
835840
let report = format!(" {warn}(available: v{version}{msrv_note}){warn:#}");
836-
return Some(report);
837-
}
838-
839-
let incompat_ver_summary = possibilities
840-
.iter()
841-
.map(|s| s.as_summary())
842-
.filter(|s| is_latest(s.version(), package_id.version()))
843-
.max_by_key(|s| s.version());
844-
if let Some(summary) = incompat_ver_summary {
841+
Some(report)
842+
} else if let Some(summary) = incompat_ver_summary {
845843
let msrv_note = summary
846844
.rust_version()
847845
.map(|rv| format!(", requires Rust {rv}"))
848846
.unwrap_or_default();
849847
let warn = style::NOP;
850848
let version = summary.version();
851849
let report = format!(" {warn}(available: v{version}{msrv_note}){warn:#}");
852-
return Some(report);
850+
Some(report)
851+
} else {
852+
None
853853
}
854-
855-
None
856854
}
857855

858856
fn is_latest(candidate: &semver::Version, current: &semver::Version) -> bool {

0 commit comments

Comments
 (0)