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>
7 lines
155 B
Text
7 lines
155 B
Text
# a literal past 2^31 - 1 is a long, and a long does not narrow into an int
|
|
program LongIntoInt {
|
|
entry {
|
|
let n: int = 4294967295
|
|
print(n)
|
|
}
|
|
}
|