diff options
author | jhugunin <jhugunin> | 2002-12-30 20:30:11 +0000 |
---|---|---|
committer | jhugunin <jhugunin> | 2002-12-30 20:30:11 +0000 |
commit | 2a76e2727ab817e2e7af3676511a87c08809de97 (patch) | |
tree | b4229cd492bdfbd2e45241938cd78f3329ad7e5a | |
parent | 8bc24339ac5a28c60f53f9f178635e66d8729800 (diff) | |
download | aspectj-2a76e2727ab817e2e7af3676511a87c08809de97.tar.gz aspectj-2a76e2727ab817e2e7af3676511a87c08809de97.zip |
not allowed on aspects
-rw-r--r-- | org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/InterTypeConstructorDeclaration.java | 1 | ||||
-rw-r--r-- | weaver/src/org/aspectj/weaver/NewConstructorTypeMunger.java | 8 |
2 files changed, 9 insertions, 0 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 31ce89eef..02970de2d 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 @@ -211,6 +211,7 @@ public class InterTypeConstructorDeclaration extends InterTypeDeclaration { NewConstructorTypeMunger myMunger = new NewConstructorTypeMunger(signature, syntheticInterMember, null, null); setMunger(myMunger); + myMunger.check(world); this.selector = binding.selector = NameMangler.postIntroducedConstructor( diff --git a/weaver/src/org/aspectj/weaver/NewConstructorTypeMunger.java b/weaver/src/org/aspectj/weaver/NewConstructorTypeMunger.java index 9b23de08d..345fbffcb 100644 --- a/weaver/src/org/aspectj/weaver/NewConstructorTypeMunger.java +++ b/weaver/src/org/aspectj/weaver/NewConstructorTypeMunger.java @@ -16,6 +16,7 @@ package org.aspectj.weaver; import java.io.*; import java.util.Set; +import org.aspectj.bridge.IMessage; import org.aspectj.weaver.ResolvedTypeMunger.Kind; public class NewConstructorTypeMunger extends ResolvedTypeMunger { @@ -74,5 +75,12 @@ public class NewConstructorTypeMunger extends ResolvedTypeMunger { if (ResolvedTypeX.matches(ret, member)) return getSignature(); return super.getMatchingSyntheticMember(member, aspectType); } + + public void check(World world) { + if (getSignature().getDeclaringType().isAspect(world)) { + world.showMessage(IMessage.ERROR, "can't declare constructor on an aspect", + getSignature().getSourceLocation(), null); + } + } } |