fixes #1616; fixes 'nim doc' regressions

This commit is contained in:
Andreas Rumpf 2018-09-17 17:35:00 +02:00
commit 3467c455c0
3 changed files with 49 additions and 19 deletions

View file

@ -2267,6 +2267,7 @@ proc semExportExcept(c: PContext, n: PNode): PNode =
return n
let exceptSet = readExceptSet(c, n)
let exported = moduleName.sym
result = newNodeI(nkExportStmt, n.info)
strTableAdd(c.module.tab, exported)
var i: TTabIter
var s = initTabIter(i, exported.tab)
@ -2274,11 +2275,12 @@ proc semExportExcept(c: PContext, n: PNode): PNode =
if s.kind in ExportableSymKinds+{skModule} and
s.name.id notin exceptSet:
strTableAdd(c.module.tab, s)
result.add newSymNode(s, n.info)
s = nextIter(i, exported.tab)
result = n
proc semExport(c: PContext, n: PNode): PNode =
var x = newNodeI(n.kind, n.info)
result = newNodeI(nkExportStmt, n.info)
for i in 0..<n.len:
let a = n.sons[i]
var o: TOverloadIter
@ -2288,20 +2290,19 @@ proc semExport(c: PContext, n: PNode): PNode =
elif s.kind == skModule:
# forward everything from that module:
strTableAdd(c.module.tab, s)
x.add(newSymNode(s, a.info))
var ti: TTabIter
var it = initTabIter(ti, s.tab)
while it != nil:
if it.kind in ExportableSymKinds+{skModule}:
strTableAdd(c.module.tab, it)
result.add newSymNode(it, a.info)
it = nextIter(ti, s.tab)
else:
while s != nil:
if s.kind in ExportableSymKinds+{skModule}:
x.add(newSymNode(s, a.info))
result.add(newSymNode(s, a.info))
strTableAdd(c.module.tab, s)
s = nextOverloadIter(o, c, a)
result = n
proc shouldBeBracketExpr(n: PNode): bool =
assert n.kind in nkCallKinds