aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--org.aspectj.ajdt.core/src/main/java/org/aspectj/ajdt/internal/compiler/lookup/EclipseFactory.java10
1 files changed, 8 insertions, 2 deletions
diff --git a/org.aspectj.ajdt.core/src/main/java/org/aspectj/ajdt/internal/compiler/lookup/EclipseFactory.java b/org.aspectj.ajdt.core/src/main/java/org/aspectj/ajdt/internal/compiler/lookup/EclipseFactory.java
index 062f04fd2..47357df67 100644
--- a/org.aspectj.ajdt.core/src/main/java/org/aspectj/ajdt/internal/compiler/lookup/EclipseFactory.java
+++ b/org.aspectj.ajdt.core/src/main/java/org/aspectj/ajdt/internal/compiler/lookup/EclipseFactory.java
@@ -1100,10 +1100,16 @@ public class EclipseFactory {
typexToBinding.put(fromBinding(binding), binding);
}
- public void addTypeBindingAndStoreInWorld(TypeBinding binding) {
+ public void addTypeBindingAndStoreInWorld(SourceTypeBinding binding) {
UnresolvedType ut = fromBinding(binding);
typexToBinding.put(ut, binding);
- world.lookupOrCreateName(ut);
+ ReferenceType rt = world.lookupOrCreateName(ut);
+ // Ensure a delegate is set (#558995)
+ // TODO the delegate is perhaps not 100% ideal as the decl is the aspect?
+ TypeDeclaration decl = binding.scope.referenceContext;
+ CompilationUnitDeclaration referenceCompilationUnit = binding.scope.referenceCompilationUnit();
+ EclipseSourceType t = new EclipseSourceType(rt, this, binding, decl, referenceCompilationUnit);
+ rt.setDelegate(t);
}
public Shadow makeShadow(ASTNode location, ReferenceContext context) {