diff options
Diffstat (limited to 'compiler/liftlocals.nim')
-rw-r--r-- | compiler/liftlocals.nim | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/compiler/liftlocals.nim b/compiler/liftlocals.nim index 0b46c73a2..aaa0707e0 100644 --- a/compiler/liftlocals.nim +++ b/compiler/liftlocals.nim @@ -10,9 +10,11 @@ ## This module implements the '.liftLocals' pragma. import - strutils, options, ast, msgs, + options, ast, msgs, idents, renderer, types, lowerings, lineinfos +import std/strutils + from pragmas import getPragmaVal from wordrecg import wLiftLocals @@ -43,12 +45,13 @@ proc liftLocals(n: PNode; i: int; c: var Ctx) = of nkSym: if interestingVar(it.sym): n[i] = lookupOrAdd(c, it.sym, it.info) - of procDefs, nkTypeSection: discard + of procDefs, nkTypeSection, nkMixinStmt, nkBindStmt: discard else: for i in 0..<it.safeLen: liftLocals(it, i, c) proc lookupParam(params, dest: PNode): PSym = + result = nil if dest.kind != nkIdent: return nil for i in 1..<params.len: if params[i].kind == nkSym and params[i].sym.name.id == dest.ident.id: |