aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/dotty/tools/dotc/parsing/Parsers.scala2
-rw-r--r--src/dotty/tools/dotc/parsing/Scanners.scala6
-rw-r--r--test/test/DottyDocParsingTests.scala30
3 files changed, 34 insertions, 4 deletions
diff --git a/src/dotty/tools/dotc/parsing/Parsers.scala b/src/dotty/tools/dotc/parsing/Parsers.scala
index cdfc366a7..ded17c67c 100644
--- a/src/dotty/tools/dotc/parsing/Parsers.scala
+++ b/src/dotty/tools/dotc/parsing/Parsers.scala
@@ -1879,7 +1879,7 @@ object Parsers {
in.nextToken()
TypeDef(name, tparams, typ()).withMods(mods).setComment(docstring)
case SUPERTYPE | SUBTYPE | SEMI | NEWLINE | NEWLINES | COMMA | RBRACE | EOF =>
- TypeDef(name, tparams, typeBounds()).withMods(mods)
+ TypeDef(name, tparams, typeBounds()).withMods(mods).setComment(docstring)
case _ =>
syntaxErrorOrIncomplete("`=', `>:', or `<:' expected")
EmptyTree
diff --git a/src/dotty/tools/dotc/parsing/Scanners.scala b/src/dotty/tools/dotc/parsing/Scanners.scala
index 7ebe63397..6fe86502f 100644
--- a/src/dotty/tools/dotc/parsing/Scanners.scala
+++ b/src/dotty/tools/dotc/parsing/Scanners.scala
@@ -180,15 +180,15 @@ object Scanners {
/** All doc comments as encountered, each list contains doc comments from
* the same block level. Starting with the deepest level and going upward
*/
- private[this] var docsPerBlockStack: List[List[Comment]] = List(List())
+ private[this] var docsPerBlockStack: List[List[Comment]] = List(Nil)
/** Adds level of nesting to docstrings */
def enterBlock(): Unit =
- docsPerBlockStack = Nil ::: docsPerBlockStack
+ docsPerBlockStack = List(Nil) ::: docsPerBlockStack
/** Removes level of nesting for docstrings */
def exitBlock(): Unit = docsPerBlockStack = docsPerBlockStack match {
- case x :: xs => List(List())
+ case x :: Nil => List(Nil)
case _ => docsPerBlockStack.tail
}
diff --git a/test/test/DottyDocParsingTests.scala b/test/test/DottyDocParsingTests.scala
index 32cfaaddf..b09d048da 100644
--- a/test/test/DottyDocParsingTests.scala
+++ b/test/test/DottyDocParsingTests.scala
@@ -456,4 +456,34 @@ class DottyDocParsingTests extends DottyDocTest {
}
}
}
+
+ @Test def withExtends = {
+ val source =
+ """
+ |trait Trait1
+ |/** Class1 */
+ |class Class1 extends Trait1
+ """.stripMargin
+
+ import dotty.tools.dotc.ast.untpd._
+ checkFrontend(source) {
+ case p @ PackageDef(_, Seq(_, c: TypeDef)) =>
+ checkDocString(c.rawComment, "/** Class1 */")
+ }
+ }
+
+ @Test def withAnnotation = {
+ val source =
+ """
+ |/** Class1 */
+ |@SerialVersionUID(1)
+ |class Class1
+ """.stripMargin
+
+ import dotty.tools.dotc.ast.untpd._
+ checkFrontend(source) {
+ case p @ PackageDef(_, Seq(c: TypeDef)) =>
+ checkDocString(c.rawComment, "/** Class1 */")
+ }
+ }
} /* End class */