backend: an uninhabited type argument builds (WEB F2) #102
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Goal
WEB.md F2 ("an uninhabited type argument builds":
List<Never>and every function over it,Html<Never>for static pages) is already implemented: commitc11ca51a(fix(lower): lower generics instantiated with Never, whose slots no value ever reaches) lets the verifier accept a slot ofNeverand lowers the unreachable reads, andtests/conformance/never-list.trb,never-shown.trbandnever-type-argument.trbhold it (the conformance suite runs natively and in the VM).std/html(#93) buildsHtml<Never>on it. Only the design record still says "does not build".This issue is reduced to the remaining step: bring
docs/design/WEB.mdin line with the code, so that no later reader plans work for a closed gap.Scope (one PR, one commit:
docs(web): mark F2 done)In
docs/design/WEB.md:type Markup<Message = Never>): drop "Does not build: ..." and state that it builds after F2, with the commit/issue reference.List<Never>does not build"): mark Closed like problem 1 (referencec11ca51aand the three conformance tests).Neveris allowed in the IR and every read of it is unreachable; no unit monomorphization).Nothingstand-in remark.skills/if the docs gate asks for it (CLAUDE.md "docs changes regenerateskills/").Acceptance criteria
mainby quick checks only:tests/conformance/never-list.trbexists with its.expected, andstd/htmltests useHtml<Never>(no compiler run needed; CI gates cover them).List<Never>/Html<Never>does not build, and each F2 mention points at the landed commit or conformance tests.torb format --checkclean on touched files;tools/check-commits.shclean (Conventional Commits, one commit).Option<Never>in a native feature not covered by the three tests), it is a new issue with a reproducer, not part of this one.Design record points
Implements the record update for WEB.md section 8 F2 and section 7 problem 2. The design decision itself (accept the slot, mark reads unreachable) is already taken in code and needs no owner input.
Seed impact
None: documentation only, no syntax change, no native, no driver flag, no std name looked up by string.
Size
One PR, one commit.
[loop:torbscript] intake: in scope (author orion, label loop). Implements WEB.md F2 (backend builds an uninhabited type argument); no dependencies, no collision with a design record. Touches
compiler/src(backend), so it is an opus/high implementer item. next: refine.[loop:torbscript] refine: still queued behind the intake order. next: waiting (ready buffer full: #4, #163, #164, #223 are ready) until 2026-10-10T04:00:00Z
std/htmlmarkup (WEB slice 1) #93std/htmlmarkup (WEB slice 1) #93std/htmlmarkup (WEB slice 1) #93std/htmlmarkup (WEB slice 1) #93[loop:torbscript] claim refine by session:loop-torbscript-20261026 until 2026-10-26T01:00:00Z
[loop:torbscript] decided by the loop: F2 is already implemented on
main(commitc11ca51a, 2026-09-25; verifier accepts a slot ofNever, reads of it lower toUnreachable; conformance testsnever-list,never-shown,never-type-argumentrun natively and in the VM;std/htmlbuildsHtml<Never>). Rather than close, the issue is cut down to the one remaining step: update the stale "does not build" statements indocs/design/WEB.md(probe 3, problem 2, section 6 "after F2", F2 row, slice 1 dependency). Why: the code work is done and measured by existing tests; a docs-only PR is one commit, no owner question, no seed impact. Body rewritten accordingly (and the implementer is sonnet/medium, docs only, not opus/high as the intake guessed).[loop:torbscript] refine: verified the code against
main, found no duplicate among open issues (keyword searchNever,uninhabited), rewrote the body with goal, testable acceptance criteria, design record points and seed impact (none), size one PR / one commit. next: ready. (~45k tokens)[loop:torbscript] claim implement by session:loop-torbscript-20261026 until 2026-10-26T05:00:00Z
[loop:torbscript] implement: docs-only PR #485 opened (one commit
docs(design): mark WEB.md F2 done, an uninhabited type argument builds; probe 3, problem 2 closed, section 6 note, F2 row, slice 1 dependency updated; verified on main that never-list/never-shown/never-type-argument conformance tests andHtml<Never>in std/html exist; docs/design is not part ofskills/, nothing to regenerate; commit check and pdisc green, tier A green, gates/archives/seed jobs still pending in the queue at hand-off). Argus review requested. next: review (~60k tokens)[loop:torbscript] claim implement by session:loop-torbscript-20261026 until 2026-10-26T09:00:00Z
[loop:torbscript] implement: nothing left to do. PR #485 (docs(design): mark WEB.md F2 done, an uninhabited type argument builds, Closes #102) was already approved and landed on main by argus as
c72cabec(2026-10-25T23:47Z), its CI was green, and main WEB.md no longer carries the stale "does not build" statements for F2. The duplicate claim of 2026-10-26T05:02Z created no branch, worktree or second PR. next: done (issue already closed)