This commit is contained in:
Andreas Rumpf
2010-03-08 23:09:46 +01:00
parent dab64b5c0e
commit 684bb09773
3 changed files with 8 additions and 4 deletions

View File

@@ -1,7 +1,7 @@
#
#
# The Nimrod Compiler
# (c) Copyright 2009 Andreas Rumpf
# (c) Copyright 2010 Andreas Rumpf
#
# See the file "copying.txt", included in this
# distribution, for details about the copyright.
@@ -287,7 +287,10 @@ proc transformConv(c: PTransf, n: PNode): PNode =
var source = skipTypes(n.sons[1].typ, abstractVarRange)
case dest.kind
of tyInt..tyInt64, tyEnum, tyChar, tyBool:
if (firstOrd(dest) <= firstOrd(source)) and
if not isOrdinalType(source):
# XXX int64 -> float conversion?
result = n
elif (firstOrd(dest) <= firstOrd(source)) and
(lastOrd(source) <= lastOrd(dest)):
# BUGFIX: simply leave n as it is; we need a nkConv node,
# but no range check:

View File

@@ -9,7 +9,7 @@ tbind3.nim;1
tbintre2.nim;halloworld99110223
tbintree.nim;halloworld99110223
tbug499771.nim;TSubRange: 5 from 1 to 10
tbug511622.nim;10
tbug511622.nim;3
tcasestm.nim;ayyy
tclosure.nim;2 4 6 8 10
tcnstseq.nim;AngelikaAnneAnnaAnkaAnja
1 tack.nim 125
9 tbintre2.nim halloworld99110223
10 tbintree.nim halloworld99110223
11 tbug499771.nim TSubRange: 5 from 1 to 10
12 tbug511622.nim 10 3
13 tcasestm.nim ayyy
14 tclosure.nim 2 4 6 8 10
15 tcnstseq.nim AngelikaAnneAnnaAnkaAnja

View File

@@ -6,4 +6,5 @@ proc FibonacciA(n: int): int64 =
var q: float64 = 1.0 / p
return int64((pow(p, fn) + pow(q, fn)) / sqrt(5.0))
echo FibonacciA(4) #OUT 10
echo FibonacciA(4) #OUT 3