ludic/changes/lexer-literals.md
Orkuncakilkaya afa4d23a4f fix(lang): a template inside another's hole, and integer literals past 2^31 - 1
A template literal nested in a {...} hole crashed the parser: the outer
literal ended at the inner backtick. The lexer (and ludic-fmt's) now
reads a hole as code, taking strings, chars and templates in it whole.
A decimal literal past 2147483647, or a hex one of more than eight
digits, was wrapped into a negative int; it is a long with its value
now, and giving one to an int is refused. Reseed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 08:10:46 +03:00

534 B

bump: patch type: fix A template literal inside another's {…} hole, and integer literals past 2^31 - 1. The first crashed the compiler (the outer literal ended at the inner one's backtick); a hole is now read as code, so strings, chars and templates inside it are taken whole. The second was read as a wrapped negative int; a decimal literal past 2147483647, or a hex one of more than eight digits, is now a long with its value, and giving one to an int is refused. Eight hex digits or fewer are still a 32-bit pattern.