summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGilles Dubochet <gilles.dubochet@epfl.ch>2010-04-12 17:04:31 +0000
committerGilles Dubochet <gilles.dubochet@epfl.ch>2010-04-12 17:04:31 +0000
commit9361f2d069b925f39f090af9ff54d9e7085d0e08 (patch)
tree725272facfdf52859d3c57784797a42018f30a5c /src
parent6dd325002065e385bf4bb368542fb7b85509ed19 (diff)
downloadscala-9361f2d069b925f39f090af9ff54d9e7085d0e08.tar.gz
scala-9361f2d069b925f39f090af9ff54d9e7085d0e08.tar.bz2
scala-9361f2d069b925f39f090af9ff54d9e7085d0e08.zip
[scaladoc] Lazy vals are printed as such, no lo...
[scaladoc] Lazy vals are printed as such, no longer as vars. No review.
Diffstat (limited to 'src')
-rw-r--r--src/compiler/scala/tools/nsc/doc/html/page/Template.scala11
-rw-r--r--src/compiler/scala/tools/nsc/doc/model/Entity.scala3
-rw-r--r--src/compiler/scala/tools/nsc/doc/model/ModelFactory.scala11
3 files changed, 15 insertions, 10 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 d90e3d2f64..36eea7d190 100644
--- a/src/compiler/scala/tools/nsc/doc/html/page/Template.scala
+++ b/src/compiler/scala/tools/nsc/doc/html/page/Template.scala
@@ -267,9 +267,12 @@ class Template(tpl: DocTemplateEntity) extends HtmlPage {
if (tpl.isPackage) "package" else if (tpl.isClass) "class" else if (tpl.isTrait) "trait" else "object"
case ctor: Constructor => "new"
case tme: MemberEntity =>
- val attr: String = if (tme.isImplicit) "implicit " else ""
- val kind = if (tme.isDef) "def" else if (tme.isVal) "val" else if (tme.isVar) "var" else "type"
- attr + kind
+ ( if (tme.isImplicit) "implicit " else "" ) +
+ ( if (tme.isDef) "def"
+ else if (tme.isVal) "val"
+ else if (tme.isLazyVal) "lazy val"
+ else if (tme.isVar) "var"
+ else "type")
}
def boundsToHtml(hi: Option[TypeEntity], lo: Option[TypeEntity], hasLinks: Boolean): NodeSeq = {
@@ -357,7 +360,7 @@ class Template(tpl: DocTemplateEntity) extends HtmlPage {
case Some(st) => <span class="result"> extends { typeToHtml(st, hasLinks) }</span>
case None =>NodeSeq.Empty
}
- case tme: MemberEntity if (tme.isDef || tme.isVal || tme.isVar) =>
+ case tme: MemberEntity if (tme.isDef || tme.isVal || tme.isLazyVal || tme.isVar) =>
<span class="result">: { typeToHtml(tme.resultType, hasLinks) }</span>
case abt: AbstractType =>
val b2s = boundsToHtml(abt.hi, abt.lo, hasLinks)
diff --git a/src/compiler/scala/tools/nsc/doc/model/Entity.scala b/src/compiler/scala/tools/nsc/doc/model/Entity.scala
index 678702c7f1..b5f12d312d 100644
--- a/src/compiler/scala/tools/nsc/doc/model/Entity.scala
+++ b/src/compiler/scala/tools/nsc/doc/model/Entity.scala
@@ -48,6 +48,7 @@ trait MemberEntity extends Entity {
def resultType: TypeEntity
def isDef: Boolean
def isVal: Boolean
+ def isLazyVal: Boolean
def isVar: Boolean
def isImplicit: Boolean
def isConstructor: Boolean
@@ -131,7 +132,7 @@ trait Constructor extends NonTemplateMemberEntity {
def valueParams : List[List[ValueParam]]
}
-/** A value (`val`) or variable (`var`) of a ''documentable'' class, trait or object. */
+/** A value (`val`), lazy val (`lazy val`) or variable (`var`) of a ''documentable'' class, trait or object. */
trait Val extends NonTemplateMemberEntity
/** An abstract type of a ''documentable'' class, trait or object. */
diff --git a/src/compiler/scala/tools/nsc/doc/model/ModelFactory.scala b/src/compiler/scala/tools/nsc/doc/model/ModelFactory.scala
index 9641bc9045..3bd47eef32 100644
--- a/src/compiler/scala/tools/nsc/doc/model/ModelFactory.scala
+++ b/src/compiler/scala/tools/nsc/doc/model/ModelFactory.scala
@@ -52,10 +52,6 @@ class ModelFactory(val global: Global, val settings: doc.Settings) extends Comme
def inTemplate = inTpl
def toRoot: List[EntityImpl] = this :: inTpl.toRoot
def qualifiedName = name
- override def equals(that: Any) = that match {
- case that: EntityImpl => this.sym == that.sym
- case _ => false
- }
}
/** Provides a default implementation for instances of the `WeakTemplateEntity` type. It must be instantiated as a
@@ -124,6 +120,7 @@ class ModelFactory(val global: Global, val settings: doc.Settings) extends Comme
def resultType = makeType(sym.tpe.finalResultType, inTemplate, sym)
def isDef = false
def isVal = false
+ def isLazyVal = false
def isVar = false
def isImplicit = sym.isImplicit
def isConstructor = false
@@ -336,7 +333,11 @@ class ModelFactory(val global: Global, val settings: doc.Settings) extends Comme
def makeMember(aSym: Symbol, inTpl: => DocTemplateImpl): List[MemberImpl] = {
def makeMember0(bSym: Symbol): Option[MemberImpl] = {
- if (bSym.isGetter && bSym.accessed.isMutable)
+ if (bSym.isGetter && bSym.isLazy) // Scala field accessor or Java field
+ Some(new NonTemplateMemberImpl(bSym, inTpl) with Val {
+ override def isLazyVal = true
+ })
+ else if (bSym.isGetter && bSym.accessed.isMutable)
Some(new NonTemplateMemberImpl(bSym, inTpl) with Val {
override def isVar = true
})