summaryrefslogtreecommitdiffstats
path: root/weaver
diff options
context:
space:
mode:
authoraclement <aclement>2006-09-12 08:47:04 +0000
committeraclement <aclement>2006-09-12 08:47:04 +0000
commit7a4256df61f2d23aefb855ffb0ad6c6bfb2d36d6 (patch)
treea0869298ee09c8b8443f0e0de5624ddea1ed9d7c /weaver
parent6a20efc0725fa4d87c7766478f5e4f06583762c0 (diff)
downloadaspectj-7a4256df61f2d23aefb855ffb0ad6c6bfb2d36d6.tar.gz
aspectj-7a4256df61f2d23aefb855ffb0ad6c6bfb2d36d6.zip
testcode and fixes for 156962: Problems with @Deprecated in method signatures
Diffstat (limited to 'weaver')
-rw-r--r--weaver/src/org/aspectj/weaver/bcel/BcelField.java3
-rw-r--r--weaver/src/org/aspectj/weaver/bcel/BcelMethod.java3
-rw-r--r--weaver/src/org/aspectj/weaver/patterns/HasMemberTypePattern.java4
3 files changed, 6 insertions, 4 deletions
diff --git a/weaver/src/org/aspectj/weaver/bcel/BcelField.java b/weaver/src/org/aspectj/weaver/bcel/BcelField.java
index efb7d1f51..b2a7e6b0d 100644
--- a/weaver/src/org/aspectj/weaver/bcel/BcelField.java
+++ b/weaver/src/org/aspectj/weaver/bcel/BcelField.java
@@ -131,8 +131,7 @@ final class BcelField extends ResolvedMemberImpl {
annotations = new AnnotationX[annos.length];
for (int i = 0; i < annos.length; i++) {
Annotation annotation = annos[i];
- ResolvedType rtx = world.resolve(UnresolvedType.forName(annotation.getTypeName()));
- annotationTypes.add(rtx);
+ annotationTypes.add(world.resolve(UnresolvedType.forSignature(annotation.getTypeSignature())));
annotations[i] = new AnnotationX(annotation,world);
}
}
diff --git a/weaver/src/org/aspectj/weaver/bcel/BcelMethod.java b/weaver/src/org/aspectj/weaver/bcel/BcelMethod.java
index d5c604863..2a2c94b1d 100644
--- a/weaver/src/org/aspectj/weaver/bcel/BcelMethod.java
+++ b/weaver/src/org/aspectj/weaver/bcel/BcelMethod.java
@@ -281,8 +281,7 @@ final class BcelMethod extends ResolvedMemberImpl {
annotations = new AnnotationX[annos.length];
for (int i = 0; i < annos.length; i++) {
Annotation annotation = annos[i];
- ResolvedType rtx = world.resolve(UnresolvedType.forName(annotation.getTypeName()));
- annotationTypes.add(rtx);
+ annotationTypes.add(world.resolve(UnresolvedType.forSignature(annotation.getTypeSignature())));
annotations[i] = new AnnotationX(annotation,world);
}
}
diff --git a/weaver/src/org/aspectj/weaver/patterns/HasMemberTypePattern.java b/weaver/src/org/aspectj/weaver/patterns/HasMemberTypePattern.java
index 49d9fb937..9c966e6c7 100644
--- a/weaver/src/org/aspectj/weaver/patterns/HasMemberTypePattern.java
+++ b/weaver/src/org/aspectj/weaver/patterns/HasMemberTypePattern.java
@@ -49,12 +49,15 @@ public class HasMemberTypePattern extends TypePattern {
return hasMethod(type);
}
}
+
+ private final static String declareAtPrefix = "ajc$declare_at";
private boolean hasField(ResolvedType type) {
// TODO what about ITDs
World world = type.getWorld();
for (Iterator iter = type.getFields(); iter.hasNext();) {
Member field = (Member) iter.next();
+ if (field.getName().startsWith(declareAtPrefix)) continue;
if (signaturePattern.matches(field, type.getWorld(), false)) {
if (field.getDeclaringType().resolve(world) != type) {
if (Modifier.isPrivate(field.getModifiers())) continue;
@@ -70,6 +73,7 @@ public class HasMemberTypePattern extends TypePattern {
World world = type.getWorld();
for (Iterator iter = type.getMethods(); iter.hasNext();) {
Member method = (Member) iter.next();
+ if (method.getName().startsWith(declareAtPrefix)) continue;
if (signaturePattern.matches(method, type.getWorld(), false)) {
if (method.getDeclaringType().resolve(world) != type) {
if (Modifier.isPrivate(method.getModifiers())) continue;