diff options
author | acolyer <acolyer> | 2005-03-14 21:39:32 +0000 |
---|---|---|
committer | acolyer <acolyer> | 2005-03-14 21:39:32 +0000 |
commit | f82e6f25e306cefb9278e46df2abd3765582ff36 (patch) | |
tree | bb84ae28feb76a57e23180cbdf02dc87ae2b990f /weaver | |
parent | 6d7638833f88e7a26ac3688c7cda0e617a94be31 (diff) | |
download | aspectj-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.java | 22 |
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(); |