aboutsummaryrefslogtreecommitdiff
path: root/doc-tool
diff options
context:
space:
mode:
authorFelix Mulder <felix.mulder@gmail.com>2017-02-01 11:12:53 +0100
committerFelix Mulder <felix.mulder@gmail.com>2017-02-01 11:19:51 +0100
commite47840b7e80436dc9b5a371b2093fbceb3b27a02 (patch)
tree783bba6668ef4b923207fa20a3e664322838f027 /doc-tool
parentdcaa78cbce91eefe66f4cbcfc2c651a485d1a0da (diff)
downloaddotty-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.scala16
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)