check: bare contextual cases beside .Case, and the bare-case lint rule (CLOSED-TRAITS 1a-1) #743
Labels
No labels
loop
queue/failed
queue/queued
ready
status/parked
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
torbscript/language#743
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?
Context
Step 1a-1 of #713, cut as its own issue.
docs/design/CLOSED-TRAITS.md(accepted) removes the leading dot: a case is written bare where the expected type names it. The record counted about 8,000.Casesites when it was written; the audit of 2026-11-13 counts 11,844 in 500.trbfiles, 529 in Markdown and 1,027 uses of the static-member shorthand.member. Every week without commit 1 adds sites that commit 2 has to migrate.Source
docs/project/2026-11-cleanup-audit.md.Goal
The compiler resolves a bare contextual case by the rule of decision 6.2 beside
.Case, which keeps working, and the lint rulebare-casereports the dot form and fixes it. Nothing is refused and nothing in the repository is migrated yet.Design record point
docs/design/CLOSED-TRAITS.md: 6.1 (where a case is written bare), decision 6.2 (the resolution rule), 6.3, 6.8 (the messages), section 8 (tooling), 9.2 commit 1, 9.4 (sizes: 600-900 lines by hand, about 400 lines of tests).Acceptance criteria
.Caseand.memberstill compile unchanged; the parser still reads a leading.in amatchbody as an arm (9.2, the note under commit 2)torb lint --rule bare-casereports every.Case;--fixremoves the dot where the bare name resolves to the same case and writesOwner.Casewhere it would collide; a second run changes nothingself-namewrites the bare form in a pattern (docs/tooling/torb-lint.mdlines 79-80 say.Circle(radius)today), and the page says socompiler/,std/,examples/ortests/is migrated in this PR beyond the new tests; no file underseed/changesDependencies
None. Blocks 1a-seed (the owner's step) and through it 1a-2 of #713.
Seed
No seed change in this PR. After it is on
mainthe owner refreshes and publishes the seed (step 1a-seed); 1a-2 waits for that seed.Size
One PR, two commits: the resolution with its messages and tests, then the lint rule with completion and highlighting.
After merge: Orion refreshes and publishes the seed (
sh tools/refresh-seed.shon main with tier A green, then the forgeseedworkflow; CLOSED-TRAITS 9.2) before phase 1a-2 starts. Owner go: Torben 2026-11-13. Loop: ping Orion in the PR when this is merged; do not start 1a-2 before the new seed is published.[loop:torbscript] claim implement by session:loop-torbscript-20261113 until 2026-11-14T01:00:00Z
[loop:torbscript] implement: checkpoint, working on branch
orion/743-bare-case(not pushed yet). Checker resolution (name.trb, pattern.trb) written; remaining for commit 1: the==left-operand rule, tests, completion/highlight. Commit 2 (bare-case lint, self-name fix, docs) follows. Verification is CI only.[loop:torbscript] implement: PR #765 open on loop/743-bare-case, two commits. First CI run found seed-parser errors (command calls in conditions and interpolations) and a stale pdisc stamp; both fixed and pushed, CI rerunning. next: review once CI is green
[loop:torbscript] implement: PR #765 open, CI pending (bootstrap, pdisc, commit messages, playground and JavaScript conformance green; tier A, PHP conformance and gates still running), next: waiting (CI runner queue)
[loop:torbscript] release implement: PR #765 open on loop/743-bare-case, review requested, CI still running after 30 minutes
[loop:torbscript] claim review by session:loop-torbscript-20261113 until 2026-11-13T21:27Z
[loop:torbscript] review: tier A failed on the PR itself (not inherited): three tests, formatter canon on five files, a stale docs index and skills, and a book output; fixed with a checker message for an unknown bare case with fields, two test corrections, formatter output, regenerated docs and skills, rebased on main, head
81d2b9f7, CI pending after 30 min (all jobs queued), next: waiting (CI and review)[loop:torbscript] release review: CI of head
81d2b9f7still running, argus review request open[loop:torbscript] claim review by session:loop-torbscript-20261113 until 2026-11-14T01:20:00Z
[loop:torbscript] review: rebased
loop/743-bare-caseonto mainf4bbbdc9(#767, #768 landed). One conflict, the CONCEPT.md body_hash in.pdisc-sidecar.yaml: took main's side, restamped CONCEPT.md with pdisc.py (pdisc.py checkgreen locally; folded into the last commit, history still 3 commits). Force-pushed with --force-with-lease, new heada7b780b8. CI (gates, commit messages, touches, pdisc) was still pending after about 35 minutes (runner queue), so no formatter result yet for tests/conformance/bare-case-positions.trb, next: waiting (CI and review)[loop:torbscript] release review: PR #765 was rebased to
a7b780b8after it stopped being mergeable; argus is asked to review the new head and land it once CI is green.std/tensoron the CPU #82Post-merge follow-up (orion, PR #765 merged as
a7b780b86aby argus). Merged code is in no release yet. Next step: cut the next stable release. release.yml runs on a v0.MINOR.PATCH tag on main, and images.yml then publishes cr.torb.dev images. The version-bump PR (chore(release), project.trb, compiler/project.trb, editors/vscode/package.json, compiler/src/package/version.trb) is not opened in this unattended run: it needs argus as reviewer and gates that only CI runs, and I cannot merge it myself. Open item: version bump PR, reviewer argus, then tag after merge and verify images.yml. No orion/tasks task references this PR, so this comment is the record.