summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakob Odersky <jakob@odersky.com>2016-08-01 16:23:53 -0700
committerJakob Odersky <jakob@odersky.com>2016-08-01 16:25:05 -0700
commit86647e20f3d9ff935d1be2a2ccf04e17f852e712 (patch)
tree63b1f3795da96b30145e3586e928afd3b982b48a
parentf5c939e3af56755f16053ce434ed6a91f47ca852 (diff)
downloadscala-86647e20f3d9ff935d1be2a2ccf04e17f852e712.tar.gz
scala-86647e20f3d9ff935d1be2a2ccf04e17f852e712.tar.bz2
scala-86647e20f3d9ff935d1be2a2ccf04e17f852e712.zip
Javadoc: consider DocDefs when checking for constructors
-rw-r--r--src/compiler/scala/tools/nsc/javac/JavaParsers.scala21
-rw-r--r--test/scaladoc/resources/SI-4826.java2
2 files changed, 17 insertions, 6 deletions
diff --git a/src/compiler/scala/tools/nsc/javac/JavaParsers.scala b/src/compiler/scala/tools/nsc/javac/JavaParsers.scala
index e1e14d9016..633fdcc870 100644
--- a/src/compiler/scala/tools/nsc/javac/JavaParsers.scala
+++ b/src/compiler/scala/tools/nsc/javac/JavaParsers.scala
@@ -116,12 +116,9 @@ trait JavaParsers extends ast.parser.ParsersCommon with JavaScanners {
def makePackaging(pkg: RefTree, stats: List[Tree]): PackageDef =
atPos(pkg.pos) { PackageDef(pkg, stats) }
- def makeTemplate(parents: List[Tree], stats: List[Tree]) =
- Template(
- parents,
- noSelfType,
- if (treeInfo.firstConstructor(stats) == EmptyTree) makeConstructor(List()) :: stats
- else stats)
+ def makeTemplate(parents: List[Tree], stats: List[Tree]) = {
+ Template(parents, noSelfType, withConstructor(stats))
+ }
def makeSyntheticParam(count: Int, tpt: Tree): ValDef =
makeParam(nme.syntheticParamName(count), tpt)
@@ -135,6 +132,18 @@ trait JavaParsers extends ast.parser.ParsersCommon with JavaScanners {
DefDef(Modifiers(Flags.JAVA), nme.CONSTRUCTOR, List(), List(vparams), TypeTree(), blankExpr)
}
+ def withConstructor(stats: List[Tree]): List[Tree] = {
+ val pureStats = stats map {
+ case DocDef(_, defn) => defn
+ case defn => defn
+ }
+ if(treeInfo.firstConstructor(pureStats) == EmptyTree) {
+ makeConstructor(Nil) :: stats
+ } else {
+ stats
+ }
+ }
+
/** A hook for joining the comment associated with a definition.
* Overridden by scaladoc.
*/
diff --git a/test/scaladoc/resources/SI-4826.java b/test/scaladoc/resources/SI-4826.java
index 24454e88b2..f6ccf886b7 100644
--- a/test/scaladoc/resources/SI-4826.java
+++ b/test/scaladoc/resources/SI-4826.java
@@ -92,6 +92,8 @@ public class JavaComments {
* This is an EXPERIMENTAL feature and is subject to change until it has received more real world testing.
*/
public final class FI {
+
+ /** Doc comment on constructor */
private FI() {
}