aboutsummaryrefslogtreecommitdiffstats
path: root/weaver
diff options
context:
space:
mode:
authoraclement <aclement>2004-03-19 09:28:14 +0000
committeraclement <aclement>2004-03-19 09:28:14 +0000
commit0a017593dcbeab409c1634da87b3f500b848e903 (patch)
treed9bd4b1fe70e8816853fcd994cbc3dd81ed9f1f2 /weaver
parent5795b4afc617d5ed3ce9f9338ff59fe275bd56b0 (diff)
downloadaspectj-0a017593dcbeab409c1634da87b3f500b848e903.tar.gz
aspectj-0a017593dcbeab409c1634da87b3f500b848e903.zip
Fix for Bugzilla Bug 53012
declare precedence on a class should be a compile-time error
Diffstat (limited to 'weaver')
-rw-r--r--weaver/src/org/aspectj/weaver/patterns/DeclarePrecedence.java8
1 files changed, 8 insertions, 0 deletions
diff --git a/weaver/src/org/aspectj/weaver/patterns/DeclarePrecedence.java b/weaver/src/org/aspectj/weaver/patterns/DeclarePrecedence.java
index 4106abbc4..d7e190357 100644
--- a/weaver/src/org/aspectj/weaver/patterns/DeclarePrecedence.java
+++ b/weaver/src/org/aspectj/weaver/patterns/DeclarePrecedence.java
@@ -82,6 +82,14 @@ public class DeclarePrecedence extends Declare {
}
ResolvedTypeX exactType = pi.getExactType().resolve(scope.getWorld());
if (exactType == ResolvedTypeX.MISSING) continue;
+
+ // Cannot do a dec prec specifying a non-aspect types unless suffixed with a '+'
+ if (!exactType.isAspect() && !pi.isIncludeSubtypes()) {
+ scope.getWorld().showMessage(IMessage.ERROR,
+ "Non-aspect types can only be specified in a declare precedence statement when subtypes are included. Non-aspect type is : "+exactType.getName(),
+ pi.getSourceLocation(),null);
+ }
+
for (int j=0; j < patterns.size(); j++) {
if (j == i) continue;
TypePattern pj = patterns.get(j);