public void doSupertypesFirst(ReferenceBinding rb,Collection yetToProcess) {
if (rb instanceof SourceTypeBinding) {
if (yetToProcess.contains(rb)) {
- collectAllITDsAndDeclares((SourceTypeBinding)rb, yetToProcess);
+ collectAllITDsAndDeclares((SourceTypeBinding)rb, yetToProcess);
}
} else if (rb instanceof ParameterizedTypeBinding) {
// If its a PTB we need to pull the SourceTypeBinding out of it.
- ParameterizedTypeBinding ptb = (ParameterizedTypeBinding)rb;
- if (ptb.type instanceof SourceTypeBinding && yetToProcess.contains(ptb.type)) {
- collectAllITDsAndDeclares((SourceTypeBinding)ptb.type, yetToProcess);
- }
+ ParameterizedTypeBinding ptb = (ParameterizedTypeBinding)rb;
+ if (ptb.type instanceof SourceTypeBinding && yetToProcess.contains(ptb.type)) {
+ collectAllITDsAndDeclares((SourceTypeBinding)ptb.type, yetToProcess);
+ }
}
}
/**
*/
private void collectAllITDsAndDeclares(SourceTypeBinding sourceType, Collection yetToProcess) {
// Look at the supertype first
- ContextToken tok = CompilationAndWeavingContext.enteringPhase(CompilationAndWeavingContext.COLLECTING_ITDS_AND_DECLARES, sourceType.sourceName);
-
+ //ContextToken tok = CompilationAndWeavingContext.enteringPhase(CompilationAndWeavingContext.COLLECTING_ITDS_AND_DECLARES, sourceType.sourceName);
+
+ yetToProcess.remove(sourceType);
// look out our direct supertype
doSupertypesFirst(sourceType.superclass(),yetToProcess);
buildInterTypeAndPerClause(sourceType.scope);
addCrosscuttingStructures(sourceType.scope);
- yetToProcess.remove(sourceType);
- CompilationAndWeavingContext.leavingPhase(tok);
+ //CompilationAndWeavingContext.leavingPhase(tok);
}
/**
--- /dev/null
+interface StatisticsType {
+}
+
+public class StatisticsTypeImpl implements StatisticsType {
+ static class UIStatisticsType extends UofwStatisticsType {
+ };
+
+ public static void main(String argz[]) {
+ System.out.println(new UIStatisticsType().toString());
+ }
+}
+
+class UofwStatisticsType extends StatisticsTypeImpl {
+}
\ No newline at end of file
import org.aspectj.testing.XMLBasedAjcTestCase;
public class Ajc152Tests extends org.aspectj.testing.XMLBasedAjcTestCase {
+
public void testAspectLibrariesAndASM_pr135001() { runTest("aspect libraries and asm");}
-
+ public void testStackOverflow_pr136258() { runTest("stack overflow");}
/////////////////////////////////////////
public static Test suite() {