diff options
author | Jakob Odersky <jakob@odersky.com> | 2016-04-25 15:00:09 -0700 |
---|---|---|
committer | Jakob Odersky <jakob@odersky.com> | 2016-05-24 14:13:14 -0700 |
commit | da1774df8d2921073304481e93278ddfd997aae4 (patch) | |
tree | 14c5594fb43799a6e9afc10e0738760eac9f6ef2 /src/compiler/scala/tools/nsc/javac/JavaParsers.scala | |
parent | 0a344bd7ba04358cb106ac19a2418205d87905ea (diff) | |
download | scala-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.scala | 13 |
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) } |