summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormihaylov <mihaylov@epfl.ch>2006-08-16 08:35:13 +0000
committermihaylov <mihaylov@epfl.ch>2006-08-16 08:35:13 +0000
commitec74d7c7ece65e1025ccdc33d1ef9ca7f749904e (patch)
tree3e69d0fd3500c1394ca5b01d6ca43051ebf76146
parent0cad3ffca732704883511261739f99256f0091bf (diff)
downloadscala-ec74d7c7ece65e1025ccdc33d1ef9ca7f749904e.tar.gz
scala-ec74d7c7ece65e1025ccdc33d1ef9ca7f749904e.tar.bz2
scala-ec74d7c7ece65e1025ccdc33d1ef9ca7f749904e.zip
Improved the fix of bug #676 - only emit interf...
Improved the fix of bug #676 - only emit interface call if the target is Java annotation and not just arbitrary attribute
-rw-r--r--src/compiler/scala/tools/nsc/backend/jvm/GenJVM.scala3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/compiler/scala/tools/nsc/backend/jvm/GenJVM.scala b/src/compiler/scala/tools/nsc/backend/jvm/GenJVM.scala
index 27e347c66e..614c5ad874 100644
--- a/src/compiler/scala/tools/nsc/backend/jvm/GenJVM.scala
+++ b/src/compiler/scala/tools/nsc/backend/jvm/GenJVM.scala
@@ -702,7 +702,8 @@ abstract class GenJVM extends SubComponent {
style match {
case Dynamic =>
if (method.owner.hasFlag(Flags.INTERFACE) ||
- method.owner.isSubClass(definitions.AttributeClass))
+ (method.owner.hasFlag(Flags.JAVA) &&
+ method.owner.isSubClass(definitions.AttributeClass)))
jcode.emitINVOKEINTERFACE(owner,
javaName(method),
javaType(method).asInstanceOf[JMethodType])