Quoting the speck (lex.html)
Decimal Literal, L Suffix Type
0L .. 9223372036854775807L long
-(9223372036854775808L) is invalid b/c it is parsed as "- intLiteral"
Bug is not in DMD.
OTOH: should it be?
Comment #2 by benoit — 2006-06-28T18:27:50Z
Seems to be according to the spec. But for me it is not logic that I can write
0x8000_0000_0000_0000L but not -9223372036854775808L.
Comment #3 by bugzilla — 2006-07-08T16:36:51Z
The compiler is behaving correctly. The - is applied after the numeric literal is processed, and 9223372036854775808L is out of range.