summaryrefslogtreecommitdiffstats
path: root/org.aspectj.ajdt.core/src
diff options
context:
space:
mode:
authoraclement <aclement>2005-10-06 14:08:11 +0000
committeraclement <aclement>2005-10-06 14:08:11 +0000
commitc53508700eab4ec1336ff60101e98aa42ba180c6 (patch)
treeb59cdc0df40303a00e703db67e1465b20898f53f /org.aspectj.ajdt.core/src
parent304a1fbfb42b3c48c33a2136482c26141c73f0a5 (diff)
downloadaspectj-c53508700eab4ec1336ff60101e98aa42ba180c6.tar.gz
aspectj-c53508700eab4ec1336ff60101e98aa42ba180c6.zip
testcases and fix for binary weaving ITDs!!!!!!!!!!! (pr85132, etc,etc)
Diffstat (limited to 'org.aspectj.ajdt.core/src')
-rw-r--r--org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/lookup/AjLookupEnvironment.java14
-rw-r--r--org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/lookup/EclipseSourceType.java4
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)
+ }
}