This commit is contained in:
Araq 2015-02-04 12:40:23 +01:00
commit b5f1957588
5 changed files with 48 additions and 20 deletions

22
tests/template/t2do.nim Normal file
View file

@ -0,0 +1,22 @@
discard """
output: "8.0"
"""
# bug #2057
proc mpf_get_d(x: int): float = float(x)
proc mpf_cmp_d(a: int; b: float): int = 0
template toFloatHelper(result: expr; tooSmall, tooLarge: stmt) {.immediate.} =
result = mpf_get_d(a)
if result == 0.0 and mpf_cmp_d(a,0.0) != 0:
tooSmall
if result == Inf:
tooLarge
proc toFloat*(a: int): float =
toFloatHelper(result)
do: raise newException(ValueError, "number too small"):
raise newException(ValueError, "number too large")
echo toFloat(8)