From 2a76e2727ab817e2e7af3676511a87c08809de97 Mon Sep 17 00:00:00 2001 From: jhugunin Date: Mon, 30 Dec 2002 20:30:11 +0000 Subject: [PATCH] not allowed on aspects --- .../compiler/ast/InterTypeConstructorDeclaration.java | 1 + .../src/org/aspectj/weaver/NewConstructorTypeMunger.java | 8 ++++++++ 2 files changed, 9 insertions(+) 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); + } + } } -- 2.39.5