Commit 21476d7
feat(devx): accept a dotted member path in ADR-0087 type-surface-only references (#15724)
A `type-surface-only` reference was a bare identifier resolved to the FIRST
same-named definition in the file. On `packages/client/src/index.ts` that is not
a symbol identity: the file declares `get` 14 times and `delete` 10 times, so the
members two PRs actually narrowed had no addressable spelling at all, and the gate
answered a true sentence about a member the diff never touched. One card's whole
category was closed by the reference grammar rather than by a judgement about the
claim.
The grammar now also accepts a dotted member path, and the READER was widened in
the same commit: a dotted reference is resolved STRUCTURALLY through the
object-literal nesting it names, walked from the top of the file over the shared
comment- and literal-masked projection with offsets preserved, and the member's
definition is taken from inside the resolved body. Zero candidates, or more than
one, is reported by name and refused -- never guessed at. A line number is never
the disambiguator; this file's line numbers were measured to rot within one day.
Bare identifiers keep their exact previous behaviour, including the first-same-name
reading, which is what every marker written before this means. `runtime-interface-only`
refuses a dotted path by name: it reads a top-level type declaration, which has no
nesting to walk.
ADR-0087's marker grammar and this gate's accepted grammar are pinned to each other,
so both example blocks and the predicate-4 prose move in the same commit.
Claude-Session: https://claude.ai/code/session_012zGPuVVX3deAx9LdjK8jCk
Co-authored-by: Claude <noreply@anthropic.com>1 parent 450e030 commit 21476d7
2 files changed
Lines changed: 430 additions & 14 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
585 | 585 | | |
586 | 586 | | |
587 | 587 | | |
| 588 | + | |
588 | 589 | | |
589 | 590 | | |
590 | 591 | | |
| |||
676 | 677 | | |
677 | 678 | | |
678 | 679 | | |
| 680 | + | |
679 | 681 | | |
680 | 682 | | |
681 | 683 | | |
| |||
748 | 750 | | |
749 | 751 | | |
750 | 752 | | |
| 753 | + | |
| 754 | + | |
| 755 | + | |
| 756 | + | |
| 757 | + | |
| 758 | + | |
| 759 | + | |
| 760 | + | |
| 761 | + | |
| 762 | + | |
| 763 | + | |
| 764 | + | |
| 765 | + | |
| 766 | + | |
| 767 | + | |
| 768 | + | |
| 769 | + | |
751 | 770 | | |
752 | 771 | | |
753 | 772 | | |
| |||
0 commit comments