summaryrefslogtreecommitdiffstats
path: root/weaver
diff options
context:
space:
mode:
authoracolyer <acolyer>2005-03-14 21:39:32 +0000
committeracolyer <acolyer>2005-03-14 21:39:32 +0000
commitf82e6f25e306cefb9278e46df2abd3765582ff36 (patch)
treebb84ae28feb76a57e23180cbdf02dc87ae2b990f /weaver
parent6d7638833f88e7a26ac3688c7cda0e617a94be31 (diff)
downloadaspectj-f82e6f25e306cefb9278e46df2abd3765582ff36.tar.gz
aspectj-f82e6f25e306cefb9278e46df2abd3765582ff36.zip
fix for missing syntax error on execution((@XXX *) Foo.new(..))
^^^
Diffstat (limited to 'weaver')
-rw-r--r--weaver/src/org/aspectj/weaver/patterns/PatternParser.java22
1 files changed, 12 insertions, 10 deletions
diff --git a/weaver/src/org/aspectj/weaver/patterns/PatternParser.java b/weaver/src/org/aspectj/weaver/patterns/PatternParser.java
index c9ca1ccf6..91f32baba 100644
--- a/weaver/src/org/aspectj/weaver/patterns/PatternParser.java
+++ b/weaver/src/org/aspectj/weaver/patterns/PatternParser.java
@@ -985,24 +985,26 @@ public class PatternParser {
name = NamePattern.ANY;
} else {
kind = Member.METHOD;
+ IToken nameToken = tokenSource.peek();
declaringType = parseTypePattern();
if (maybeEat(".")) {
+ nameToken = tokenSource.peek();
name = parseNamePattern();
} else {
name = tryToExtractName(declaringType);
- if (name == null) {
- throw new ParserException("name pattern", tokenSource.peek());
- }
- String simpleName = name.maybeGetSimpleName();
- //XXX should add check for any Java keywords
- if (simpleName != null && simpleName.equals("new")) {
- throw new ParserException("constructor patterns have no return type",
- tokenSource.peek());
- }
if (declaringType.toString().equals("")) {
declaringType = TypePattern.ANY;
}
- }
+ }
+ if (name == null) {
+ throw new ParserException("name pattern", tokenSource.peek());
+ }
+ String simpleName = name.maybeGetSimpleName();
+ //XXX should add check for any Java keywords
+ if (simpleName != null && simpleName.equals("new")) {
+ throw new ParserException("method name (not constructor)",
+ nameToken);
+ }
}
TypePatternList parameterTypes = parseArgumentsPattern();