diff options
-rw-r--r-- | compiler/lexer.nim | 10 | ||||
-rw-r--r-- | tests/compile/tvarious.nim | 3 |
2 files changed, 8 insertions, 5 deletions
diff --git a/compiler/lexer.nim b/compiler/lexer.nim index 9e5f4e9d7..6a104d139 100644 --- a/compiler/lexer.nim +++ b/compiler/lexer.nim @@ -408,12 +408,12 @@ proc GetNumber(L: var TLexer): TToken = (result.tokType == tkFloat64Lit): result.fnumber = parseFloat(result.literal) if result.tokType == tkIntLit: result.tokType = tkFloatLit - else: - result.iNumber = ParseBiggestInt(result.literal) - if (result.iNumber < low(int32)) or (result.iNumber > high(int32)): - if result.tokType == tkIntLit: + else: + result.iNumber = parseBiggestInt(result.literal) + if (result.iNumber < low(int32)) or (result.iNumber > high(int32)): + if result.tokType == tkIntLit: result.tokType = tkInt64Lit - elif result.tokType != tkInt64Lit: + elif result.tokType in {tkInt8Lit, tkInt16Lit}: lexMessage(L, errInvalidNumber, result.literal) except EInvalidValue: lexMessage(L, errInvalidNumber, result.literal) diff --git a/tests/compile/tvarious.nim b/tests/compile/tvarious.nim index e91de9245..25f48bb30 100644 --- a/tests/compile/tvarious.nim +++ b/tests/compile/tvarious.nim @@ -1,4 +1,7 @@ # Test various aspects + +# bug #572 +var a=12345678901'u64 var x = (x: 42, y: (a: 8, z: 10)) echo x.y |