diff --git a/compiler/docgen.nim b/compiler/docgen.nim index e06277f914..aff77cc1fd 100755 --- a/compiler/docgen.nim +++ b/compiler/docgen.nim @@ -145,6 +145,9 @@ proc isVisible(n: PNode): bool = var v = n.sons[0].ident result = v.id == ord(wStar) or v.id == ord(wMinus) elif n.kind == nkSym: + # we cannot generate code for forwarded symbols here as we have no + # exception tracking information here. Instead we copy over the comment + # from the proc header. result = {sfExported, sfFromGeneric, sfForward}*n.sym.flags == {sfExported} elif n.kind == nkPragmaExpr: result = isVisible(n.sons[0]) diff --git a/compiler/semstmts.nim b/compiler/semstmts.nim index 8b55058bbe..68d485f48f 100755 --- a/compiler/semstmts.nim +++ b/compiler/semstmts.nim @@ -780,6 +780,8 @@ proc semProcAux(c: PContext, n: PNode, kind: TSymKind, n.sons[pragmasPos] = proto.ast.sons[pragmasPos] if n.sons[namePos].kind != nkSym: InternalError(n.info, "semProcAux") n.sons[namePos].sym = proto + if gCmd == cmdDoc and not isNil(proto.ast.comment): + n.comment = proto.ast.comment proto.ast = n # needed for code generation popOwner() pushOwner(s)