summary refs log tree commit diff stats
path: root/compiler/guards.nim
diff options
context:
space:
mode:
authorAraq <rumpf_a@web.de>2013-06-13 01:40:11 +0200
committerAraq <rumpf_a@web.de>2013-06-13 01:40:11 +0200
commitd4c91bbd8546b4e4a2a986f0047e9c7935ef2302 (patch)
treea593d472df18ecc555abfbc019f615d7a9062e5d /compiler/guards.nim
parent009730595303d6da2911fb16004b51388628f0cc (diff)
downloadNim-d4c91bbd8546b4e4a2a986f0047e9c7935ef2302.tar.gz
improvements for 'not nil' checking
Diffstat (limited to 'compiler/guards.nim')
-rw-r--r--compiler/guards.nim7
1 files changed, 7 insertions, 0 deletions
diff --git a/compiler/guards.nim b/compiler/guards.nim
index d4cb34f36..aece63b19 100644
--- a/compiler/guards.nim
+++ b/compiler/guards.nim
@@ -532,6 +532,13 @@ proc buildElse(n: PNode): PNode =
   result.sons[1] = s
   result.sons[2] = n.sons[0]
 
+proc addDiscriminantFact*(m: var TModel, n: PNode) =
+  var fact = newNodeI(nkCall, n.info, 3)
+  fact.sons[0] = newSymNode(getSysMagic("==", mEqI))
+  fact.sons[1] = n.sons[0]
+  fact.sons[2] = n.sons[1]
+  m.add fact
+
 proc addCaseBranchFacts*(m: var TModel, n: PNode, i: int) =
   let branch = n.sons[i]
   if branch.kind == nkOfBranch: