issue(0139): by-value self-referential type segfaults (typeSizeBytes recursion)
Discovered while testing metatype self-reference: a by-VALUE self-ref
(`payload = List`, not `*List`) infinite-loops typeSizeBytes → segfault
instead of a loud "infinite size" diagnostic. PRE-EXISTING — a hand-written
source enum `enum { node: Bad; leaf }` crashes identically, so it's a
general type-system gap (the comptime F5 by-value-rejection inherits the
fix). Filed per the IMPASSABLE rule; metatype checkpoint notes it.
This commit is contained in:
@@ -60,7 +60,14 @@ Pick any (independent):
|
||||
never `define()`d (hard error), use-before-define.
|
||||
|
||||
## Known issues
|
||||
None.
|
||||
- **issue 0139 — by-value self-reference segfaults** (`typeSizeBytes` infinite
|
||||
recursion). A by-VALUE self-referential type (`payload = List` instead of
|
||||
`*List`) stack-overflows instead of emitting a loud "infinite size" diagnostic.
|
||||
PRE-EXISTING (a hand-written source enum `enum { node: Bad; leaf }` crashes
|
||||
identically) — a general type-system gap, not specific to declare/define. Closes
|
||||
the F5 "by-VALUE self-reference rejected" item for the comptime path once fixed.
|
||||
Filed `issues/0139-byvalue-self-reference-segfault.md`; session stopped here per
|
||||
the CLAUDE.md IMPASSABLE rule (do not work around / roll forward after filing).
|
||||
|
||||
## Log
|
||||
- **Self-reference done.** `declare(name)` + `preregisterForwardTypes` (forward
|
||||
|
||||
Reference in New Issue
Block a user