diff options
author | Kato Kazuyoshi <kato.kazuyoshi@gmail.com> | 2011-04-12 14:48:39 +0000 |
---|---|---|
committer | Kato Kazuyoshi <kato.kazuyoshi@gmail.com> | 2011-04-12 14:48:39 +0000 |
commit | ca05143ea7c07e0e84e8fd66259df27392213861 (patch) | |
tree | 13b730f1c23afcf1145451ec8cec0ab6b7942a2c | |
parent | b6ab8af4f23be72a84e5daea153b8363116408b0 (diff) | |
download | scala-ca05143ea7c07e0e84e8fd66259df27392213861.tar.gz scala-ca05143ea7c07e0e84e8fd66259df27392213861.tar.bz2 scala-ca05143ea7c07e0e84e8fd66259df27392213861.zip |
[scaladoc] Closes #4452 again. Review by malayeri.
-rwxr-xr-x | src/compiler/scala/tools/nsc/ast/DocComments.scala | 23 | ||||
-rw-r--r-- | test/scaladoc/resources/Trac4452.scala | 27 | ||||
-rw-r--r-- | test/scaladoc/scala/html/HtmlFactoryTest.scala | 2 |
3 files changed, 36 insertions, 16 deletions
diff --git a/src/compiler/scala/tools/nsc/ast/DocComments.scala b/src/compiler/scala/tools/nsc/ast/DocComments.scala index 1a807cc2c3..9df0069ada 100755 --- a/src/compiler/scala/tools/nsc/ast/DocComments.scala +++ b/src/compiler/scala/tools/nsc/ast/DocComments.scala @@ -304,11 +304,7 @@ trait DocComments { self: SymbolTable => val end = startTag(raw, (defines ::: usecases).sort(_._1 < _._1)) (if (end == raw.length - 2) raw else raw.substring(0, end) + "*/", - defines map { - case (start, end) => raw.substring(start, end) - } map { - _.replaceAll("(?m)^\\s+\\*", "") - }, + defines map { case (start, end) => raw.substring(start, end) }, usecases map { case (start, end) => decomposeUseCase(start, end) }) } @@ -332,13 +328,18 @@ trait DocComments { self: SymbolTable => pos withStart start1 withPoint start1 withEnd end1 } - def defineVariables(sym: Symbol) { - for (str <- defines) { - val start = skipWhitespace(str, "@define".length) - var idx = skipVariable(str, start) - val vble = variableName(str.substring(start, idx)) + def defineVariables(sym: Symbol) = { + val Trim = "(?s)^[\\s&&[^\n\r]]*(.*?)\\s*$".r - defs(sym) += vble -> (str drop idx).trim.replaceAll("""\s+\*+$""", "") + defs(sym) ++= defines.map { + str => { + val start = skipWhitespace(str, "@define".length) + val (key, value) = str.splitAt(skipVariable(str, start)) + key.drop(start) -> value + } + } map { + case (key, Trim(value)) => + variableName(key) -> value.replaceAll("\\s+\\*+$", "") } } } diff --git a/test/scaladoc/resources/Trac4452.scala b/test/scaladoc/resources/Trac4452.scala index b49a174517..b844437dba 100644 --- a/test/scaladoc/resources/Trac4452.scala +++ b/test/scaladoc/resources/Trac4452.scala @@ -1,11 +1,30 @@ /** * @define MacroWithNewLine - * blah blah blah + * This macro should not include "*". + * + * @define MacroWithoutNewLine This macro + * should + * include "*". */ class Test /** * TestA class - * - * $MacroWithNewLine */ -class Trac4452 extends Test + */ +class Trac4452 extends Test { + /** $MacroWithNewLine */ + def a = 1 + + /** $MacroWithoutNewLine */ + def b = 2 + + /** + * $MacroWithNewLine + */ + def c = 3 + + /** + * $MacroWithoutNewLine + */ + def d = 4 +} diff --git a/test/scaladoc/scala/html/HtmlFactoryTest.scala b/test/scaladoc/scala/html/HtmlFactoryTest.scala index 4e5c0bcdee..15f5249c90 100644 --- a/test/scaladoc/scala/html/HtmlFactoryTest.scala +++ b/test/scaladoc/scala/html/HtmlFactoryTest.scala @@ -270,7 +270,7 @@ object Test extends Properties("HtmlFactory") { property("Trac #4452") = { createTemplate("Trac4452.scala") match { case node: scala.xml.Node => - ! node.toString.contains("* blah blah blah") + ! node.toString.contains(">*") case _ => false } } |