fix: diagnose unknown generic #builtin instead of silently returning 0 (issue 0144)
A bodiless #builtin with a $T: Type param routes through monomorphization. When resolveBuiltin returned null for an unrecognized name, the builtin-body branch fell through to ensureTerminator's constInt(0) -- a silent-fallback default the CLAUDE.md REJECTED PATTERNS forbid. Emit a loud 'error: unknown #builtin <name>' diagnostic instead. Regression: examples/1189-diagnostics-unknown-builtin.sx
This commit is contained in:
1
examples/expected/1189-diagnostics-unknown-builtin.exit
Normal file
1
examples/expected/1189-diagnostics-unknown-builtin.exit
Normal file
@@ -0,0 +1 @@
|
||||
1
|
||||
@@ -0,0 +1,5 @@
|
||||
error: unknown #builtin 'mystery'
|
||||
--> examples/1189-diagnostics-unknown-builtin.sx:12:1
|
||||
|
|
||||
12 | mystery :: ($T: Type, x: T) -> T #builtin;
|
||||
| ^^^^^^^
|
||||
@@ -0,0 +1 @@
|
||||
|
||||
Reference in New Issue
Block a user