# HG changeset patch # User Christian Humer # Date 1360588878 -3600 # Node ID 10f1c713f4f05a48c21519ba95af34a0736576d1 # Parent e8c71b8562e3bdc6b4935df928532bab685fab3b Fixed duplicate generation of @Override annotations. diff -r e8c71b8562e3 -r 10f1c713f4f0 graal/com.oracle.truffle.codegen.processor/src/com/oracle/truffle/codegen/processor/codewriter/GenerateOverrideVisitor.java --- 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 { @@ -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)); }