diff options
-rw-r--r-- | org.aspectj.ajdt.core/src/main/java/org/aspectj/ajdt/internal/compiler/lookup/EclipseFactory.java | 10 |
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) { |