42 lines
1.5 KiB
Markdown
42 lines
1.5 KiB
Markdown
# Failing Tests
|
|
|
|
These tests fail and haven't been fixed yet as they would likely take major
|
|
refactoring to fix, which I may not have time to do before finals week.
|
|
|
|
## Integer i64 Overflow
|
|
code: `9223372036854775808:i64`
|
|
error: `Integer overflow: value exceeds range for i64.`
|
|
|
|
This test fails because the parsed integer has already overflowed inside the
|
|
interpreter, so an integer token is returned with no overflow error detected.
|
|
|
|
## Integer i64 Underflow
|
|
code: `-9223372036854775809:i64`
|
|
error: `Integer overflow: value exceeds range for i64.`
|
|
|
|
This test fails because the parsed integer has already overflowed inside the
|
|
interpreter, so an integer token is returned with no overflow error detected.
|
|
|
|
## Integer u64 Overflow
|
|
code: `18446744073709551616:u64`
|
|
error: `Integer overflow: value exceeds range for u64.`
|
|
|
|
This test fails because the parsed integer has already overflowed inside the
|
|
interpreter, so an integer token is returned with no overflow error detected.
|
|
|
|
## Integer i16 Binary Sample
|
|
code: `0b1111111100000000:i16`
|
|
value: `-256`
|
|
|
|
This test fails because the interpreter fails to recognize this as a negative
|
|
number, and parses is as `65280`, which is greater than the signed 16-bit max of
|
|
`32767`, resulting in an overflow error.
|
|
|
|
## Float Default No Leading Digit Negative
|
|
code: `-.25`
|
|
value: `-0.25`
|
|
|
|
This test fails because the interpreter fails to recognize a token starting with
|
|
both a `-` then a `.` then a digit, as a numeric literal, resulting in it being
|
|
interpreted as an identifier.
|