summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorKato Kazuyoshi <kato.kazuyoshi@gmail.com>2011-04-04 16:19:32 +0000
committerKato Kazuyoshi <kato.kazuyoshi@gmail.com>2011-04-04 16:19:32 +0000
commit557a0ebd03e224f3773c78eddf9cbd059bce924a (patch)
treea92c962379153c932982490d23ba784310990713 /src
parent00b0be49a80299e864d2222c79ec45b99038a195 (diff)
downloadscala-557a0ebd03e224f3773c78eddf9cbd059bce924a.tar.gz
scala-557a0ebd03e224f3773c78eddf9cbd059bce924a.tar.bz2
scala-557a0ebd03e224f3773c78eddf9cbd059bce924a.zip
Every tag element (even @define and @usecase) e...
Every tag element (even @define and @usecase) end before the next recognised tag. Closes #4409. Review by extempore.
Diffstat (limited to 'src')
-rwxr-xr-xsrc/compiler/scala/tools/nsc/ast/DocComments.scala19
1 files changed, 7 insertions, 12 deletions
diff --git a/src/compiler/scala/tools/nsc/ast/DocComments.scala b/src/compiler/scala/tools/nsc/ast/DocComments.scala
index 9764e92cde..2e97a3d820 100755
--- a/src/compiler/scala/tools/nsc/ast/DocComments.scala
+++ b/src/compiler/scala/tools/nsc/ast/DocComments.scala
@@ -296,18 +296,13 @@ trait DocComments { self: SymbolTable =>
* useCases: all usecase sections (as instances of class UseCase)
*/
lazy val (template, defines, useCases) = {
- val sections = tagIndex(raw, idx =>
- startsWithTag(raw, idx, "@define") || startsWithTag(raw, idx, "@usecase"))
- val (defines, usecases) = sections partition (startsWithTag(raw, _, "@define"))
- val end = startTag(raw, sections)
- /*
- println("processing doc comment:")
- println(raw)
- println("===========>")
- println(raw.substring(0, end))
- println("++++++++++++++++")
- println(sections map { case (s, e) => raw.substring(s, e) })
- */
+ val sections = tagIndex(raw)
+
+ val defines = sections filter { startsWithTag(raw, _, "@define") }
+ val usecases = sections filter { startsWithTag(raw, _, "@usecase") }
+
+ 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) },
usecases map { case (start, end) => decomposeUseCase(start, end) })