summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLex Spoon <lex@lexspoon.org>2007-05-23 11:39:33 +0000
committerLex Spoon <lex@lexspoon.org>2007-05-23 11:39:33 +0000
commit8813209807028929e6421a6328348af6d6ea46cf (patch)
treeb665199db941998b52201fc90d0af12bd52b9fd1 /src
parentf6eb33a2166d2df55ce65881b01e928bbbbcd324 (diff)
downloadscala-8813209807028929e6421a6328348af6d6ea46cf.tar.gz
scala-8813209807028929e6421a6328348af6d6ea46cf.tar.bz2
scala-8813209807028929e6421a6328348af6d6ea46cf.zip
fix to my previous fix for pickling annotation ...
fix to my previous fix for pickling annotation arguments
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)
}