diff options
author | aclement <aclement> | 2008-08-20 18:56:50 +0000 |
---|---|---|
committer | aclement <aclement> | 2008-08-20 18:56:50 +0000 |
commit | 9e8236201e7e67f5add224e61c915bab82eb4273 (patch) | |
tree | 19aaf391f715e6dc8027a49ecae79227cbf36734 /weaver/src | |
parent | 95f5dac42dd995f1c03162a2d43a5d69067e159d (diff) | |
download | aspectj-9e8236201e7e67f5add224e61c915bab82eb4273.tar.gz aspectj-9e8236201e7e67f5add224e61c915bab82eb4273.zip |
239539: test and fix: better message when cannot override pointcut due to it not being visible
Diffstat (limited to 'weaver/src')
-rw-r--r-- | weaver/src/org/aspectj/weaver/ResolvedType.java | 9 | ||||
-rw-r--r-- | weaver/src/org/aspectj/weaver/WeaverMessages.java | 1 | ||||
-rw-r--r-- | weaver/src/org/aspectj/weaver/weaver-messages.properties | 1 |
3 files changed, 11 insertions, 0 deletions
diff --git a/weaver/src/org/aspectj/weaver/ResolvedType.java b/weaver/src/org/aspectj/weaver/ResolvedType.java index a1ce07fa7..8bf8b117d 100644 --- a/weaver/src/org/aspectj/weaver/ResolvedType.java +++ b/weaver/src/org/aspectj/weaver/ResolvedType.java @@ -1882,6 +1882,15 @@ public abstract class ResolvedType extends UnresolvedType implements AnnotatedEl if (!isVisible(existing.getModifiers(), existing.getDeclaringType().resolve(getWorld()), this)) { + // if they intended to override it but it is not visible, give them a nicer message + if (existing.isAbstract() && conflictingSignature(existing,toAdd)) { + getWorld().showMessage( + IMessage.ERROR, + WeaverMessages.format(WeaverMessages.POINTCUT_NOT_VISIBLE, + existing.getDeclaringType().getName() + "." + existing.getName()+"()", this.getName()), + toAdd.getSourceLocation(),null); + j.remove(); + } continue; } if (conflictingSignature(existing, toAdd)) { diff --git a/weaver/src/org/aspectj/weaver/WeaverMessages.java b/weaver/src/org/aspectj/weaver/WeaverMessages.java index 00b2e1f01..5e86794a4 100644 --- a/weaver/src/org/aspectj/weaver/WeaverMessages.java +++ b/weaver/src/org/aspectj/weaver/WeaverMessages.java @@ -24,6 +24,7 @@ public class WeaverMessages { public static final String THIS_OR_TARGET_IN_DECLARE = "thisOrTargetInDeclare"; public static final String ABSTRACT_POINTCUT = "abstractPointcut"; public static final String POINCUT_NOT_CONCRETE = "abstractPointcutNotMadeConcrete"; + public static final String POINTCUT_NOT_VISIBLE = "pointcutNotVisible"; public static final String CONFLICTING_INHERITED_POINTCUTS = "conflictingInheritedPointcuts"; public static final String CIRCULAR_POINTCUT = "circularPointcutDeclaration"; public static final String CANT_FIND_POINTCUT = "cantFindPointcut"; diff --git a/weaver/src/org/aspectj/weaver/weaver-messages.properties b/weaver/src/org/aspectj/weaver/weaver-messages.properties index 77c9b0031..eced71a42 100644 --- a/weaver/src/org/aspectj/weaver/weaver-messages.properties +++ b/weaver/src/org/aspectj/weaver/weaver-messages.properties @@ -23,6 +23,7 @@ conflictingInheritedPointcuts=conflicting inherited pointcuts in {0} circularPointcutDeclaration=circular pointcut declaration involving: {0} cantFindPointcut=can''t find pointcut ''{0}'' on {1} exactTypePatternRequired=exact type pattern required +pointcutNotVisible=pointcut ''{0}'' is not visible from type ''{1}'' - cannot override cantBindType=can''t bind type name ''{0}'' wildcardTypePatternNotAllowed=wildcard type pattern not allowed, must use type name fieldCantBeVoid=fields cannot have a void type |