changeset 7776:10f1c713f4f0

Fixed duplicate generation of @Override annotations.
author Christian Humer <christian.humer@gmail.com>
date Mon, 11 Feb 2013 14:21:18 +0100
parents e8c71b8562e3
children ca51efac4d57
files graal/com.oracle.truffle.codegen.processor/src/com/oracle/truffle/codegen/processor/codewriter/GenerateOverrideVisitor.java
diffstat 1 files changed, 8 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.truffle.codegen.processor/src/com/oracle/truffle/codegen/processor/codewriter/GenerateOverrideVisitor.java	Mon Feb 11 10:41:29 2013 +0100
+++ b/graal/com.oracle.truffle.codegen.processor/src/com/oracle/truffle/codegen/processor/codewriter/GenerateOverrideVisitor.java	Mon Feb 11 14:21:18 2013 +0100
@@ -27,6 +27,7 @@
 import javax.lang.model.element.*;
 import javax.lang.model.type.*;
 
+import com.oracle.truffle.codegen.processor.*;
 import com.oracle.truffle.codegen.processor.ast.*;
 
 public class GenerateOverrideVisitor extends CodeElementScanner<Void, Void> {
@@ -43,6 +44,13 @@
             String name = e.getSimpleName().toString();
             TypeMirror[] params = e.getParameterTypes();
 
+            for (AnnotationMirror mirror : e.getAnnotationMirrors()) {
+                if (Utils.typeEquals(overrideType, mirror.getAnnotationType())) {
+                    // already declared (may happen if method copied from super class)
+                    return super.visitExecutable(e, p);
+                }
+            }
+
             if (isDeclaredMethodInSuperType(e.getEnclosingClass(), name, params)) {
                 e.addAnnotationMirror(new CodeAnnotationMirror(overrideType));
             }