diff options
author | Gilles Dubochet <gilles.dubochet@epfl.ch> | 2010-04-12 17:04:31 +0000 |
---|---|---|
committer | Gilles Dubochet <gilles.dubochet@epfl.ch> | 2010-04-12 17:04:31 +0000 |
commit | 9361f2d069b925f39f090af9ff54d9e7085d0e08 (patch) | |
tree | 725272facfdf52859d3c57784797a42018f30a5c | |
parent | 6dd325002065e385bf4bb368542fb7b85509ed19 (diff) | |
download | scala-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.
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 }) |