summaryrefslogtreecommitdiff
path: root/src/compiler/scala/tools/nsc/javac/JavaParsers.scala
diff options
context:
space:
mode:
authorJakob Odersky <jakob@odersky.com>2016-04-25 15:00:09 -0700
committerJakob Odersky <jakob@odersky.com>2016-05-24 14:13:14 -0700
commitda1774df8d2921073304481e93278ddfd997aae4 (patch)
tree14c5594fb43799a6e9afc10e0738760eac9f6ef2 /src/compiler/scala/tools/nsc/javac/JavaParsers.scala
parent0a344bd7ba04358cb106ac19a2418205d87905ea (diff)
downloadscala-da1774df8d2921073304481e93278ddfd997aae4.tar.gz
scala-da1774df8d2921073304481e93278ddfd997aae4.tar.bz2
scala-da1774df8d2921073304481e93278ddfd997aae4.zip
Parse java comments in scaladoc
Diffstat (limited to 'src/compiler/scala/tools/nsc/javac/JavaParsers.scala')
-rw-r--r--src/compiler/scala/tools/nsc/javac/JavaParsers.scala13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/compiler/scala/tools/nsc/javac/JavaParsers.scala b/src/compiler/scala/tools/nsc/javac/JavaParsers.scala
index cc851b6330..13ffe631f4 100644
--- a/src/compiler/scala/tools/nsc/javac/JavaParsers.scala
+++ b/src/compiler/scala/tools/nsc/javac/JavaParsers.scala
@@ -135,6 +135,11 @@ trait JavaParsers extends ast.parser.ParsersCommon with JavaScanners {
DefDef(Modifiers(Flags.JAVA), nme.CONSTRUCTOR, List(), List(vparams), TypeTree(), blankExpr)
}
+ /** A hook for joining the comment associated with a definition.
+ * Overridden by scaladoc.
+ */
+ def joinComment(trees: => List[Tree]): List[Tree] = trees
+
// ------------- general parsing ---------------------------
/** skip parent or brace enclosed sequence of things */
@@ -739,7 +744,7 @@ trait JavaParsers extends ast.parser.ParsersCommon with JavaScanners {
}
val sdefs = statics.toList
val idefs = members.toList ::: (sdefs flatMap forwarders)
- (sdefs, idefs)
+ (sdefs, joinComment(idefs))
}
def annotationParents = List(
gen.scalaAnnotationDot(tpnme.Annotation),
@@ -833,10 +838,10 @@ trait JavaParsers extends ast.parser.ParsersCommon with JavaScanners {
}
def typeDecl(mods: Modifiers): List[Tree] = in.token match {
- case ENUM => enumDecl(mods)
- case INTERFACE => interfaceDecl(mods)
+ case ENUM => joinComment(enumDecl(mods))
+ case INTERFACE => joinComment(interfaceDecl(mods))
case AT => annotationDecl(mods)
- case CLASS => classDecl(mods)
+ case CLASS => joinComment(classDecl(mods))
case _ => in.nextToken(); syntaxError("illegal start of type declaration", skipIt = true); List(errorTypeTree)
}