diff options
author | Araq <rumpf_a@web.de> | 2014-02-15 02:27:09 +0100 |
---|---|---|
committer | Araq <rumpf_a@web.de> | 2014-02-15 02:27:09 +0100 |
commit | 8637e472194113f1ae5576d448992e8d55068d78 (patch) | |
tree | bd1747391a37b704f300c5a123fb8406ef6ceb70 /compiler | |
parent | 2b9311e9f185c5cb95a7ce70035efce63b4e6d89 (diff) | |
download | Nim-8637e472194113f1ae5576d448992e8d55068d78.tar.gz |
actors.nim compiles again
Diffstat (limited to 'compiler')
-rw-r--r-- | compiler/sempass2.nim | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/compiler/sempass2.nim b/compiler/sempass2.nim index fedf19c79..a00325277 100644 --- a/compiler/sempass2.nim +++ b/compiler/sempass2.nim @@ -476,7 +476,6 @@ proc track(tracked: PEffects, n: PNode) = if warnProveField in gNotes: checkFieldAccess(tracked.guards, n) of nkTryStmt: trackTryStmt(tracked, n) of nkPragma: trackPragmaStmt(tracked, n) - of nkMacroDef, nkTemplateDef: discard of nkAsgn, nkFastAsgn: track(tracked, n.sons[1]) initVar(tracked, n.sons[0]) @@ -526,7 +525,9 @@ proc track(tracked: PEffects, n: PNode) = if sfDiscriminant in x.sons[0].sym.flags: addDiscriminantFact(tracked.guards, x) setLen(tracked.guards, oldFacts) - of nkTypeSection: discard + of nkTypeSection, nkProcDef, nkConverterDef, nkMethodDef, nkIteratorDef, + nkMacroDef, nkTemplateDef: + discard else: for i in 0 .. <safeLen(n): track(tracked, n.sons[i]) @@ -623,6 +624,9 @@ proc trackProc*(s: PSym, body: PNode) = effects.sons[tagEffects] = tagsSpec proc trackTopLevelStmt*(module: PSym; n: PNode) = + if n.kind in {nkPragma, nkMacroDef, nkTemplateDef, nkProcDef, + nkTypeSection, nkConverterDef, nkMethodDef, nkIteratorDef}: + return var effects = newNode(nkEffectList, n.info) var t: TEffects initEffects(effects, module, t) |