diff options
author | jhugunin <jhugunin> | 2003-07-22 22:51:34 +0000 |
---|---|---|
committer | jhugunin <jhugunin> | 2003-07-22 22:51:34 +0000 |
commit | 9894a3d4826ef3480a53aa7cd8d86804af3f1fdd (patch) | |
tree | 74e1f791f1edad64aaa894da598f653b0a1743f2 /weaver/src | |
parent | 026b2728aef846823419ebffceb57fe8161e3d15 (diff) | |
download | aspectj-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.java | 18 |
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; } |