diff options
author | Gilles Dubochet <gilles.dubochet@epfl.ch> | 2010-06-16 14:16:31 +0000 |
---|---|---|
committer | Gilles Dubochet <gilles.dubochet@epfl.ch> | 2010-06-16 14:16:31 +0000 |
commit | 9cc51c6d4bf6a52bb7d43e40f2c995e82cbae5d6 (patch) | |
tree | d84a3354817349f6eb35abff74c00bc5ee5e2654 /src/compiler | |
parent | 8af697d20f3c79cae0ebfb7fd3c35356705f8f62 (diff) | |
download | scala-9cc51c6d4bf6a52bb7d43e40f2c995e82cbae5d6.tar.gz scala-9cc51c6d4bf6a52bb7d43e40f2c995e82cbae5d6.tar.bz2 scala-9cc51c6d4bf6a52bb7d43e40f2c995e82cbae5d6.zip |
[Scaladoc] Self types are printed.
Diffstat (limited to 'src/compiler')
5 files changed, 12 insertions, 2 deletions
diff --git a/src/compiler/scala/tools/nsc/doc/DocFactory.scala b/src/compiler/scala/tools/nsc/doc/DocFactory.scala index 42aab918f7..066f800f79 100644 --- a/src/compiler/scala/tools/nsc/doc/DocFactory.scala +++ b/src/compiler/scala/tools/nsc/doc/DocFactory.scala @@ -54,7 +54,7 @@ class DocFactory(val reporter: Reporter, val settings: doc.Settings) { processor val modelFactory = (new model.ModelFactory(compiler, settings) with model.comment.CommentFactory) val docModel = modelFactory.makeModel println("model contains " + modelFactory.templatesCount + " documentable templates") - (new html.HtmlFactory(docModel)) generate docModel + (new html.HtmlFactory(docModel)).generate } } diff --git a/src/compiler/scala/tools/nsc/doc/html/HtmlFactory.scala b/src/compiler/scala/tools/nsc/doc/html/HtmlFactory.scala index 348dc4b26c..94b1f38b65 100644 --- a/src/compiler/scala/tools/nsc/doc/html/HtmlFactory.scala +++ b/src/compiler/scala/tools/nsc/doc/html/HtmlFactory.scala @@ -26,7 +26,7 @@ class HtmlFactory(val universe: Universe) { /** Generates the Scaladoc site for a model into the site root. A scaladoc site is a set of HTML and related files * that document a model extracted from a compiler run. * @param model The model to generate in the form of a sequence of packages. */ - def generate(universe: Universe): Unit = { + def generate : Unit = { def copyResource(subPath: String) { val bytes = new Streamable.Bytes { 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 311bac0f86..1f95f09329 100644 --- a/src/compiler/scala/tools/nsc/doc/html/page/Template.scala +++ b/src/compiler/scala/tools/nsc/doc/html/page/Template.scala @@ -231,6 +231,14 @@ class Template(tpl: DocTemplateEntity) extends HtmlPage { } } ++ { mbr match { + case dtpl: DocTemplateEntity if (isSelf && !dtpl.selfType.isEmpty) => + <div class="block"> + self type: { typeToHtml(dtpl.selfType.get, hasLinks = true) } + </div> + case _ => NodeSeq.Empty + } + } ++ + { mbr match { case dtpl: DocTemplateEntity if (isSelf && dtpl.sourceUrl.isDefined) => val sourceUrl = tpl.sourceUrl.get <div class="block"> diff --git a/src/compiler/scala/tools/nsc/doc/model/Entity.scala b/src/compiler/scala/tools/nsc/doc/model/Entity.scala index b5f12d312d..bfe46441d2 100644 --- a/src/compiler/scala/tools/nsc/doc/model/Entity.scala +++ b/src/compiler/scala/tools/nsc/doc/model/Entity.scala @@ -31,6 +31,7 @@ trait TemplateEntity extends Entity { def isClass: Boolean def isObject: Boolean def isDocTemplate: Boolean + def selfType : Option[TypeEntity] } trait NoDocTemplate extends TemplateEntity diff --git a/src/compiler/scala/tools/nsc/doc/model/ModelFactory.scala b/src/compiler/scala/tools/nsc/doc/model/ModelFactory.scala index e2a25d7ea4..db57318f70 100644 --- a/src/compiler/scala/tools/nsc/doc/model/ModelFactory.scala +++ b/src/compiler/scala/tools/nsc/doc/model/ModelFactory.scala @@ -63,6 +63,7 @@ class ModelFactory(val global: Global, val settings: doc.Settings) { thisFactory def isClass = sym.isClass && !sym.isTrait def isObject = sym.isModule && !sym.isPackage def isRootPackage = false + def selfType = if (sym.thisSym eq sym) None else Some(makeType(sym.thisSym.typeOfThis)) } /** Provides a default implementation for instances of the `WeakTemplateEntity` type. It must be instantiated as a |