From 4e6b81e34103fe9ea266639d4cf0d554e6382022 Mon Sep 17 00:00:00 2001 From: Araq Date: Tue, 23 Apr 2013 13:44:38 +0200 Subject: fixes #395 --- compiler/nimsets.nim | 4 ++-- tests/run/tbug499771.nim | 12 +++++++----- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/compiler/nimsets.nim b/compiler/nimsets.nim index 118046283..93bccae24 100644 --- a/compiler/nimsets.nim +++ b/compiler/nimsets.nim @@ -98,13 +98,13 @@ proc ToTreeSet(s: TBitSet, settype: PType, info: TLineInfo): PNode = result.typ = settype result.info = info e = 0 - while e < high(s) * elemSize: + while e < len(s) * elemSize: if bitSetIn(s, e): a = e b = e while true: Inc(b) - if (b > high(s) * elemSize) or not bitSetIn(s, b): break + if (b >= len(s) * elemSize) or not bitSetIn(s, b): break Dec(b) if a == b: addSon(result, newIntTypeNode(nkIntLit, a + first, elemType)) diff --git a/tests/run/tbug499771.nim b/tests/run/tbug499771.nim index 633ab39f6..682148422 100644 --- a/tests/run/tbug499771.nim +++ b/tests/run/tbug499771.nim @@ -1,12 +1,14 @@ discard """ file: "tbug499771.nim" - output: "TSubRange: 5 from 1 to 10" + output: '''TSubRange: 5 from 1 to 10 +true true true''' """ -type TSubRange = range[1 .. 10] +type + TSubRange = range[1 .. 10] + TEnum = enum A, B, C var sr: TSubRange = 5 echo("TSubRange: " & $sr & " from " & $low(TSubRange) & " to " & $high(TSubRange)) - - - +const cset = {A} + {B} +echo A in cset, " ", B in cset, " ", C notin cset -- cgit 1.4.1-2-gfad0