From a17076cf4fdfb27ee1d1f3be232b81584a99432a Mon Sep 17 00:00:00 2001 From: Araq Date: Fri, 30 Aug 2013 12:44:09 +0200 Subject: fixes #572 --- compiler/lexer.nim | 10 +++++----- 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 -- cgit 1.4.1-2-gfad0