From c66998bc56ba73b5b2cbbf6b10f4d5b83017db13 Mon Sep 17 00:00:00 2001 From: Felix Mulder Date: Thu, 10 Mar 2016 14:00:03 +0100 Subject: Fix association of docstrings based on posisition This commit fixes errors that would've occurred in this situation: ``` /** Docstring 1 */ <- this one would've been chosen /** Docstring 2 */ /** Docstring 3 */ class Class ``` And this situation: ``` /** Docstring 1 */ trait Trait /** Docstring 2 */ <- this one would've been chosen ``` --- test/test/DottyDocTests.scala | 51 ++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 50 insertions(+), 1 deletion(-) (limited to 'test/test') diff --git a/test/test/DottyDocTests.scala b/test/test/DottyDocTests.scala index 2a60e7e7d..5161f98b8 100644 --- a/test/test/DottyDocTests.scala +++ b/test/test/DottyDocTests.scala @@ -53,6 +53,7 @@ trait DottyDocTest extends DottyTest { self => /** Add tests to the `tests` sequence */ object DottyDocTests extends DottyTest { private[this] val tests = Seq( + NoComment, SingleClassInPackage, MultipleOpenedOnSingleClassInPackage, MultipleClassesInPackage, @@ -64,7 +65,9 @@ object DottyDocTests extends DottyTest { NestedClassThenOuter, Objects, ObjectsNestedClass, - PackageObject + PackageObject, + MultipleDocStringsBeforeEntity, + MultipleDocStringsBeforeAndAfter ) def main(args: Array[String]): Unit = { @@ -74,6 +77,16 @@ object DottyDocTests extends DottyTest { } } +case object NoComment extends DottyDocTest { + override val source = "class Class" + + import dotty.tools.dotc.ast.untpd._ + override def assertion = { + case PackageDef(_, Seq(c: TypeDef)) => + assert(c.rawComment == None, "Should not have a comment, mainly used for exhaustive tests") + } +} + case object SingleClassInPackage extends DottyDocTest { override val source = """ @@ -322,3 +335,39 @@ case object PackageObject extends DottyDocTest { } } } + +case object MultipleDocStringsBeforeEntity extends DottyDocTest { + override val source = + """ + |/** First comment */ + |/** Second comment */ + |/** Real comment */ + |class Class + """.stripMargin + + import dotty.tools.dotc.ast.untpd._ + override def assertion = { + case PackageDef(_, Seq(c: TypeDef)) => + checkDocString(c.rawComment, "/** Real comment */") + } +} + +case object MultipleDocStringsBeforeAndAfter extends DottyDocTest { + override val source = + """ + |/** First comment */ + |/** Second comment */ + |/** Real comment */ + |class Class + |/** Following comment 1 */ + |/** Following comment 2 */ + |/** Following comment 3 */ + """.stripMargin + + import dotty.tools.dotc.ast.untpd._ + override def assertion = { + case PackageDef(_, Seq(c: TypeDef)) => + checkDocString(c.rawComment, "/** Real comment */") + } + +} -- cgit v1.2.3