Repository navigation
File the class: call expressions erased at v2 body lowering, before resolve - #11207
Merged
Merged
Conversation
…esolve The v2 normalize step lowers a call body to a Transform holding only the lbrace token, so the callee and arguments never reach resolve. Two earlier notes attributed the silence to resolve; corrected in place. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GPQAgKF4nE4L2k22ka9n9z
…nstead of restating its mechanism Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GPQAgKF4nE4L2k22ka9n9z
Contributor
Author
|
Addressed review 64779 in 04d6331: restored the subject of the infer clause ('The module then passes infer carrying...'), and replaced the restated mechanism with a citation of |
3 of 4 tasks
gunbai-bot Bot
pushed a commit
that referenced
this pull request
Sep 12, 2026
Matched control in one module with no call: value_only and user type_only reach; imported Bool in a parameter does not. Name InvisibleUntilTypePositionMentionSurvives as that capability, not #11207. Co-authored-by: Cursor <cursoragent@cursor.com>
gunbai-bot Bot
pushed a commit
that referenced
this pull request
Sep 12, 2026
Matched control in one module with no call: value_only and user type_only reach; imported Bool in a parameter does not. Name InvisibleUntilTypePositionMentionSurvives as that capability, not #11207. Co-authored-by: Cursor <cursoragent@cursor.com>
gunbai-bot Bot
pushed a commit
that referenced
this pull request
Sep 13, 2026
Matched control in one module with no call: value_only and user type_only reach; imported Bool in a parameter does not. Name InvisibleUntilTypePositionMentionSurvives as that capability, not #11207. Co-authored-by: Cursor <cursoragent@cursor.com>
…ed-lookup lane landed
…and the census consequence Takeover push (owner archived). Side-chat HOLD at bcfce3b named exactly two text repairs in the row; everything else in it passes and is untouched. (A) THE NEXT-RUNG TRIGGER STOPPED AT RESOLUTION. Its evidence contract asked for an undeclared callee to refuse and a declared callee to resolve. Resolution is not enough: a callee can reach resolve while its ARGUMENT subtree is still lost, and that state would have fired the trigger while the capability the trigger names -- preserving callee AND argument subtrees -- stayed half dead. A trigger naming less than the capability it restores is retired while the capability stays dead (DESIGN section 4b(3)). The contract now requires execution: a declared callee executes through the native route and returns an ARGUMENT-DEPENDENT result, so the argument is demonstrably carried and consumed rather than merely present; an undeclared callee refuses AT RESOLVE with a typed, located missing-binding cause, since a refusal arriving later at grounding or eval is consistent with the callee never having reached resolve; and the argument-loss controls must FAIL when the erasure is restored rather than staying green. An invalid specimen that is Accepted is a failing must-refuse assertion, not evidence. The prepared and unprepared routes and the native realization are distinct paths and one does not stand in for the others. These are requirements on the repair's evidence, not executions owed before this row lands. (B) THE HARM CLAUSE ASSERTED A CENSUS RESULT THESE RECEIPTS DO NOT ESTABLISH. It said a refusal roster taken at this base "undercounts by exactly that population". Three different populations are involved -- lost call occurrences, affected dependents, and missing roster entries -- and the receipts behind the row are two interpreted entry routes over selected bodies with native normalization not executed, so none of them sizes any of the three. Replaced with what the receipts do support: erasure prevents the missing-callee refusal from firing for the observed call shapes; a refusal roster therefore cannot establish completeness of affected call dependents from absence of refusals; the affected population has not been established by these receipts; and native census mode performs no resolution, so it cannot establish binding-refusal completeness either. The universal scope stays where it belongs, as the repair obligation rather than as a measured census. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013aZDLk2CxsCDznqn49Xhe8
gunbai-bot Bot
pushed a commit
that referenced
this pull request
Sep 13, 2026
Matched control in one module with no call: value_only and user type_only reach; imported Bool in a parameter does not. Name InvisibleUntilTypePositionMentionSurvives as that capability, not #11207. Co-authored-by: Cursor <cursoragent@cursor.com>
gunbai-bot Bot
pushed a commit
that referenced
this pull request
Sep 14, 2026
Call apply now inhabits primary_expr and postfix_expr (no minted call surface identity) so resolve sees the existing node_query carrier; fold-loop stays first. Argument-loss and undeclared-callee REDs pin #11207's evidence contract on the prepared and unprepared routes. Co-authored-by: Cursor <cursoragent@cursor.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.
Summary
NAMESPACE XL-2 scoping (option D, ruled by fierce-lark-661 via swift-bat-902). This is step 1 of the re-homed wall: a ledger row and two stage-attribution corrections. No pipeline edit. The lowering fix (step 2) is held until after #10940, and its owner is to be assigned.
New row:
gunbc.recurring_failure_mode.call_expression_erased_at_v2_body_lowering. v2 normalize lowers a call body toTransform [ Atom:dag_token_lbrace ], so the callee and arguments never reach resolve. An undeclared callee is Accepted silently.Corrected notes:
v2.test.claim.dag_acceptancefrontier_arm_notev2.test.claim.staged_front_endunbound_symbol_reason_noteBoth attributed the silence to resolve. The erasure happens earlier, at normalize.
Why this is a row, not a resolve wall
The undeclared-callee RED and the declared-callee positive control reach resolve as identical trees. A resolve-side check could therefore never go red and would be a decoration (DESIGN §4b).
Evidence (named, not transcribed as a gate)
All runs were interpreted at main
f9d37e43a1, over the census route's own calls (prepare_grammar,parse_module_prepared,normalize, as inprogram_assembly_read_to_normalized_root_prepared):staged_front_endroute dumps identically.Not executed: that the natively emitted normalize behaves the same way. The row says this at its evidence level.
Census consequence: the native census mode never runs resolve, so its roster holds front-end refusals only. The row records this too.
§3c consumers
Merge freeze on dag/src until #10940: please land after it.
🤖 Generated with Claude Code
https://claude.ai/code/session_01GPQAgKF4nE4L2k22ka9n9z