Commit 952eecd
committed
fix(meta): def-meta :tag resolves uniformly (clj parity), retiring the bare-symbol workaround
Smell-audited: 1: no code behaviour change — D-316's uniform def-meta eval
(already in HEAD) is the finished form. A def-meta map analyzes as a real
expression, so a `:tag` symbol resolves like any value: `^String` yields the
Class (`(= String (:tag ...))` is true in cljw and clj), `^Foo` is a name
error. The pre-D-316 bare-symbol :tag was a pre-Class-resolution workaround,
retired now that class symbols resolve as values (v1.5.0). Only
phase14_var_metadata's meta_tag still asserted the workaround (`^Foo` => "Foo"),
which is why it failed four consecutive nightlies (2026-07-18..21). Flip it to
`(= String ...)` => true and add meta_tag_unresolvable (`^Foo` errors, the
correct clj-parity behaviour). special_forms.zig is comment-only, documenting
the uniform-eval intent so no :tag special case is re-added. No new AD:
structurally clj-equal, only the pre-existing AD-003 Class-print simple-name
divergence remains (applied to all Class values, not tag-specific).1 parent bdb65ad commit 952eecd
2 files changed
Lines changed: 21 additions & 3 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
533 | 533 | | |
534 | 534 | | |
535 | 535 | | |
536 | | - | |
| 536 | + | |
| 537 | + | |
537 | 538 | | |
538 | 539 | | |
539 | 540 | | |
| |||
688 | 689 | | |
689 | 690 | | |
690 | 691 | | |
| 692 | + | |
| 693 | + | |
| 694 | + | |
691 | 695 | | |
692 | 696 | | |
693 | 697 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
36 | 36 | | |
37 | 37 | | |
38 | 38 | | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
39 | 48 | | |
40 | 49 | | |
41 | 50 | | |
42 | 51 | | |
43 | 52 | | |
44 | 53 | | |
45 | | - | |
46 | | - | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
47 | 61 | | |
48 | 62 | | |
49 | 63 | | |
| |||
0 commit comments