diff options
author | Lukas Rytz <lukas.rytz@epfl.ch> | 2009-12-14 12:01:53 +0000 |
---|---|---|
committer | Lukas Rytz <lukas.rytz@epfl.ch> | 2009-12-14 12:01:53 +0000 |
commit | 461c798dbf0653ed8d89d7bd6cbd94366f6572f7 (patch) | |
tree | a0abf0216ed107e2b6edcc7cc847fa39ae52d514 /src/compiler | |
parent | 1db89021e52efd946054c98add2f855d050453c4 (diff) | |
download | scala-461c798dbf0653ed8d89d7bd6cbd94366f6572f7.tar.gz scala-461c798dbf0653ed8d89d7bd6cbd94366f6572f7.tar.bz2 scala-461c798dbf0653ed8d89d7bd6cbd94366f6572f7.zip |
integration of java and scala deprecation
Diffstat (limited to 'src/compiler')
4 files changed, 10 insertions, 7 deletions
diff --git a/src/compiler/scala/tools/nsc/ast/NodePrinters.scala b/src/compiler/scala/tools/nsc/ast/NodePrinters.scala index 50d6a719a2..89f036f34b 100644 --- a/src/compiler/scala/tools/nsc/ast/NodePrinters.scala +++ b/src/compiler/scala/tools/nsc/ast/NodePrinters.scala @@ -76,7 +76,6 @@ abstract class NodePrinters { if (sym hasFlag MUTABLE ) buf.append(" | MUTABLE") if (sym hasFlag PARAM ) buf.append(" | PARAM") if (sym hasFlag PACKAGE ) buf.append(" | PACKAGE") - if (sym hasFlag DEPRECATED ) buf.append(" | DEPRECATED") if (sym hasFlag COVARIANT ) buf.append(" | COVARIANT") if (sym hasFlag CAPTURED ) buf.append(" | CAPTURED") diff --git a/src/compiler/scala/tools/nsc/backend/jvm/GenJVM.scala b/src/compiler/scala/tools/nsc/backend/jvm/GenJVM.scala index 8e41801d3f..fef14e940b 100644 --- a/src/compiler/scala/tools/nsc/backend/jvm/GenJVM.scala +++ b/src/compiler/scala/tools/nsc/backend/jvm/GenJVM.scala @@ -455,14 +455,18 @@ abstract class GenJVM extends SubComponent { } def addAnnotations(jmember: JMember, annotations: List[AnnotationInfo]) { - val toEmit = annotations.filter(shouldEmitAnnotation(_)) + if (annotations.exists(_.atp.typeSymbol == definitions.DeprecatedAttr)) { + val attr = jmember.getContext().JOtherAttribute( + jmember.getJClass(), jmember, nme.DeprecatedATTR.toString, + new Array[Byte](0), 0) + jmember.addAttribute(attr) + } + val toEmit = annotations.filter(shouldEmitAnnotation(_)) if (toEmit.isEmpty) return val buf: ByteBuffer = ByteBuffer.allocate(2048) - emitJavaAnnotations(jmember.getConstantPool, buf, toEmit) - addAttribute(jmember, nme.RuntimeAnnotationATTR, buf) } diff --git a/src/compiler/scala/tools/nsc/symtab/Flags.scala b/src/compiler/scala/tools/nsc/symtab/Flags.scala index 592007aef0..9901027db6 100644 --- a/src/compiler/scala/tools/nsc/symtab/Flags.scala +++ b/src/compiler/scala/tools/nsc/symtab/Flags.scala @@ -31,7 +31,7 @@ object Flags { final val MUTABLE = 0x00001000 // symbol is a mutable variable. final val PARAM = 0x00002000 // symbol is a (value or type) parameter to a method final val PACKAGE = 0x00004000 // symbol is a java package - final val DEPRECATED = 0x00008000 // symbol is deprecated. + // available: 0x00008000 final val COVARIANT = 0x00010000 // symbol is a covariant type variable final val CAPTURED = 0x00010000 // variable is accessed from nested function. @@ -306,7 +306,6 @@ object Flags { case MUTABLE => "<mutable>" case PARAM => "<param>" case PACKAGE => "<package>" - case DEPRECATED => "<deprecated>" case COVARIANT => "<covariant/captured/byname>" case CONTRAVARIANT => "<contravariant/label/inconstr/defaultinit>" diff --git a/src/compiler/scala/tools/nsc/symtab/classfile/ClassfileParser.scala b/src/compiler/scala/tools/nsc/symtab/classfile/ClassfileParser.scala index 89572fe90e..6f21e3fee9 100644 --- a/src/compiler/scala/tools/nsc/symtab/classfile/ClassfileParser.scala +++ b/src/compiler/scala/tools/nsc/symtab/classfile/ClassfileParser.scala @@ -772,7 +772,8 @@ abstract class ClassfileParser { sym.setFlag(BRIDGE) in.skip(attrLen) case nme.DeprecatedATTR => - sym.setFlag(DEPRECATED) + val arg = Literal(Constant("see corresponding Javadoc for more information.")) + sym.addAnnotation(AnnotationInfo(definitions.DeprecatedAttr.tpe, List(arg), List())) in.skip(attrLen) case nme.ConstantValueATTR => val c = pool.getConstant(in.nextChar) |