diff options
Diffstat (limited to 'org.aspectj.matcher/src/org/aspectj/weaver/patterns/PatternParser.java')
-rw-r--r-- | org.aspectj.matcher/src/org/aspectj/weaver/patterns/PatternParser.java | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/org.aspectj.matcher/src/org/aspectj/weaver/patterns/PatternParser.java b/org.aspectj.matcher/src/org/aspectj/weaver/patterns/PatternParser.java index 106376aad..8f3068ac1 100644 --- a/org.aspectj.matcher/src/org/aspectj/weaver/patterns/PatternParser.java +++ b/org.aspectj.matcher/src/org/aspectj/weaver/patterns/PatternParser.java @@ -1174,9 +1174,15 @@ public class PatternParser { p.setLocation(sourceContext, startPos, endPos); // For optimized syntax that allows binding directly to annotation values (pr234943) if (maybeEat("(")) { - String formalName = parseIdentifier(); - p = new ExactAnnotationFieldTypePattern(p, formalName); - eat(")"); + if (maybeEat("*")) { + // Attempt to bind parameter annotation: @args(@SomeParamAnnotation (*),..) + p.setForParameterAnnotationMatch(); + eat(")"); + } else { + String formalName = parseIdentifier(); + p = new ExactAnnotationFieldTypePattern(p, formalName); + eat(")"); + } } return p; } |