summaryrefslogtreecommitdiffstats
path: root/org.aspectj.ajdt.core
diff options
context:
space:
mode:
authoracolyer <acolyer>2005-11-25 17:33:26 +0000
committeracolyer <acolyer>2005-11-25 17:33:26 +0000
commite988530d35b027b23a92aa964b0db686b6c8ca07 (patch)
tree609d628f5f551a0ea1f128a20684a35fb3d366f6 /org.aspectj.ajdt.core
parentdd1c1b6b4a127a9bdc51f958ca05c3260fa5c64c (diff)
downloadaspectj-e988530d35b027b23a92aa964b0db686b6c8ca07.tar.gz
aspectj-e988530d35b027b23a92aa964b0db686b6c8ca07.zip
tests and fix for pr115251
Diffstat (limited to 'org.aspectj.ajdt.core')
-rw-r--r--org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/lookup/EclipseFactory.java10
-rw-r--r--org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/lookup/EclipseSourceType.java4
-rw-r--r--org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/AjBuildManager.java3
3 files changed, 15 insertions, 2 deletions
diff --git a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/lookup/EclipseFactory.java b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/lookup/EclipseFactory.java
index f87d388e4..9df8b0382 100644
--- a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/lookup/EclipseFactory.java
+++ b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/lookup/EclipseFactory.java
@@ -964,7 +964,15 @@ public class EclipseFactory {
// give it the same delegate and link it to the raw type
if (binding.isGenericType()) {
UnresolvedType complexTx = fromBinding(binding); // fully aware of any generics info
- ReferenceType complexName = new ReferenceType(complexTx,world);//getWorld().lookupOrCreateName(complexTx);
+ ResolvedType cName = world.resolve(complexTx,true);
+ ReferenceType complexName = null;
+ if (cName != ResolvedType.MISSING) {
+ complexName = (ReferenceType) cName;
+ complexName = (ReferenceType) complexName.getGenericType();
+ if (complexName == null) complexName = new ReferenceType(complexTx,world);
+ } else {
+ complexName = new ReferenceType(complexTx,world);
+ }
name.setGenericType(complexName);
complexName.setDelegate(t);
complexName.setSourceContext(t.getResolvedTypeX().getSourceContext());
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 d8df9e7b9..91eff5bd1 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
@@ -447,6 +447,10 @@ public class EclipseSourceType extends AbstractReferenceTypeDelegate {
// but we don't need this level of detail, and working with real per clauses
// at this stage of compilation is not worth the trouble
if (!isAnnotationStyleAspect()) {
+// if(declaration instanceof AspectDeclaration) {
+// PerClause pc = ((AspectDeclaration)declaration).perClause;
+// if (pc != null) return pc;
+// }
return new PerSingleton();
} else {
// for @Aspect, we do need the real kind though we don't need the real perClause
diff --git a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/AjBuildManager.java b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/AjBuildManager.java
index 622eb02d9..63ad260af 100644
--- a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/AjBuildManager.java
+++ b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/AjBuildManager.java
@@ -264,10 +264,11 @@ public class AjBuildManager implements IOutputClassFileNameProvider,IBinarySourc
// dealt with on the first call to processDelta - we are going through this loop
// again because in compiling something we found something else we needed to
// rebuild. But what case causes this?
- if (hereWeGoAgain)
+ if (hereWeGoAgain) {
if (buildConfig.isEmacsSymMode() || buildConfig.isGenerateModelMode())
if (AsmManager.attemptIncrementalModelRepairs)
AsmManager.getDefault().processDelta(files,state.addedFiles,state.deletedFiles);
+ }
}
if (!files.isEmpty()) {
CompilationAndWeavingContext.leavingPhase(ct);