Five sorts use partial_cmp(..).expect("no NaN") on f64 costs, medians and speedups: cli/main.rs:629, main.rs:777, tui/app.rs:305, report/build.rs:136, build.rs:172. Today's model produces finite costs or INFINITY (which orders), so the expect does not fire — but a NaN from a future model term or a malformed results JSON turns a report into a panic. f64::total_cmp is a total order, free, and makes the question moot.
Done when
Five sorts use
partial_cmp(..).expect("no NaN")onf64costs, medians and speedups: cli/main.rs:629, main.rs:777, tui/app.rs:305, report/build.rs:136, build.rs:172. Today's model produces finite costs orINFINITY(which orders), so theexpectdoes not fire — but a NaN from a future model term or a malformed results JSON turns a report into a panic.f64::total_cmpis a total order, free, and makes the question moot.Done when
partial_cmp(..).expectremains;total_cmpin its place, with NaN documented as sorting last.