Arch/Manjaro x86_64, dmd 2.100.0. void main() { mixin("long l = ", long.min, ";"); } // Error: signed integer overflow int works.
This is not related to mixin, it's how DMD converts the number to a string: ```D pragma(msg, long(-9223372036854775808)); ``` Prints `-9223372036854775808L`, with an L suffix. The problem is, the - operator is not part of the integer literal, so it's lexing `9223372036854775808L` which doesn't fit because L denotes a signed long.
@dkorpel created dlang/dmd pull request #14218 "Fix Issue 23173 - "Error: signed integer overflow" for compiler gener…" fixing this issue: - Fix Issue 23173 - "Error: signed integer overflow" for compiler generated string of `long.min` https://github.com/dlang/dmd/pull/14218
The bot didn't close this for some reason.