aboutsummaryrefslogtreecommitdiffstats
path: root/weaver
diff options
context:
space:
mode:
authorjhugunin <jhugunin>2003-01-21 19:01:43 +0000
committerjhugunin <jhugunin>2003-01-21 19:01:43 +0000
commitd2b603683edc8747eebdb4d106c205dd9433da9f (patch)
tree2d1b572062cb444a77b0aecc7564297f1b657be8 /weaver
parent377c02631b475eb33c82f4f3ad7f97efd7a1bdb7 (diff)
downloadaspectj-d2b603683edc8747eebdb4d106c205dd9433da9f.tar.gz
aspectj-d2b603683edc8747eebdb4d106c205dd9433da9f.zip
fix for Bugzilla Bug 29689
Declare precedence should not allow multiple * patterns
Diffstat (limited to 'weaver')
-rw-r--r--weaver/src/org/aspectj/weaver/patterns/DeclarePrecedence.java11
1 files changed, 10 insertions, 1 deletions
diff --git a/weaver/src/org/aspectj/weaver/patterns/DeclarePrecedence.java b/weaver/src/org/aspectj/weaver/patterns/DeclarePrecedence.java
index 837bbc7ce..cf0ff8d1a 100644
--- a/weaver/src/org/aspectj/weaver/patterns/DeclarePrecedence.java
+++ b/weaver/src/org/aspectj/weaver/patterns/DeclarePrecedence.java
@@ -65,10 +65,19 @@ public class DeclarePrecedence extends Declare {
public void resolve(IScope scope) {
patterns = patterns.resolveBindings(scope, Bindings.NONE, false, false);
+ boolean seenStar = false;
for (int i=0; i < patterns.size(); i++) {
TypePattern pi = patterns.get(i);
- if (pi.isStar()) continue;
+ if (pi.isStar()) {
+ if (seenStar) {
+ scope.getWorld().showMessage(IMessage.ERROR,
+ "circularity in declare dominates, '*' occurs more than once",
+ pi.getSourceLocation(), null);
+ }
+ seenStar = true;
+ continue;
+ }
ResolvedTypeX exactType = pi.getExactType().resolve(scope.getWorld());
if (exactType == ResolvedTypeX.MISSING) continue;
for (int j=0; j < patterns.size(); j++) {