diff options
author | Felix Mulder <felix.mulder@gmail.com> | 2016-05-13 15:35:42 +0200 |
---|---|---|
committer | Lukas Rytz <lukas.rytz@typesafe.com> | 2016-05-13 15:35:42 +0200 |
commit | 9e30bee0c9363f6cf36a7b65ddbaaa225b57d6a9 (patch) | |
tree | 49c6ec5a251514c114d92639bca03e0feea355c2 /src/scaladoc/scala/tools/nsc/doc/DocFactory.scala | |
parent | 554af4da73f812bf275d58589da4374fbbfa92a8 (diff) | |
download | scala-9e30bee0c9363f6cf36a7b65ddbaaa225b57d6a9.tar.gz scala-9e30bee0c9363f6cf36a7b65ddbaaa225b57d6a9.tar.bz2 scala-9e30bee0c9363f6cf36a7b65ddbaaa225b57d6a9.zip |
Add summary reporting to Scaladoc (#5063)
Diffstat (limited to 'src/scaladoc/scala/tools/nsc/doc/DocFactory.scala')
-rw-r--r-- | src/scaladoc/scala/tools/nsc/doc/DocFactory.scala | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/src/scaladoc/scala/tools/nsc/doc/DocFactory.scala b/src/scaladoc/scala/tools/nsc/doc/DocFactory.scala index fb6c39d7e3..8c646be9c6 100644 --- a/src/scaladoc/scala/tools/nsc/doc/DocFactory.scala +++ b/src/scaladoc/scala/tools/nsc/doc/DocFactory.scala @@ -6,8 +6,8 @@ package scala.tools.nsc package doc -import scala.util.control.ControlThrowable import reporters.Reporter +import scala.util.control.ControlThrowable import scala.reflect.internal.util.BatchSourceFile /** A documentation processor controls the process of generating Scala @@ -105,7 +105,19 @@ class DocFactory(val reporter: Reporter, val settings: doc.Settings) { processor def generate() = { import doclet._ val docletClass = Class.forName(settings.docgenerator.value) // default is html.Doclet - val docletInstance = docletClass.newInstance().asInstanceOf[Generator] + val docletInstance = + docletClass + .getConstructors + .find { constr => + constr.getParameterTypes.length == 1 && + constr.getParameterTypes.apply(0) == classOf[scala.reflect.internal.Reporter] + } + .map(_.newInstance(reporter)) + .getOrElse{ + reporter.warning(null, "Doclets should be created with the Reporter constructor, otherwise logging reporters will not be shared by the creating parent") + docletClass.newInstance() + } + .asInstanceOf[Generator] docletInstance match { case universer: Universer => |