summaryrefslogtreecommitdiff
path: root/src/compiler/scala/tools/nsc/doc/model
diff options
context:
space:
mode:
authorGilles Dubochet <gilles.dubochet@epfl.ch>2010-07-18 15:59:14 +0000
committerGilles Dubochet <gilles.dubochet@epfl.ch>2010-07-18 15:59:14 +0000
commit289e6a43d40b5b47ecd4ae55b59389ad27e5508a (patch)
tree0706b98b1d9bed213711876808e15d3bd7e7b744 /src/compiler/scala/tools/nsc/doc/model
parentbdbaba4cf02f53492fef9c8e8c72b85ba18d323b (diff)
downloadscala-289e6a43d40b5b47ecd4ae55b59389ad27e5508a.tar.gz
scala-289e6a43d40b5b47ecd4ae55b59389ad27e5508a.tar.bz2
scala-289e6a43d40b5b47ecd4ae55b59389ad27e5508a.zip
[scaladoc] Print "Inherited from" headings usin...
[scaladoc] Print "Inherited from" headings using type instances ("SeqLike[A, List[A]]") instead of template names ("SeqLike"). Review by malayeri.
Diffstat (limited to 'src/compiler/scala/tools/nsc/doc/model')
-rw-r--r--src/compiler/scala/tools/nsc/doc/model/Entity.scala4
-rw-r--r--src/compiler/scala/tools/nsc/doc/model/ModelFactory.scala21
2 files changed, 14 insertions, 11 deletions
diff --git a/src/compiler/scala/tools/nsc/doc/model/Entity.scala b/src/compiler/scala/tools/nsc/doc/model/Entity.scala
index 8c47fd7fbb..7d4fbbfbfb 100644
--- a/src/compiler/scala/tools/nsc/doc/model/Entity.scala
+++ b/src/compiler/scala/tools/nsc/doc/model/Entity.scala
@@ -71,8 +71,8 @@ trait DocTemplateEntity extends TemplateEntity with MemberEntity {
def inSource: Option[(io.AbstractFile, Int)]
def sourceUrl: Option[java.net.URL]
def parentType: Option[TypeEntity]
- def parentTemplates: List[TemplateEntity]
- def linearization: List[TemplateEntity]
+ def linearization: List[(TemplateEntity, TypeEntity)]
+ def linearizationTemplates: List[TemplateEntity]
def linearizationTypes: List[TypeEntity]
def subClasses: List[DocTemplateEntity]
def members: List[MemberEntity]
diff --git a/src/compiler/scala/tools/nsc/doc/model/ModelFactory.scala b/src/compiler/scala/tools/nsc/doc/model/ModelFactory.scala
index 218d3158f9..a45a227142 100644
--- a/src/compiler/scala/tools/nsc/doc/model/ModelFactory.scala
+++ b/src/compiler/scala/tools/nsc/doc/model/ModelFactory.scala
@@ -160,22 +160,25 @@ class ModelFactory(val global: Global, val settings: doc.Settings) { thisFactory
}
else None
}
- def parentTemplates = sym.info.parents map { x: Type => makeTemplate(x.typeSymbol) }
def parentType = {
- if (sym.isPackage) None else
- Some(makeType(RefinedType((sym.tpe.parents filter (_ != ScalaObjectClass.tpe)) map { _.asSeenFrom(sym.thisType, sym) }, EmptyScope), inTpl))
+ if (sym.isPackage) None else {
+ val tps =
+ (sym.tpe.parents filter (_ != ScalaObjectClass.tpe)) map { _.asSeenFrom(sym.thisType, sym) }
+ Some(makeType(RefinedType(tps, EmptyScope), inTpl))
+ }
}
- val linearization = {
- val tpls = sym.ancestors filter { _ != ScalaObjectClass } map { makeTemplate(_) }
+ val linearization: List[(TemplateEntity, TypeEntity)] = {
+ val acs = sym.ancestors filter { _ != ScalaObjectClass }
+ val tps = acs map { cls => makeType(sym.info.baseType(cls), this) }
+ val tpls = acs map { makeTemplate(_) }
tpls map {
case dtpl: DocTemplateImpl => dtpl.registerSubClass(this)
case _ =>
}
- tpls
- }
- def linearizationTypes = {
- ((sym.info.baseClasses filter (_ != ScalaObjectClass)) map { cls => makeType(sym.info.baseType(cls), this) }).tail
+ tpls zip tps
}
+ def linearizationTemplates = linearization map { _._1 }
+ def linearizationTypes = linearization map { _._2 }
private lazy val subClassesCache = mutable.Buffer.empty[DocTemplateEntity]
def registerSubClass(sc: DocTemplateEntity): Unit = {
assert(subClassesCache != null)