diff options
author | mihaylov <mihaylov@epfl.ch> | 2006-06-26 12:47:51 +0000 |
---|---|---|
committer | mihaylov <mihaylov@epfl.ch> | 2006-06-26 12:47:51 +0000 |
commit | b39db081ff93e1ca88aa8d11c6234e5857193049 (patch) | |
tree | 67cc931945bda1c1849b41d5b5123f91d9f572eb /src/compiler/scala/tools/nsc/symtab | |
parent | 499580a1ed4785979e4c4cc1270d345c9995fa9c (diff) | |
download | scala-b39db081ff93e1ca88aa8d11c6234e5857193049.tar.gz scala-b39db081ff93e1ca88aa8d11c6234e5857193049.tar.bz2 scala-b39db081ff93e1ca88aa8d11c6234e5857193049.zip |
Improved attribute checks
Diffstat (limited to 'src/compiler/scala/tools/nsc/symtab')
3 files changed, 9 insertions, 0 deletions
diff --git a/src/compiler/scala/tools/nsc/symtab/Definitions.scala b/src/compiler/scala/tools/nsc/symtab/Definitions.scala index 49237b1af7..e743cff7f6 100644 --- a/src/compiler/scala/tools/nsc/symtab/Definitions.scala +++ b/src/compiler/scala/tools/nsc/symtab/Definitions.scala @@ -189,6 +189,8 @@ trait Definitions requires SymbolTable { // special attributes var SerializableAttr: Symbol = _ var BeanPropertyAttr: Symbol = _ + def AnnotationDefaultAttr: Symbol = + getClass("scala.tools.nsc.symtab.classfile.AnnotationDefault") def getModule(fullname: Name): Symbol = getModuleOrClass(fullname, true) diff --git a/src/compiler/scala/tools/nsc/symtab/StdNames.scala b/src/compiler/scala/tools/nsc/symtab/StdNames.scala index deecaeb63c..3f823c5f37 100644 --- a/src/compiler/scala/tools/nsc/symtab/StdNames.scala +++ b/src/compiler/scala/tools/nsc/symtab/StdNames.scala @@ -331,6 +331,7 @@ trait StdNames requires SymbolTable { val SignatureATTR = newTermName("Signature"); val ScalaSignatureATTR = newTermName("ScalaSig"); val JavaInterfaceATTR = newTermName("JacoInterface"); + val AnnotationDefaultATTR = newTermName("AnnotationDefault"); val RuntimeAnnotationATTR = newTermName("RuntimeVisibleAnnotations"); val ClassfileAnnotationATTR = newTermName("RuntimeInvisibleAnnotations"); diff --git a/src/compiler/scala/tools/nsc/symtab/classfile/ClassfileParser.scala b/src/compiler/scala/tools/nsc/symtab/classfile/ClassfileParser.scala index 28b620cbc7..6f95151693 100644 --- a/src/compiler/scala/tools/nsc/symtab/classfile/ClassfileParser.scala +++ b/src/compiler/scala/tools/nsc/symtab/classfile/ClassfileParser.scala @@ -24,6 +24,8 @@ import scala.collection.immutable.{Map, ListMap} import java.io.IOException +class AnnotationDefault extends Attribute; + abstract class ClassfileParser { def sourcePath : AbstractFile = null @@ -522,6 +524,10 @@ abstract class ClassfileParser { } staticModule.moduleClass.sourceFile = clazz.sourceFile } + case nme.AnnotationDefaultATTR => + sym.attributes = + Triple(definitions.AnnotationDefaultAttr.tpe, List(), List()) :: sym.attributes + in.skip(attrLen) case nme.RuntimeAnnotationATTR => //parseAnnotations(attrLen) in.skip(attrLen) |