aboutsummaryrefslogtreecommitdiffstats
path: root/org.aspectj.ajdt.core/src
diff options
context:
space:
mode:
authorjhugunin <jhugunin>2002-12-19 18:50:54 +0000
committerjhugunin <jhugunin>2002-12-19 18:50:54 +0000
commitc86b373e28c6b0c77c90eebddf693db9df8f9ccb (patch)
tree1c7fbcbdc987e6cc3a80ff7e785b343bf7aac9a4 /org.aspectj.ajdt.core/src
parenteb30dcd9e8092d32b51b21bd7fb3ddb92b71a522 (diff)
downloadaspectj-c86b373e28c6b0c77c90eebddf693db9df8f9ccb.tar.gz
aspectj-c86b373e28c6b0c77c90eebddf693db9df8f9ccb.zip
fixed error handling for illegal overriding with inter-type members
Diffstat (limited to 'org.aspectj.ajdt.core/src')
-rw-r--r--org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/InterTypeConstructorDeclaration.java2
-rw-r--r--org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/InterTypeDeclaration.java9
-rw-r--r--org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/InterTypeFieldDeclaration.java2
-rw-r--r--org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/InterTypeMethodDeclaration.java2
-rw-r--r--org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/lookup/EclipseObjectType.java6
5 files changed, 15 insertions, 6 deletions
diff --git a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/InterTypeConstructorDeclaration.java b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/InterTypeConstructorDeclaration.java
index 286161689..d32e2c009 100644
--- a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/InterTypeConstructorDeclaration.java
+++ b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/InterTypeConstructorDeclaration.java
@@ -210,7 +210,7 @@ public class InterTypeConstructorDeclaration extends InterTypeDeclaration {
NewConstructorTypeMunger myMunger =
new NewConstructorTypeMunger(signature, syntheticInterMember, null, null);
- this.munger = myMunger;
+ setMunger(myMunger);
this.selector = binding.selector =
NameMangler.postIntroducedConstructor(
diff --git a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/InterTypeDeclaration.java b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/InterTypeDeclaration.java
index a9a73337a..fba705bc6 100644
--- a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/InterTypeDeclaration.java
+++ b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/InterTypeDeclaration.java
@@ -17,6 +17,7 @@ import java.lang.reflect.Modifier;
import java.util.*;
import org.aspectj.ajdt.internal.compiler.lookup.*;
+import org.aspectj.ajdt.internal.core.builder.EclipseSourceContext;
import org.aspectj.weaver.*;
import org.eclipse.jdt.internal.compiler.*;
import org.eclipse.jdt.internal.compiler.CompilationResult;
@@ -113,8 +114,14 @@ public abstract class InterTypeDeclaration extends MethodDeclaration {
return l;
}
- protected int generateInfoAttributes(ClassFile classFile) {
+ protected void setMunger(ResolvedTypeMunger munger) {
munger.getSignature().setPosition(sourceStart, sourceEnd);
+ munger.getSignature().setSourceContext(new EclipseSourceContext(compilationResult));
+ this.munger = munger;
+ }
+
+ protected int generateInfoAttributes(ClassFile classFile) {
+ //munger.getSignature().setPosition(sourceStart, sourceEnd);
//System.out.println("generating effective for " + this);
List l;;
diff --git a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/InterTypeFieldDeclaration.java b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/InterTypeFieldDeclaration.java
index 0ed6b63c9..86d5c9c8b 100644
--- a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/InterTypeFieldDeclaration.java
+++ b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/InterTypeFieldDeclaration.java
@@ -123,7 +123,7 @@ public class InterTypeFieldDeclaration extends InterTypeDeclaration {
new String(declaredSelector), TypeX.NONE);
NewFieldTypeMunger myMunger = new NewFieldTypeMunger(sig, null);
- this.munger = myMunger;
+ setMunger(myMunger);
ResolvedTypeX aspectType = world.fromEclipse(classScope.referenceContext.binding);
ResolvedMember me =
myMunger.getInitMethod(aspectType);
diff --git a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/InterTypeMethodDeclaration.java b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/InterTypeMethodDeclaration.java
index 8b54aaf1e..899d5ec6b 100644
--- a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/InterTypeMethodDeclaration.java
+++ b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/InterTypeMethodDeclaration.java
@@ -81,7 +81,7 @@ public class InterTypeMethodDeclaration extends InterTypeDeclaration {
EclipseWorld.fromBindings(binding.parameters));
NewMethodTypeMunger myMunger = new NewMethodTypeMunger(sig, null);
- this.munger = myMunger;
+ setMunger(myMunger);
ResolvedTypeX aspectType = world.fromEclipse(classScope.referenceContext.binding);
ResolvedMember me =
myMunger.getDispatchMethod(aspectType);
diff --git a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/lookup/EclipseObjectType.java b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/lookup/EclipseObjectType.java
index dde1a95bb..f0c37813b 100644
--- a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/lookup/EclipseObjectType.java
+++ b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/lookup/EclipseObjectType.java
@@ -149,9 +149,11 @@ public class EclipseObjectType extends ResolvedTypeX.Name {
}
}
- //XXX now check all inherited pointcuts to be sure that they're handled reasonably
-
+ //now check all inherited pointcuts to be sure that they're handled reasonably
+ if (!isAspect()) return;
+// for (Iterator i = getSuperclass().getFields(); )
+// XXX
}