diff options
Diffstat (limited to 'src')
3 files changed, 14 insertions, 0 deletions
diff --git a/src/compiler/scala/tools/nsc/doc/html/page/Template.scala b/src/compiler/scala/tools/nsc/doc/html/page/Template.scala index 575d671c8c..119823ff13 100644 --- a/src/compiler/scala/tools/nsc/doc/html/page/Template.scala +++ b/src/compiler/scala/tools/nsc/doc/html/page/Template.scala @@ -185,6 +185,15 @@ class Template(tpl: DocTemplateEntity) extends HtmlPage { case _ => NodeSeq.Empty } } + { tpl.companion match { + case Some(companion) => + <div class="block"> + Go to: <a href={relativeLinkTo(companion)}>companion</a> + </div> + case None => + NodeSeq.Empty + } + } </xml:group> def kindToString(mbr: MemberEntity): String = mbr match { diff --git a/src/compiler/scala/tools/nsc/doc/model/Entity.scala b/src/compiler/scala/tools/nsc/doc/model/Entity.scala index 39e3f0ce59..d7ef2b866d 100644 --- a/src/compiler/scala/tools/nsc/doc/model/Entity.scala +++ b/src/compiler/scala/tools/nsc/doc/model/Entity.scala @@ -70,6 +70,7 @@ trait DocTemplateEntity extends TemplateEntity with MemberEntity { def values: List[Val] def abstractTypes: List[AbstractType] def aliasTypes: List[AliasType] + def companion: Option[DocTemplateEntity] } /** A ''documentable'' trait. */ diff --git a/src/compiler/scala/tools/nsc/doc/model/ModelFactory.scala b/src/compiler/scala/tools/nsc/doc/model/ModelFactory.scala index 9a74099b2f..f935dd4478 100644 --- a/src/compiler/scala/tools/nsc/doc/model/ModelFactory.scala +++ b/src/compiler/scala/tools/nsc/doc/model/ModelFactory.scala @@ -178,6 +178,10 @@ class ModelFactory(val global: Global, val settings: doc.Settings) { extractor = val aliasTypes = members partialMap { case t: AliasType => t } override def isTemplate = true def isDocTemplate = true + def companion = sym.linkedSym match { + case NoSymbol => None + case comSym => Some(makeDocTemplate(comSym, inTpl)) + } } abstract class PackageImpl(sym: Symbol, inTpl: => PackageImpl) extends DocTemplateImpl(sym, inTpl) with Package { |