aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoraclement <aclement>2008-06-11 21:43:38 +0000
committeraclement <aclement>2008-06-11 21:43:38 +0000
commit0ed0600a2bb9c08b530120ffbf9b18dad613a108 (patch)
tree25b428f2d08b772a59250f02f845d7362e1f43ea
parentbe5fb95ac63fc225b7e2a17380052bb147af3b21 (diff)
downloadaspectj-0ed0600a2bb9c08b530120ffbf9b18dad613a108.tar.gz
aspectj-0ed0600a2bb9c08b530120ffbf9b18dad613a108.zip
234933: test and partial fix, just for adviceDidNotMatch so far.
-rw-r--r--weaver/src/org/aspectj/weaver/bcel/BcelWeaver.java2
-rw-r--r--weaver/src/org/aspectj/weaver/bcel/Utility.java13
2 files changed, 14 insertions, 1 deletions
diff --git a/weaver/src/org/aspectj/weaver/bcel/BcelWeaver.java b/weaver/src/org/aspectj/weaver/bcel/BcelWeaver.java
index 0b7880fed..68a32374c 100644
--- a/weaver/src/org/aspectj/weaver/bcel/BcelWeaver.java
+++ b/weaver/src/org/aspectj/weaver/bcel/BcelWeaver.java
@@ -1284,7 +1284,7 @@ public class BcelWeaver {
}
if (!(ba.getSignature() instanceof BcelMethod)
- || !Utility.isSuppressing((AnnotationX[])ba.getSignature().getAnnotations(),"adviceDidNotMatch")) {
+ || !Utility.isSuppressing(ba.getSignature(),"adviceDidNotMatch")) {
world.getLint().adviceDidNotMatch.signal(ba.getDeclaringAspect().toString(),
new SourceLocation(element.getSourceLocation().getSourceFile(),element.getSourceLocation().getLine()));//element.getSourceLocation());
}
diff --git a/weaver/src/org/aspectj/weaver/bcel/Utility.java b/weaver/src/org/aspectj/weaver/bcel/Utility.java
index 68193a060..6d2a98f71 100644
--- a/weaver/src/org/aspectj/weaver/bcel/Utility.java
+++ b/weaver/src/org/aspectj/weaver/bcel/Utility.java
@@ -728,6 +728,19 @@ public class Utility {
}
/**
+ * Checks for suppression specified on the member or on the declaring type of that member
+ */
+ public static boolean isSuppressing(Member member,String lintkey) {
+ boolean isSuppressing = Utility.isSuppressing(member.getAnnotations(), lintkey);
+ if (isSuppressing) return true;
+ UnresolvedType type = member.getDeclaringType();
+ if (type instanceof ResolvedType) {
+ return Utility.isSuppressing(((ResolvedType)type).getAnnotations(),lintkey);
+ }
+ return false;
+ }
+
+ /**
* Check if the annotations contain a SuppressAjWarnings annotation and
* if that annotation specifies that the given lint message (identified
* by its key) should be ignored.