diff options
author | Felix Mulder <felix.mulder@gmail.com> | 2017-02-01 11:12:53 +0100 |
---|---|---|
committer | Felix Mulder <felix.mulder@gmail.com> | 2017-02-01 11:19:51 +0100 |
commit | e47840b7e80436dc9b5a371b2093fbceb3b27a02 (patch) | |
tree | 783bba6668ef4b923207fa20a3e664322838f027 /doc-tool | |
parent | dcaa78cbce91eefe66f4cbcfc2c651a485d1a0da (diff) | |
download | dotty-e47840b7e80436dc9b5a371b2093fbceb3b27a02.tar.gz dotty-e47840b7e80436dc9b5a371b2093fbceb3b27a02.tar.bz2 dotty-e47840b7e80436dc9b5a371b2093fbceb3b27a02.zip |
Make sure overriden members w/o docstring inherit by default
Diffstat (limited to 'doc-tool')
-rw-r--r-- | doc-tool/src/dotty/tools/dottydoc/core/DocstringPhase.scala | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/doc-tool/src/dotty/tools/dottydoc/core/DocstringPhase.scala b/doc-tool/src/dotty/tools/dottydoc/core/DocstringPhase.scala index 9c962ded4..55f2a05ba 100644 --- a/doc-tool/src/dotty/tools/dottydoc/core/DocstringPhase.scala +++ b/doc-tool/src/dotty/tools/dottydoc/core/DocstringPhase.scala @@ -3,6 +3,8 @@ package dottydoc package core import dotc.core.Contexts.Context +import dotc.core.Symbols.Symbol +import dotc.core.Comments.{ Comment => CompilerComment } import transform.DocMiniPhase import model._ import model.internal._ @@ -12,8 +14,20 @@ import util.syntax._ /** Phase to add docstrings to the Dottydoc AST */ class DocstringPhase extends DocMiniPhase with CommentParser with CommentCleaner { + private def getComment(sym: Symbol)(implicit ctx: Context): Option[CompilerComment] = + ctx.docbase.docstring(sym) + .orElse { + // If the symbol doesn't have a docstring, look for an overridden + // ancestor with a docstring + sym.allOverriddenSymbols.collectFirst { + case parentSym if ctx.docbase.docstring(parentSym).isDefined => + parentSym + } + .flatMap(ctx.docbase.docstring) + } + private def parsedComment(ent: Entity)(implicit ctx: Context): Option[Comment] = - ctx.docbase.docstring(ent.symbol).map { cmt => + getComment(ent.symbol).map { cmt => val parsed = parse(ent, ctx.docbase.packages, clean(cmt.raw), cmt.raw, cmt.pos) if (ctx.settings.wikiSyntax.value) |