corpus(apex, groovy): re-bless args against engine main (gitgalaxy#2782, #2783) - #70
Merged
Merged
Conversation
…82, #2783) Pays the `rosetta:rebless-owed` label on squid-protocol/gitgalaxy PR #2790 (engine 2ca956ac, merged 2026-09-06), which fixed apex's and groovy's `args` rules. #2773's own corpus pairing (PR #66 here) re-blessed only objective-c and typescript, because those were the two languages #2786 fixed; it split apex and groovy out into `args-call-site-counting-apex-groovy` for exactly these two follow-ups. This is that entry being paid. No authoring change: the probe shells are untouched and the fix lands both languages on the planted 13 exactly (one parameter per probe, SPEC.md), which is the mechanical check that the new anchors are correct and not merely narrower. ## Manifests - data/apex: main.cls 7 -> 4, a.cls 5 -> 3. The member arm's return-type prefix carried a trailing `?`, so it could match zero times and the alternative degenerated to the shape of a bare call. The extra hits were the probeBranch/probeIo/probeRisk dispatch calls in main, and isAccessible / StripInaccessible (both `safety` plants) in a. - data/groovy: main 7 -> 4, a 4 -> 3, c 5 -> 3. Same shape, different cause for the zero-length prefix: the return-type run is `{0,3}`, and `def` means a Groovy method genuinely can have no return type. The extra hits were the three dispatch calls in main, assertEquals (a `test` plant) in a, and close/dispose (both `cleanup` plants) in c. b.cls and b.groovy already read the planted 3 and are unchanged. ## Ledger `args-call-site-counting-apex-groovy` -> `still_reproduces: false`, with the fixing PR, the per-file movements and the planted-13 check recorded. The entry is kept, per GATING step 4. ## Verification - `verify_language.py apex` / `groovy` -- PASS, 76 assertions each, 0 mismatches - `rosetta_audit.py` -- 46 languages, **0 regressions** (was 2) - `na_check.py` -- 0 unreviewed n/a cells, no new absences - `language_deviations.py` apex / groovy -- exit 0 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Pays the
rosetta:rebless-owedlabel on squid-protocol/gitgalaxy#2790 (engine2ca956ac, merged 2026-09-06 03:45 UTC), which fixed apex's and groovy'sargsrules via gitgalaxy#2783 and #2782.Why this was outstanding. gitgalaxy#2773's corpus pairing (#66 here) re-blessed only objective-c and typescript, because those were the two languages PR #2786 fixed. That PR explicitly split apex and groovy out into the ledger entry
args-call-site-counting-apex-groovy"for exactly these two follow-ups", which then landed separately in #2790. The corpus side of #2790 was never done, sorosetta_audit.pyhas been reporting 2 regressions against engine main since it merged.No authoring change: the probe shells are untouched, and the fix lands both languages on the planted 13 exactly (one parameter per probe, SPEC.md) — the same mechanical check #66 used, and the reason this is a fix rather than a merely narrower rule.
Manifests
apex/main.clsprobeBranch/probeIo/probeRiskdispatch callsapex/a.clsisAccessible/StripInaccessible(bothsafetyplants)groovy/main.groovygroovy/a.groovyassertEquals(atestplant)groovy/c.groovyclose/dispose(bothcleanupplants)Same defect shape in both, with a different cause for the zero-length prefix: apex's return type carried a trailing
?, so the member arm's prefix could match zero times; groovy's return-type run is{0,3}, anddefmeans a Groovy method genuinely can have no return type. Either way the arm degenerated to^IDENT(...), which is the shape of a bare call in statement position.b.clsandb.groovyalready read the planted 3 and are unchanged.Ledger
args-call-site-counting-apex-groovy→still_reproduces: false, with the fixing PR, the per-file movements and the planted-13 check recorded in the verdict. Entry kept, per GATING step 4.Verification
verify_language.py apex/groovy— PASS, 76 assertions each, 0 mismatchesrosetta_audit.py— 46 languages, 0 regressions (was 2)na_check.py— 0 unreviewed n/a cells, no new absenceslanguage_deviations.py apex/groovy— exit 0Verified against engine
origin/mainwith2ca956acconfirmed as an ancestor.🤖 Generated with Claude Code