From 557a0ebd03e224f3773c78eddf9cbd059bce924a Mon Sep 17 00:00:00 2001 From: Kato Kazuyoshi Date: Mon, 4 Apr 2011 16:19:32 +0000 Subject: 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. --- src/compiler/scala/tools/nsc/ast/DocComments.scala | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) (limited to 'src') 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) }) -- cgit v1.2.3