diff options
author | Kato Kazuyoshi <kato.kazuyoshi@gmail.com> | 2011-04-04 16:19:32 +0000 |
---|---|---|
committer | Kato Kazuyoshi <kato.kazuyoshi@gmail.com> | 2011-04-04 16:19:32 +0000 |
commit | 557a0ebd03e224f3773c78eddf9cbd059bce924a (patch) | |
tree | a92c962379153c932982490d23ba784310990713 /src | |
parent | 00b0be49a80299e864d2222c79ec45b99038a195 (diff) | |
download | scala-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-x | src/compiler/scala/tools/nsc/ast/DocComments.scala | 19 |
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) }) |