From 9894a3d4826ef3480a53aa7cd8d86804af3f1fdd Mon Sep 17 00:00:00 2001 From: jhugunin Date: Tue, 22 Jul 2003 22:51:34 +0000 Subject: fix and expanded tests for Bugzilla Bug 39462 Compiler crashes in jar and cflow --- weaver/src/org/aspectj/weaver/ResolvedTypeX.java | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) (limited to 'weaver/src') 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; } -- cgit v1.2.3