diff options
author | Araq <rumpf_a@web.de> | 2013-08-30 12:44:09 +0200 |
---|---|---|
committer | Araq <rumpf_a@web.de> | 2013-08-30 12:44:09 +0200 |
commit | a17076cf4fdfb27ee1d1f3be232b81584a99432a (patch) | |
tree | 3ea9218e1d404fc72a3b4e9adb8ee3011e9f8548 | |
parent | 7056ceda6727d1725645ab046fee4c0d6bb15501 (diff) | |
download | Nim-a17076cf4fdfb27ee1d1f3be232b81584a99432a.tar.gz |
fixes #572
-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 |