This commit is contained in:
Araq 2014-10-31 21:11:36 +01:00
commit 860a28802e

View file

@ -1945,11 +1945,22 @@ proc semExport(c: PContext, n: PNode): PNode =
if s == nil: if s == nil:
localError(a.info, errGenerated, "invalid expr for 'export': " & localError(a.info, errGenerated, "invalid expr for 'export': " &
renderTree(a)) renderTree(a))
while s != nil: elif s.kind == skModule:
if s.kind in ExportableSymKinds+{skModule}: # forward everything from that module:
x.add(newSymNode(s, a.info)) strTableAdd(c.module.tab, s)
strTableAdd(c.module.tab, s) x.add(newSymNode(s, a.info))
s = nextOverloadIter(o, c, a) var ti: TTabIter
var it = initTabIter(ti, s.tab)
while it != nil:
if it.kind in ExportableSymKinds+{skModule}:
strTableAdd(c.module.tab, it)
it = nextIter(ti, s.tab)
else:
while s != nil:
if s.kind in ExportableSymKinds+{skModule}:
x.add(newSymNode(s, a.info))
strTableAdd(c.module.tab, s)
s = nextOverloadIter(o, c, a)
when false: when false:
if c.module.ast.isNil: if c.module.ast.isNil:
c.module.ast = newNodeI(nkStmtList, n.info) c.module.ast = newNodeI(nkStmtList, n.info)