Skip to content

v2: 'x as Q' cast silently accepted; refuse the uncarried cast type, located - #12369

Closed
gunbai-bot[bot] wants to merge 14 commits into
mainfrom
session/quick-dove-780
Closed

gunbai-bot[bot] wants to merge 14 commits into
mainfrom
session/quick-dove-780

Conversation

@gunbai-bot

@gunbai-bot gunbai-bot Bot commented Sep 26, 2026

Copy link
Copy Markdown
Contributor

Auto-opened by session-dashboard for session quick-dove-780.
Pushing to session/quick-dove-780 advances this PR.

Worker attestation

Before flipping this PR to ready for review, confirm each item:

  • Title describes the change (not the session id or branch).
  • PR body summarises what and why (replace the TODO below).
  • Tests run: name the command (e.g. npm test, cargo test) and the result.
  • If this closes a work item, the body contains a Closes #N directive.
  • No commits on this branch are surprises (no fork/cherry-pick I did not make).
  • No secrets / credentials / large binaries staged.

Summary

TODO: replace this paragraph with one or two sentences naming the change and its motivation. Reviewers read this first.

Test plan

  • TODO: list the commands that ran (or "no tests changed; relied on CI") and the outcome.

gunbc-ci-auto-heal and others added 14 commits September 24, 2026 19:18
…ted, instead of being dropped

Step (0) of neat-boar-16's ordering for adhoc-bf64ffff-6d6. Measured on 748535d with a locally
built gunbc: `fn f(x: Int) -> Int { let y: Q = x; y }` was ACCEPTED with Q declared nowhere --
Bind[binder, value, body] has no position for the annotation, so lowering dropped it before resolve.

- body_lower_let_annotation_optional reads the annotation positionally (`let NAME : type_expr`);
  the statement-spine lowering refuses body_lowering_reason_type_annotation_not_carried at it.
- New row gunbc.recurring_failure_mode body_type_annotation_dropped_before_resolve_in_v2. It also
  records the worse fn-literal route: `let g = fn(y) -> Q { y }` lowers to Bind[g, Atom(kw_fn), ..],
  the whole literal dropped by body_lower_bound_value's operand arm. That route is left to
  gunbc#12210, which rewrites exactly that lowering, and is named as its trigger.
- Controls v2.test.claim.body_type_annotation_refusal: btar_let_annotation_refuses (red before),
  btar_unannotated_let_accepts (twin), specimens enrolled in floor_pure_producer_share.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…fused population and its restoration trigger (review 71023)

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…atom operand fallback no longer answers a keyword token

Side-chat REQUEST_CHANGES on 7d0262d (overrides the deferral to #12210: a deferred silent
accept is what section 5 forbids).
- body_lower_bound_value refuses a fn literal's return annotation
  (body_lowering_reason_type_annotation_not_carried) at the authored type expression before the
  operand arm sees the literal. Census: the grammar admits no other annotation on a function
  literal (fn-literal and arrow-lambda parameters are bare identifiers).
- The eraser: body_lower_try_operand_or_reject's first-atom fallback returned Atom(dag_token_kw_fn)
  for a literal wherever it ran (let value, if arm). body_lower_atom_is_keyword_token declines a
  lexer keyword token there (true/false are read earlier as literals). Probed positions (let value,
  if arm, fn tail, match arm, record field, data initializer) all refuse loudly now.
- Controls: btar_fn_literal_return_annotation_refuses (exact reason + locus is the authored Q),
  btar_unannotated_fn_literal_is_not_erased (disposition changes on purpose: it was Accepted only
  by erasure), btar_if_arm_fn_literal_is_not_erased; btar_let_annotation_refuses now asserts the
  locus, and anchoring it at the surrounding let reds it (mutation run locally). All 5 green locally.
- RFM: fn-literal climb recorded; rung revision explicitly pending the floor run.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…revised to rung 1 after the required floor passed on d2d840a

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…annotation_not_carried reason

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…ot_carried, located at T) instead of being dropped

Census branch for neat-boar-16 (measure before choosing the carrier). Unrun locally.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…ms reach the fold's refusal; if/match-arm controls

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…_carried; RFM row rung + typed-cast-node trigger; enroll producers

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…e-applied as OperandRefRefused at Q on the new arm reader

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…left behind

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…pair

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…ics_singleton); the self-host emit caught what the interpreter admitted

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…wc_outcomes (merge artifacts); only the bctr rows added

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@briansrls
briansrls marked this pull request as ready for review September 26, 2026 19:56
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 26, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-09-26T19:58:35.695755Z b0068bb Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@gunbai-bot

gunbai-bot Bot commented Sep 26, 2026

Copy link
Copy Markdown
Contributor Author

Superseded: this branch's cast refusal (previously #12308, closed) landed and was retired inside #12315 (696a77d), per the v2 Foundation ruling. This PR was auto-opened from the stale branch session/quick-dove-780, whose owner lane is closed. Closing so it doesn't land superseded content.

— sent from neat-boar-16

@gunbai-bot gunbai-bot Bot closed this Sep 26, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants