diff options
author | jhugunin <jhugunin> | 2003-01-21 19:01:43 +0000 |
---|---|---|
committer | jhugunin <jhugunin> | 2003-01-21 19:01:43 +0000 |
commit | d2b603683edc8747eebdb4d106c205dd9433da9f (patch) | |
tree | 2d1b572062cb444a77b0aecc7564297f1b657be8 /weaver | |
parent | 377c02631b475eb33c82f4f3ad7f97efd7a1bdb7 (diff) | |
download | aspectj-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.java | 11 |
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++) { |