summaryrefslogtreecommitdiff
path: root/src/compiler/scala/tools/nsc/symtab
diff options
context:
space:
mode:
authormihaylov <mihaylov@epfl.ch>2006-06-26 12:47:51 +0000
committermihaylov <mihaylov@epfl.ch>2006-06-26 12:47:51 +0000
commitb39db081ff93e1ca88aa8d11c6234e5857193049 (patch)
tree67cc931945bda1c1849b41d5b5123f91d9f572eb /src/compiler/scala/tools/nsc/symtab
parent499580a1ed4785979e4c4cc1270d345c9995fa9c (diff)
downloadscala-b39db081ff93e1ca88aa8d11c6234e5857193049.tar.gz
scala-b39db081ff93e1ca88aa8d11c6234e5857193049.tar.bz2
scala-b39db081ff93e1ca88aa8d11c6234e5857193049.zip
Improved attribute checks
Diffstat (limited to 'src/compiler/scala/tools/nsc/symtab')
-rw-r--r--src/compiler/scala/tools/nsc/symtab/Definitions.scala2
-rw-r--r--src/compiler/scala/tools/nsc/symtab/StdNames.scala1
-rw-r--r--src/compiler/scala/tools/nsc/symtab/classfile/ClassfileParser.scala6
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)