diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/compiler/scala/tools/nsc/symtab/classfile/Pickler.scala | 14 |
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) } |