Skip to content

release blocker: argument-shape routes fall back to pshape_arg.fallback (issue_8774, shard 3) #9264

Description

@proggeramlug

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions