Browse Source

not allowed on aspects

tags/V_1_1_b5
jhugunin 21 years ago
parent
commit
2a76e2727a

+ 1
- 0
org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/InterTypeConstructorDeclaration.java View File

@@ -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(

+ 8
- 0
weaver/src/org/aspectj/weaver/NewConstructorTypeMunger.java View File

@@ -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);
}
}

}

Loading…
Cancel
Save