From 674c05f426d586deba1401270f78b74c22c540bc Mon Sep 17 00:00:00 2001 From: Araq Date: Mon, 30 Jul 2012 23:07:19 +0200 Subject: made compiler more robust for idetools; implemented idetools.usages --- compiler/nimsets.nim | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) (limited to 'compiler/nimsets.nim') diff --git a/compiler/nimsets.nim b/compiler/nimsets.nim index d475c7b59..282188c64 100755 --- a/compiler/nimsets.nim +++ b/compiler/nimsets.nim @@ -31,7 +31,9 @@ proc cardSet*(s: PNode): BiggestInt # implementation proc inSet(s: PNode, elem: PNode): bool = - if s.kind != nkCurly: InternalError(s.info, "inSet") + if s.kind != nkCurly: + InternalError(s.info, "inSet") + return false for i in countup(0, sonsLen(s) - 1): if s.sons[i].kind == nkRange: if leValue(s.sons[i].sons[0], elem) and @@ -48,17 +50,19 @@ proc overlap(a, b: PNode): bool = result = leValue(a.sons[0], b.sons[1]) and leValue(b.sons[1], a.sons[1]) or leValue(a.sons[0], b.sons[0]) and leValue(b.sons[0], a.sons[1]) - else: + else: result = leValue(a.sons[0], b) and leValue(b, a.sons[1]) - else: - if b.kind == nkRange: + else: + if b.kind == nkRange: result = leValue(b.sons[0], a) and leValue(a, b.sons[1]) - else: + else: result = sameValue(a, b) proc SomeInSet(s: PNode, a, b: PNode): bool = # checks if some element of a..b is in the set s - if s.kind != nkCurly: InternalError(s.info, "SomeInSet") + if s.kind != nkCurly: + InternalError(s.info, "SomeInSet") + return false for i in countup(0, sonsLen(s) - 1): if s.sons[i].kind == nkRange: if leValue(s.sons[i].sons[0], b) and leValue(b, s.sons[i].sons[1]) or @@ -164,7 +168,9 @@ proc cardSet(s: PNode): BiggestInt = Inc(result) proc SetHasRange(s: PNode): bool = - if s.kind != nkCurly: InternalError(s.info, "SetHasRange") + if s.kind != nkCurly: + InternalError(s.info, "SetHasRange") + return false for i in countup(0, sonsLen(s) - 1): if s.sons[i].kind == nkRange: return true -- cgit 1.4.1-2-gfad0