From 32a5d4baf0e4930dbb9da47b060784a948bc2bee Mon Sep 17 00:00:00 2001 From: Araq Date: Wed, 13 Aug 2014 02:53:00 +0200 Subject: [PATCH] fixes #1442 --- compiler/types.nim | 10 ++++++++-- tests/misc/tstrange.nim | 10 ++++++++-- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/compiler/types.nim b/compiler/types.nim index 786eea14e7..7559f4d2d6 100644 --- a/compiler/types.nim +++ b/compiler/types.nim @@ -582,7 +582,10 @@ proc firstOrd(t: PType): BiggestInt = of tyGenericInst, tyDistinct, tyConst, tyMutable, tyTypeDesc, tyFieldAccessor: result = firstOrd(lastSon(t)) - else: + of tyOrdinal: + if t.len > 0: result = firstOrd(lastSon(t)) + else: internalError("invalid kind for first(" & $t.kind & ')') + else: internalError("invalid kind for first(" & $t.kind & ')') result = 0 @@ -617,7 +620,10 @@ proc lastOrd(t: PType): BiggestInt = tyTypeDesc, tyFieldAccessor: result = lastOrd(lastSon(t)) of tyProxy: result = 0 - else: + of tyOrdinal: + if t.len > 0: result = lastOrd(lastSon(t)) + else: internalError("invalid kind for last(" & $t.kind & ')') + else: internalError("invalid kind for last(" & $t.kind & ')') result = 0 diff --git a/tests/misc/tstrange.nim b/tests/misc/tstrange.nim index 3947755fcf..6bafcabdc3 100644 --- a/tests/misc/tstrange.nim +++ b/tests/misc/tstrange.nim @@ -1,6 +1,9 @@ discard """ file: "tstrange.nim" - output: "hallo4" + output: '''hallo4 +0 +1 +2''' """ # test for extremely strange bug @@ -19,5 +22,8 @@ gen("hallo") write(stdout, ack(5, 4)) #OUT hallo4 - +# bug #1442 +let h=3 +for x in 0..