summaryrefslogtreecommitdiffstats
path: root/weaver/src
diff options
context:
space:
mode:
authorjhugunin <jhugunin>2003-07-22 22:51:34 +0000
committerjhugunin <jhugunin>2003-07-22 22:51:34 +0000
commit9894a3d4826ef3480a53aa7cd8d86804af3f1fdd (patch)
tree74e1f791f1edad64aaa894da598f653b0a1743f2 /weaver/src
parent026b2728aef846823419ebffceb57fe8161e3d15 (diff)
downloadaspectj-9894a3d4826ef3480a53aa7cd8d86804af3f1fdd.tar.gz
aspectj-9894a3d4826ef3480a53aa7cd8d86804af3f1fdd.zip
fix and expanded tests for Bugzilla Bug 39462
Compiler crashes in jar and cflow
Diffstat (limited to 'weaver/src')
-rw-r--r--weaver/src/org/aspectj/weaver/ResolvedTypeX.java18
1 files changed, 17 insertions, 1 deletions
diff --git a/weaver/src/org/aspectj/weaver/ResolvedTypeX.java b/weaver/src/org/aspectj/weaver/ResolvedTypeX.java
index 9de2348ea..12bab5521 100644
--- a/weaver/src/org/aspectj/weaver/ResolvedTypeX.java
+++ b/weaver/src/org/aspectj/weaver/ResolvedTypeX.java
@@ -372,7 +372,7 @@ public abstract class ResolvedTypeX extends TypeX {
private final Collection collectShadowMungers() {
- if (! this.isAspect() || this.isAbstract()) return Collections.EMPTY_LIST;
+ if (! this.isAspect() || this.isAbstract() || this.doesNotExposeShadowMungers()) return Collections.EMPTY_LIST;
ArrayList acc = new ArrayList();
final Iterators.Filter dupFilter = Iterators.dupFilter();
@@ -393,6 +393,10 @@ public abstract class ResolvedTypeX extends TypeX {
return acc;
}
+ protected boolean doesNotExposeShadowMungers() {
+ return false;
+ }
+
public PerClause getPerClause() { return null; }
protected Collection getDeclares() {
return Collections.EMPTY_LIST;
@@ -633,6 +637,10 @@ public abstract class ResolvedTypeX extends TypeX {
public void setStartPos(int startPos) {
this.startPos = startPos;
}
+
+ public boolean doesNotExposeShadowMungers() {
+ return delegate.doesNotExposeShadowMungers();
+ }
}
@@ -682,6 +690,14 @@ public abstract class ResolvedTypeX extends TypeX {
// return sourceContext;
// }
+ /**
+ * Designed to be overriden by EclipseType to disable collection of shadow mungers
+ * during pre-weave compilation phase
+ */
+ public boolean doesNotExposeShadowMungers() {
+ return false;
+ }
+
public boolean isExposedToWeaver() {
return exposedToWeaver;
}