diff options
author | Jakob Odersky <jakob@odersky.com> | 2016-08-01 16:23:53 -0700 |
---|---|---|
committer | Jakob Odersky <jakob@odersky.com> | 2016-08-01 16:25:05 -0700 |
commit | 86647e20f3d9ff935d1be2a2ccf04e17f852e712 (patch) | |
tree | 63b1f3795da96b30145e3586e928afd3b982b48a | |
parent | f5c939e3af56755f16053ce434ed6a91f47ca852 (diff) | |
download | scala-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.scala | 21 | ||||
-rw-r--r-- | test/scaladoc/resources/SI-4826.java | 2 |
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() { } |