summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoraclement <aclement>2006-04-19 12:52:14 +0000
committeraclement <aclement>2006-04-19 12:52:14 +0000
commitedcb418c39b11e244cf70c9c68bc98419bdf8921 (patch)
tree75e7295de0875f8a6886af05abe2562d005889e6
parentf05e07fbdd07acc31c7c49b595da0fe3d32f0c79 (diff)
downloadaspectj-edcb418c39b11e244cf70c9c68bc98419bdf8921.tar.gz
aspectj-edcb418c39b11e244cf70c9c68bc98419bdf8921.zip
fix for 137479: better isSynthetic() logic
-rw-r--r--weaver/src/org/aspectj/weaver/bcel/BcelTypeMunger.java8
1 files changed, 5 insertions, 3 deletions
diff --git a/weaver/src/org/aspectj/weaver/bcel/BcelTypeMunger.java b/weaver/src/org/aspectj/weaver/bcel/BcelTypeMunger.java
index f055002f9..3a8b01c4b 100644
--- a/weaver/src/org/aspectj/weaver/bcel/BcelTypeMunger.java
+++ b/weaver/src/org/aspectj/weaver/bcel/BcelTypeMunger.java
@@ -199,9 +199,11 @@ public class BcelTypeMunger extends ConcreteTypeMunger {
if (!superMethod.getName().equals("<init>")) {
LazyMethodGen subMethod = findMatchingMethod(newParentTarget, superMethod);
if (subMethod!=null && !subMethod.isBridgeMethod()) { // FIXME asc is this safe for all bridge methods?
- cont = enforceDecpRule3_visibilityChanges(weaver, newParent, superMethod, subMethod) && cont;
- cont = enforceDecpRule4_compatibleReturnTypes(weaver, superMethod, subMethod) && cont;
- cont = enforceDecpRule5_cantChangeFromStaticToNonstatic(weaver,munger.getSourceLocation(),superMethod,subMethod) && cont;
+ if (!(subMethod.isSynthetic() && superMethod.isSynthetic())) {
+ cont = enforceDecpRule3_visibilityChanges(weaver, newParent, superMethod, subMethod) && cont;
+ cont = enforceDecpRule4_compatibleReturnTypes(weaver, superMethod, subMethod) && cont;
+ cont = enforceDecpRule5_cantChangeFromStaticToNonstatic(weaver,munger.getSourceLocation(),superMethod,subMethod) && cont;
+ }
}
}
}