From de51a678544b34ccfbdab7be682785bfa5755f95 Mon Sep 17 00:00:00 2001 From: aclement Date: Thu, 10 Mar 2005 17:48:35 +0000 Subject: [PATCH] Declare annotation: Doesnt report errors for annotations attached incorrectly (due to use of @target) to ajc$declare_ methods. --- .../internal/compiler/problem/AjProblemReporter.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/problem/AjProblemReporter.java b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/problem/AjProblemReporter.java index 63648a82f..34831fd82 100644 --- a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/problem/AjProblemReporter.java +++ b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/problem/AjProblemReporter.java @@ -30,7 +30,6 @@ import org.aspectj.org.eclipse.jdt.internal.compiler.ast.Annotation; import org.aspectj.org.eclipse.jdt.internal.compiler.ast.ExplicitConstructorCall; import org.aspectj.org.eclipse.jdt.internal.compiler.impl.CompilerOptions; import org.aspectj.org.eclipse.jdt.internal.compiler.impl.ReferenceContext; -import org.aspectj.org.eclipse.jdt.internal.compiler.lookup.Binding; import org.aspectj.org.eclipse.jdt.internal.compiler.lookup.MethodBinding; import org.aspectj.org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding; import org.aspectj.org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding; @@ -43,6 +42,7 @@ import org.aspectj.weaver.ConcreteTypeMunger; import org.aspectj.weaver.ResolvedMember; import org.aspectj.weaver.ResolvedTypeX; import org.aspectj.weaver.Shadow; +import org.aspectj.weaver.patterns.DeclareAnnotation; import org.aspectj.weaver.patterns.DeclareSoft; /** @@ -231,10 +231,17 @@ public class AjProblemReporter extends ProblemReporter { long metaTagBits = annotation.resolvedType.getAnnotationTagBits(); // could be forward reference if (name.indexOf("interField") != -1) { if ((metaTagBits & TagBits.AnnotationForField) != 0) return; - } else if (name.indexOf("InterConstructor") != -1) { + } else if (name.indexOf("InterConstructor") != -1) { // ??? Should that be Upper case 'I'? if ((metaTagBits & TagBits.AnnotationForConstructor) != 0) return; } else if (name.indexOf("interMethod") != -1) { if ((metaTagBits & TagBits.AnnotationForMethod) != 0) return; + } else if (name.indexOf("declare_"+DeclareAnnotation.AT_TYPE+"_")!=-1) { + if ((metaTagBits & TagBits.AnnotationForAnnotationType)!=0 || + (metaTagBits & TagBits.AnnotationForType)!=0) return; + } else if (name.indexOf("declare_"+DeclareAnnotation.AT_FIELD+"_")!=-1) { + if ((metaTagBits & TagBits.AnnotationForField)!=0) return; + } else if (name.indexOf("declare_"+DeclareAnnotation.AT_CONSTRUCTOR+"_")!=-1) { + if ((metaTagBits & TagBits.AnnotationForConstructor)!=0) return; } } } -- 2.39.5