summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorAraq <rumpf_a@web.de>2013-08-30 12:44:09 +0200
committerAraq <rumpf_a@web.de>2013-08-30 12:44:09 +0200
commita17076cf4fdfb27ee1d1f3be232b81584a99432a (patch)
tree3ea9218e1d404fc72a3b4e9adb8ee3011e9f8548
parent7056ceda6727d1725645ab046fee4c0d6bb15501 (diff)
downloadNim-a17076cf4fdfb27ee1d1f3be232b81584a99432a.tar.gz
fixes #572
-rw-r--r--compiler/lexer.nim10
-rw-r--r--tests/compile/tvarious.nim3
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