diff options
author | aclement <aclement> | 2005-10-06 14:08:11 +0000 |
---|---|---|
committer | aclement <aclement> | 2005-10-06 14:08:11 +0000 |
commit | c53508700eab4ec1336ff60101e98aa42ba180c6 (patch) | |
tree | b59cdc0df40303a00e703db67e1465b20898f53f /org.aspectj.ajdt.core/src | |
parent | 304a1fbfb42b3c48c33a2136482c26141c73f0a5 (diff) | |
download | aspectj-c53508700eab4ec1336ff60101e98aa42ba180c6.tar.gz aspectj-c53508700eab4ec1336ff60101e98aa42ba180c6.zip |
testcases and fix for binary weaving ITDs!!!!!!!!!!! (pr85132, etc,etc)
Diffstat (limited to 'org.aspectj.ajdt.core/src')
2 files changed, 12 insertions, 6 deletions
diff --git a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/lookup/AjLookupEnvironment.java b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/lookup/AjLookupEnvironment.java index cb6f5e4ba..e8b7bbc17 100644 --- a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/lookup/AjLookupEnvironment.java +++ b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/lookup/AjLookupEnvironment.java @@ -55,8 +55,8 @@ import org.aspectj.org.eclipse.jdt.internal.compiler.problem.ProblemReporter; import org.aspectj.weaver.AsmRelationshipProvider; import org.aspectj.weaver.ConcreteTypeMunger; import org.aspectj.weaver.ReferenceType; -import org.aspectj.weaver.ResolvedTypeMunger; import org.aspectj.weaver.ResolvedType; +import org.aspectj.weaver.ResolvedTypeMunger; import org.aspectj.weaver.UnresolvedType; import org.aspectj.weaver.WeaverMessages; import org.aspectj.weaver.WeaverStateInfo; @@ -439,7 +439,7 @@ public class AjLookupEnvironment extends LookupEnvironment implements AnonymousC ResolvedType onType = factory.fromEclipse(sourceType); // AMC we shouldn't need this when generic sigs are fixed?? if (onType.isRawType()) onType = onType.getGenericType(); - + WeaverStateInfo info = onType.getWeaverState(); // this test isnt quite right - there will be a case where we fail to flag a problem @@ -453,7 +453,7 @@ public class AjLookupEnvironment extends LookupEnvironment implements AnonymousC CompilationAndWeavingContext.leavingPhase(tok); return; } - + // Check if the type we are looking at is the topMostImplementor of a dangerous interface - // report a problem if it is. for (Iterator i = dangerousInterfaces.entrySet().iterator(); i.hasNext();) { @@ -587,9 +587,9 @@ public class AjLookupEnvironment extends LookupEnvironment implements AnonymousC weaveInterTypeDeclarations((SourceTypeBinding) memberTypes[i], typeMungers, declareParents,declareAnnotationOnTypes, false); } } - CompilationAndWeavingContext.leavingPhase(tok); - } - + CompilationAndWeavingContext.leavingPhase(tok); + } + /** * Called when we discover we are weaving intertype declarations on some type that has * an existing 'WeaverStateInfo' object - this is typically some previously woven type @@ -855,6 +855,8 @@ public class AjLookupEnvironment extends LookupEnvironment implements AnonymousC packageBinding, needFieldsAndMethods, accessRestriction); + factory.getWorld().validateType(factory.fromBinding(ret)); + // if you need the bytes to pass to validate, here they are:ClassFileReader)binaryType).getReferenceBytes() weaveInterTypeDeclarations(ret); return ret; } finally { diff --git a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/lookup/EclipseSourceType.java b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/lookup/EclipseSourceType.java index 91174eef5..92a78e408 100644 --- a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/lookup/EclipseSourceType.java +++ b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/lookup/EclipseSourceType.java @@ -497,4 +497,8 @@ public class EclipseSourceType extends AbstractReferenceTypeDelegate { tv.setRank(aTypeParameter.binding.rank); return tv; } + + public void ensureDelegateConsistent() { + // do nothing, currently these can't become inconsistent (phew) + } } |