diff options
author | Araq <rumpf_a@web.de> | 2013-06-13 01:40:11 +0200 |
---|---|---|
committer | Araq <rumpf_a@web.de> | 2013-06-13 01:40:11 +0200 |
commit | d4c91bbd8546b4e4a2a986f0047e9c7935ef2302 (patch) | |
tree | a593d472df18ecc555abfbc019f615d7a9062e5d /compiler/guards.nim | |
parent | 009730595303d6da2911fb16004b51388628f0cc (diff) | |
download | Nim-d4c91bbd8546b4e4a2a986f0047e9c7935ef2302.tar.gz |
improvements for 'not nil' checking
Diffstat (limited to 'compiler/guards.nim')
-rw-r--r-- | compiler/guards.nim | 7 |
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: |