summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason Zaugg <jzaugg@gmail.com>2013-09-10 00:47:01 -0700
committerJason Zaugg <jzaugg@gmail.com>2013-09-10 00:47:01 -0700
commit7ecffb0c6719a15c46a1bce5ec8545fb9a1cb24f (patch)
tree1ebb7737c016bca03fc826cf6a230d727d9fc594
parent6c431e66f591acdb104f09adaa935dc85e71a469 (diff)
parentaa1bff8c5d87c12f06a81107ed92ac2ff0babbaa (diff)
downloadscala-7ecffb0c6719a15c46a1bce5ec8545fb9a1cb24f.tar.gz
scala-7ecffb0c6719a15c46a1bce5ec8545fb9a1cb24f.tar.bz2
scala-7ecffb0c6719a15c46a1bce5ec8545fb9a1cb24f.zip
Merge pull request #2922 from huitseeker/issue/7767
SI-7767 avoid rejecting Scaladoc comments in early initializers
-rw-r--r--src/compiler/scala/tools/nsc/ast/parser/Parsers.scala2
-rw-r--r--test/scaladoc/run/t7767.check1
-rw-r--r--test/scaladoc/run/t7767.scala18
3 files changed, 21 insertions, 0 deletions
diff --git a/src/compiler/scala/tools/nsc/ast/parser/Parsers.scala b/src/compiler/scala/tools/nsc/ast/parser/Parsers.scala
index 5476afa75e..996287dea8 100644
--- a/src/compiler/scala/tools/nsc/ast/parser/Parsers.scala
+++ b/src/compiler/scala/tools/nsc/ast/parser/Parsers.scala
@@ -2772,6 +2772,8 @@ self =>
List(copyValDef(vdef)(mods = mods | Flags.PRESUPER))
case tdef @ TypeDef(mods, name, tparams, rhs) =>
List(treeCopy.TypeDef(tdef, mods | Flags.PRESUPER, name, tparams, rhs))
+ case docdef @ DocDef(comm, rhs) =>
+ List(treeCopy.DocDef(docdef, comm, rhs))
case stat if !stat.isEmpty =>
syntaxError(stat.pos, "only type definitions and concrete field definitions allowed in early object initialization section", false)
List()
diff --git a/test/scaladoc/run/t7767.check b/test/scaladoc/run/t7767.check
new file mode 100644
index 0000000000..619c56180b
--- /dev/null
+++ b/test/scaladoc/run/t7767.check
@@ -0,0 +1 @@
+Done.
diff --git a/test/scaladoc/run/t7767.scala b/test/scaladoc/run/t7767.scala
new file mode 100644
index 0000000000..6c9ceb511d
--- /dev/null
+++ b/test/scaladoc/run/t7767.scala
@@ -0,0 +1,18 @@
+import scala.tools.nsc.doc.model._
+import scala.tools.partest.ScaladocModelTest
+
+object Test extends ScaladocModelTest {
+
+ override def code = """
+ class Docable extends { /**Doc*/ val foo = 0 } with AnyRef
+ """
+
+ // no need for special settings
+ def scaladocSettings = ""
+
+ def testModel(rootPackage: Package) = {
+ import access._
+ val comment = rootPackage._class("Docable")._value("foo").comment.map(_.body.toString.trim).getOrElse("")
+ assert(comment.contains("Doc"), comment)
+ }
+}