proc copySymdef(n: PNode; locals: var Table[int, PSym]; idgen: IdGenerator; owner: PSym): PNode = case n.kind of nkEmpty..pred(nkSym), succ(nkSym)..nkNilLit: result = n of nkSym: let oldSym = n.sym let newSym = copySym(oldSym, idgen) setOwner(newSym, owner) locals[oldSym.id] = newSym result = newSymNode(newSym, oldSym.info) else: result = shallowCopy(n) for i in 0.. 0: result.typ.n.add copyNode(prc.typ.n[0]) for i in 1..