diff options
author | Araq <rumpf_a@web.de> | 2014-07-01 00:59:40 +0200 |
---|---|---|
committer | Araq <rumpf_a@web.de> | 2014-07-01 00:59:40 +0200 |
commit | 7c5f87e413a2a11cad591f7dc6fb015869f0125c (patch) | |
tree | 2853ef847404b3ded7ab445c85d570d640f0a7a9 | |
parent | 4860b46c7fd2850f8ec30c313434a2aed50c5561 (diff) | |
download | Nim-7c5f87e413a2a11cad591f7dc6fb015869f0125c.tar.gz |
fixes #1265
-rw-r--r-- | compiler/lexer.nim | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/compiler/lexer.nim b/compiler/lexer.nim index 0b4e4348d..e343dfef6 100644 --- a/compiler/lexer.nim +++ b/compiler/lexer.nim @@ -424,8 +424,14 @@ proc getNumber(L: var TLexer): TToken = if (result.iNumber < low(int32)) or (result.iNumber > high(int32)): if result.tokType == tkIntLit: result.tokType = tkInt64Lit - elif result.tokType in {tkInt8Lit, tkInt16Lit}: - lexMessage(L, errInvalidNumber, result.literal) + elif result.tokType in {tkInt8Lit, tkInt16Lit, tkInt32Lit}: + lexMessage(L, errNumberOutOfRange, result.literal) + elif result.tokType == tkInt8Lit and + (result.iNumber < int8.low or result.iNumber > int8.high): + lexMessage(L, errNumberOutOfRange, result.literal) + elif result.tokType == tkInt16Lit and + (result.iNumber < int16.low or result.iNumber > int16.high): + lexMessage(L, errNumberOutOfRange, result.literal) except EInvalidValue: lexMessage(L, errInvalidNumber, result.literal) except EOverflow, EOutOfRange: |