summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/compiler/scala/tools/nsc/symtab/classfile/Pickler.scala14
1 files changed, 11 insertions, 3 deletions
diff --git a/src/compiler/scala/tools/nsc/symtab/classfile/Pickler.scala b/src/compiler/scala/tools/nsc/symtab/classfile/Pickler.scala
index 259f4726b2..516ba3b0d7 100644
--- a/src/compiler/scala/tools/nsc/symtab/classfile/Pickler.scala
+++ b/src/compiler/scala/tools/nsc/symtab/classfile/Pickler.scala
@@ -289,9 +289,11 @@ abstract class Pickler extends SubComponent {
}
private def putAnnotationArg(arg: AnnotationArgument) {
- arg.constant match {
- case Some(c) => putConstant(c)
- case _ => putTree(arg.tree)
+ if(putEntry(arg)) {
+ arg.constant match {
+ case Some(c) => putConstant(c)
+ case _ => putTree(arg.tree)
+ }
}
}
@@ -606,6 +608,12 @@ abstract class Pickler extends SubComponent {
}
ATTRIBTREE
+ case arg:AnnotationArgument =>
+ arg.constant match {
+ case Some(c) => writeBody(c)
+ case None => writeBody(arg.tree)
+ }
+
case _ =>
throw new FatalError("bad entry: " + entry + " " + entry.getClass)
}