summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGilles Dubochet <gilles.dubochet@epfl.ch>2010-06-16 14:16:31 +0000
committerGilles Dubochet <gilles.dubochet@epfl.ch>2010-06-16 14:16:31 +0000
commit9cc51c6d4bf6a52bb7d43e40f2c995e82cbae5d6 (patch)
treed84a3354817349f6eb35abff74c00bc5ee5e2654
parent8af697d20f3c79cae0ebfb7fd3c35356705f8f62 (diff)
downloadscala-9cc51c6d4bf6a52bb7d43e40f2c995e82cbae5d6.tar.gz
scala-9cc51c6d4bf6a52bb7d43e40f2c995e82cbae5d6.tar.bz2
scala-9cc51c6d4bf6a52bb7d43e40f2c995e82cbae5d6.zip
[Scaladoc] Self types are printed.
-rw-r--r--src/compiler/scala/tools/nsc/doc/DocFactory.scala2
-rw-r--r--src/compiler/scala/tools/nsc/doc/html/HtmlFactory.scala2
-rw-r--r--src/compiler/scala/tools/nsc/doc/html/page/Template.scala8
-rw-r--r--src/compiler/scala/tools/nsc/doc/model/Entity.scala1
-rw-r--r--src/compiler/scala/tools/nsc/doc/model/ModelFactory.scala1
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