diff options
author | Araq <rumpf_a@web.de> | 2014-03-28 08:40:15 +0100 |
---|---|---|
committer | Araq <rumpf_a@web.de> | 2014-03-28 08:40:15 +0100 |
commit | 12e3c11eb67c738da564b2cfb8bb690f7e759b23 (patch) | |
tree | b51e810d1a61b608673d2a33f07744b1a749591d /compiler | |
parent | 23d581d3771658f924c37345738ce58db8a8669e (diff) | |
download | Nim-12e3c11eb67c738da564b2cfb8bb690f7e759b23.tar.gz |
fixes #911
Diffstat (limited to 'compiler')
-rw-r--r-- | compiler/semstmts.nim | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/compiler/semstmts.nim b/compiler/semstmts.nim index 2a6e797da..c31a8a06d 100644 --- a/compiler/semstmts.nim +++ b/compiler/semstmts.nim @@ -1038,6 +1038,7 @@ proc semProcAux(c: PContext, n: PNode, kind: TSymKind, return else: s = n[namePos].sym + s.owner = getCurrOwner() typeIsDetermined = s.typ == nil s.ast = n s.scope = c.currentScope @@ -1165,6 +1166,11 @@ proc semIterator(c: PContext, n: PNode): PNode = let kind = if hasPragma(n[pragmasPos], wClosure) or n[namePos].kind == nkEmpty: skClosureIterator else: skIterator + # gensym'ed iterator? + if n[namePos].kind == nkSym: + # gensym'ed iterators might need to become closure iterators: + n[namePos].sym.owner = getCurrOwner() + n[namePos].sym.kind = kind result = semProcAux(c, n, kind, iteratorPragmas) var s = result.sons[namePos].sym var t = s.typ |