summaryrefslogtreecommitdiff
path: root/src/compiler/scala/tools/nsc/javac/JavaParsers.scala
diff options
context:
space:
mode:
Diffstat (limited to 'src/compiler/scala/tools/nsc/javac/JavaParsers.scala')
-rw-r--r--src/compiler/scala/tools/nsc/javac/JavaParsers.scala21
1 files changed, 15 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.
*/