diff options
author | Araq <rumpf_a@web.de> | 2016-01-18 10:55:23 +0100 |
---|---|---|
committer | Araq <rumpf_a@web.de> | 2016-01-18 10:55:23 +0100 |
commit | 55c1f3d30ce5d2ab8745ab2b98a38a605c690a54 (patch) | |
tree | d729e8c0d7c929208c84450ad4a449e3eb32491e /compiler/lowerings.nim | |
parent | 68cbb4d2b4bc408e13fc27e6d054e3a0bb98bfb4 (diff) | |
parent | 2309975f782bf59b240e3874d5c31b4b299eca5d (diff) | |
download | Nim-55c1f3d30ce5d2ab8745ab2b98a38a605c690a54.tar.gz |
Merge branch 'devel' of https://github.com/nim-lang/Nim into devel
Diffstat (limited to 'compiler/lowerings.nim')
-rw-r--r-- | compiler/lowerings.nim | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/compiler/lowerings.nim b/compiler/lowerings.nim index 20800b809..7a5c7f44b 100644 --- a/compiler/lowerings.nim +++ b/compiler/lowerings.nim @@ -165,9 +165,10 @@ proc indirectAccess*(a: PNode, b: string, info: TLineInfo): PNode = deref.typ = a.typ.skipTypes(abstractInst).sons[0] var t = deref.typ.skipTypes(abstractInst) var field: PSym + let bb = getIdent(b) while true: assert t.kind == tyObject - field = getSymFromList(t.n, getIdent(b)) + field = getSymFromList(t.n, bb) if field != nil: break t = t.sons[0] if t == nil: break @@ -585,7 +586,7 @@ proc wrapProcForSpawn*(owner: PSym; spawnExpr: PNode; retType: PType; objType.addField(field) result.add newFastAsgnStmt(newDotExpr(scratchObj, field), n[0]) fn = indirectAccess(castExpr, field, n.info) - elif fn.kind == nkSym and fn.sym.kind in {skClosureIterator, skIterator}: + elif fn.kind == nkSym and fn.sym.kind == skIterator: localError(n.info, "iterator in spawn environment is not allowed") elif fn.typ.callConv == ccClosure: localError(n.info, "closure in spawn environment is not allowed") |