Repository navigation
Conversation
- Set edition = "2024" for all four crates and rustfmt; pin
style_edition = "2021" so this change carries no formatting churn.
- Apply cargo fix --edition (closure pattern binding modes); keep plain
`expr` macro fragments since no caller passes `const {}` or `_`.
- Collapse nested ifs into let-chains per clippy::collapsible_if.
- Mark the illustrative #[reduction] syntax snippet as `text` so
`make test` (--include-ignored) no longer tries to compile it.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agentic Review ReportPR #1207: Migrate workspace to Rust 2024 edition (head Structural and semantic
Quality
Feature test (
|
Drop the style_edition = "2021" pin and reformat. Formatting only: 2024 version-sorts imports and adjusts a few layout rules. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #1207 +/- ##
==========================================
+ Coverage 96.90% 96.99% +0.08%
==========================================
Files 1095 1095
Lines 145109 145468 +359
==========================================
+ Hits 140621 141096 +475
+ Misses 4488 4372 -116 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Edition 2024 needs Rust >= 1.85, but the let-chains this migration introduces need 1.88 (dev-dependency proptest 1.12 needs 1.88 too). Verified with `cargo +1.88 check --workspace --all-targets --all-features`. The MSRV-aware resolver (default for edition 2024) picks uuid 1.26 for rmcp on 1.88, since uuid 1.28 needs 1.89. Also realign a format! string in ilp.rs that rustfmt cannot reflow. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Addressed the Minor findings of the Agentic Review Report in 57ebb23:
|
The edition migration reflowed several error branches that no test reached, failing the codecov patch target. Add tests asserting each exact error: undersized num_vertices on graph construction, weight and setup-time overflow in evaluate, ILP objective overflow, malformed targets in rule extraction and gadget tapes, CLI after-help, and two proc-macro rejection paths. Test code only. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
wait-ci reached emit_result(result, args.format) without defining --format, so every run crashed with AttributeError after CI finished. Add the option with the same choices and default as the other subcommands, plus a parser regression test. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
b17d57d made create_pr look up the new PR by its head branch (so it works from worktrees) but left the test asserting the old call without head=. Assert the current call; production code is unchanged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Summary
Moves all four workspace crates from Rust 2021 to Rust 2024, following the official transition guide. Each commit maps to steps of the guide:
81c2e1becargo fix --edition, set edition, testedition = "2024"in all crates and rustfmt. Closure patterns rewritten for 2024 binding modes. Nestedifs collapsed into let-chains (the clippy follow-up the guide asks for). Illustrative doc snippet fenced astext, becausemake test --include-ignoredwas already failing onmain.16ee25fecargo fmt(separate commit).git-blame-ignore-revs.57ebb235rust-version = "1.88"and one indentation fix.8368ccaf5a02d669scripts/pipeline_pr.py wait-cicrashed (AttributeError: ... 'format') because it lacked--format. Added the option and a regression test.4152d3ectest_create_pr_uses_gh_pr_create_and_returns_current_contextwas stale:b17d57demadecreate_prlook up the PR by head branch without updating the test. Test-only.Step 1 (
cargo update):Cargo.lockis untracked, so this step produces no commit.make checkpasses on freshly updated dependencies.Manual review the guide calls for:
exprtoexpr_2021; this PR reverts that. In 2024,expralso accepts_andconst {}, but in none of the 27:exprfragments could that input fall into a different macro arm.Dropimpls and no lock orRefCellguards, so the only effect is when memory is freed.cfg-gated platform code.unsafe: the existingunsafealready uses explicit blocks.MSRV: 1.88. The let-chains this migration introduces need 1.88, and so does the dev-dependency
proptest 1.12. Verified withcargo +1.88 check --workspace --all-targets --all-features. On 1.88, the MSRV-aware resolver picksuuid 1.26forrmcp, sinceuuid 1.28needs 1.89.Test plan
make check(fmt-check, clippy--all-features -D warnings, full test suite,--include-ignored) after each commitmake papercargo +1.88 check --workspace --all-targets --all-features🤖 Generated with Claude Code