diff options
author | jhugunin <jhugunin> | 2002-12-19 18:50:54 +0000 |
---|---|---|
committer | jhugunin <jhugunin> | 2002-12-19 18:50:54 +0000 |
commit | c86b373e28c6b0c77c90eebddf693db9df8f9ccb (patch) | |
tree | 1c7fbcbdc987e6cc3a80ff7e785b343bf7aac9a4 /org.aspectj.ajdt.core/src | |
parent | eb30dcd9e8092d32b51b21bd7fb3ddb92b71a522 (diff) | |
download | aspectj-c86b373e28c6b0c77c90eebddf693db9df8f9ccb.tar.gz aspectj-c86b373e28c6b0c77c90eebddf693db9df8f9ccb.zip |
fixed error handling for illegal overriding with inter-type members
Diffstat (limited to 'org.aspectj.ajdt.core/src')
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 } |