Symptom
cargo-test-perry (3/8) fails on release candidate 83754818ea (full-tier run 33372993990):
test guard_failures_match_node_and_unsafe_parameters_stay_generic ... FAILED
panicked at crates/perry/tests/issue_8774_argument_shape_clones.rs:359:5:
all selected semantic-fixture routes originate at fresh contained locals
The assertion is !ir.contains("pshape_arg.fallback") — the emitted IR now contains an argument-shape fallback block where the fixture expects every selected route to take its clone.
Reproduction
# MUST rebuild the static wrappers first — see "Environment" below.
cargo build -p perry -p perry-runtime-static -p perry-stdlib-static
RUST_TEST_THREADS=1 cargo test -p perry --test issue_8774_argument_shape_clones guard_failures
Takes ~55 s when it genuinely runs.
Attribution: UNKNOWN — and #9242 has been ruled out
It passed at candidate 01463b8161 and fails at 83754818ea. #9242 was the only commit touching lower_call/method_override.rs in that window, so it was the obvious suspect — and it is not the cause. Measured on a coherent tree, with #9242's class_chain_may_declare_method_field bail in three states:
| bail |
result |
| as merged |
FAILED, this assertion |
| narrowed to visible declarations only |
FAILED, same assertion |
| fully disabled (pre-#9242 behaviour) |
FAILED, same assertion |
Please do not re-attribute this to #9242 without new evidence; that hypothesis has been tested and rejected.
The cause is elsewhere in main between 01463b8161 and 83754818ea. A bisect over that window is the obvious next step — note it is a large window, and the fixture compiles three modules, so each step costs ~1 min plus build.
Acceptance criteria
Environment (this cost a full day elsewhere)
cargo test -p perry rebuilds the binary but not the runtime archives. After any git checkout/rebase, rebuild -p perry -p perry-runtime-static -p perry-stdlib-static or the compiler/runtime coherence check refuses every fixture with Error: runtime library does not match this Perry compiler — which surfaces as perry compile failed and a suite finishing in ~19 s instead of ~55 s. A fast suite is the tell.
Symptom
cargo-test-perry (3/8)fails on release candidate83754818ea(full-tier run 33372993990):The assertion is
!ir.contains("pshape_arg.fallback")— the emitted IR now contains an argument-shape fallback block where the fixture expects every selected route to take its clone.Reproduction
Takes ~55 s when it genuinely runs.
Attribution: UNKNOWN — and #9242 has been ruled out
It passed at candidate
01463b8161and fails at83754818ea. #9242 was the only commit touchinglower_call/method_override.rsin that window, so it was the obvious suspect — and it is not the cause. Measured on a coherent tree, with #9242'sclass_chain_may_declare_method_fieldbail in three states:Please do not re-attribute this to #9242 without new evidence; that hypothesis has been tested and rejected.
The cause is elsewhere in main between
01463b8161and83754818ea. A bisect over that window is the obvious next step — note it is a large window, and the fixture compiles three modules, so each step costs ~1 min plus build.Acceptance criteria
guard_failures_match_node_and_unsafe_parameters_stay_genericandstable_argument_clones_are_direct_reported_and_moving_gc_safeboth pass.Environment (this cost a full day elsewhere)
cargo test -p perryrebuilds the binary but not the runtime archives. After anygit checkout/rebase, rebuild-p perry -p perry-runtime-static -p perry-stdlib-staticor the compiler/runtime coherence check refuses every fixture withError: runtime library does not match this Perry compiler— which surfaces asperry compile failedand a suite finishing in ~19 s instead of ~55 s. A fast suite is the tell.