diff options
-rw-r--r-- | src/compiler/scala/tools/nsc/doc/html/page/Template.scala | 15 | ||||
-rw-r--r-- | test/scaladoc/resources/basic.scala | 7 | ||||
-rw-r--r-- | test/scaladoc/scala/html/HtmlFactoryTest.scala | 10 |
3 files changed, 28 insertions, 4 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 03fe5b4267..5f4950187e 100644 --- a/src/compiler/scala/tools/nsc/doc/html/page/Template.scala +++ b/src/compiler/scala/tools/nsc/doc/html/page/Template.scala @@ -9,7 +9,7 @@ package html package page import model._ -import scala.xml.{ NodeSeq, Text, XML } +import scala.xml.{ NodeSeq, Text, XML, UnprefixedAttribute } class Template(tpl: DocTemplateEntity) extends HtmlPage { @@ -538,10 +538,21 @@ class Template(tpl: DocTemplateEntity) extends HtmlPage { { val nameHtml = { val value = if (mbr.isConstructor) tpl.name else mbr.name - if (mbr.deprecation.isDefined) + val span = if (mbr.deprecation.isDefined) <span class={"name deprecated"} title={"Deprecated: "+bodyToStr(mbr.deprecation.get)}>{ value }</span> else <span class={"name"}>{ value }</span> + val encoded = scala.reflect.NameTransformer.encode(value) + if (encoded != value) { + span % new UnprefixedAttribute("title", + "gt4s: " + encoded + + span.attribute("title").map( + node => ". " + node + ).getOrElse(""), + scala.xml.Null) + } else { + span + } } if (!nameLink.isEmpty) <a href={nameLink}>{nameHtml}</a> diff --git a/test/scaladoc/resources/basic.scala b/test/scaladoc/resources/basic.scala index 8645efd818..00db6669b4 100644 --- a/test/scaladoc/resources/basic.scala +++ b/test/scaladoc/resources/basic.scala @@ -8,6 +8,13 @@ package com.example.p1 { class Clazz { def foo = packageObjectMethod implicit def intToClass1(n: Int) = new Clazz + + @deprecated("This method is deprecated.") + def depracatedMethod = 0 + + // Google Token for Scala + def :: = 0 + @deprecated("This method is deprecated.") def :::: = 0 } class UpperBound[T <: Int] diff --git a/test/scaladoc/scala/html/HtmlFactoryTest.scala b/test/scaladoc/scala/html/HtmlFactoryTest.scala index 2c81be5d08..f265ddc8cf 100644 --- a/test/scaladoc/scala/html/HtmlFactoryTest.scala +++ b/test/scaladoc/scala/html/HtmlFactoryTest.scala @@ -141,8 +141,8 @@ object Test extends Properties("HtmlFactory") { createTemplate("Trac4372.scala") match { case node: scala.xml.Node => { val html = node.toString - html.contains("<span class=\"name\">+:</span>\n") && - html.contains("<span class=\"name\">-:</span>\n") && + html.contains("<span class=\"name\" title=\"gt4s: $plus$colon\">+:</span>\n") && + html.contains("<span class=\"name\" title=\"gt4s: $minus$colon\">-:</span>\n") && html.contains("""<span class="params">(<span name="n">n: <span name="scala.Int" class="extype">Int</span></span>)</span><span class="result">: <span name="scala.Int" class="extype">Int</span></span>""") } case _ => false @@ -381,6 +381,12 @@ object Test extends Properties("HtmlFactory") { case Some(node: scala.xml.Node) => { property("implicit convertion") = node.toString contains "<span class=\"modifier\">implicit </span>" + + property("gt4s") = + node.toString contains "title=\"gt4s: $colon$colon\"" + + property("gt4s of a deprecated method") = + node.toString contains "title=\"gt4s: $colon$colon$colon$colon. Deprecated: " true } case _ => false |