[patterns] __matches __matches __matches

Tagir Valeev amaembo at gmail.com
Wed Oct 11 10:04:04 UTC 2017


Hello!

Tried the following source code:

public class Name {
  static final int __matches = 1;

  public static void main(String[] args) {
    if(__matches __matches __matches) {
      System.out.println("Matches!");
    }
  }
}

I assumed that __matches is a restricted keyword which is recognized
as a keyword only at specific syntactic position, thus this program
should be correct. Well, this could be debated, but the actual result
is somewhat unpleasant:


The system is out of resources.
Consult the following stack trace for details.
java.lang.StackOverflowError
        at jdk.compiler/com.sun.tools.javac.parser.JavacParser.lambda$new$0(JavacParser.java:1038)
        at jdk.compiler/com.sun.tools.javac.parser.JavacParser.peekToken(JavacParser.java:321)
        at jdk.compiler/com.sun.tools.javac.parser.JavacParser.peekToken(JavacParser.java:317)
        at jdk.compiler/com.sun.tools.javac.parser.JavacParser.optag(JavacParser.java:4250)
        at jdk.compiler/com.sun.tools.javac.parser.JavacParser.lambda$new$0(JavacParser.java:1043)
        at jdk.compiler/com.sun.tools.javac.parser.JavacParser.peekToken(JavacParser.java:321)
        at jdk.compiler/com.sun.tools.javac.parser.JavacParser.peekToken(JavacParser.java:317)
        at jdk.compiler/com.sun.tools.javac.parser.JavacParser.optag(JavacParser.java:4250)
        at jdk.compiler/com.sun.tools.javac.parser.JavacParser.lambda$new$0(JavacParser.java:1043)
        at jdk.compiler/com.sun.tools.javac.parser.JavacParser.peekToken(JavacParser.java:321)
        at jdk.compiler/com.sun.tools.javac.parser.JavacParser.peekToken(JavacParser.java:317)
        at jdk.compiler/com.sun.tools.javac.parser.JavacParser.optag(JavacParser.java:4250)
        at jdk.compiler/com.sun.tools.javac.parser.JavacParser.lambda$new$0(JavacParser.java:1043)
        at jdk.compiler/com.sun.tools.javac.parser.JavacParser.peekToken(JavacParser.java:321)
        at jdk.compiler/com.sun.tools.javac.parser.JavacParser.peekToken(JavacParser.java:317)
        at jdk.compiler/com.sun.tools.javac.parser.JavacParser.optag(JavacParser.java:4250)
        at jdk.compiler/com.sun.tools.javac.parser.JavacParser.lambda$new$0(JavacParser.java:1043)
...

With best regards,
Tagir Valeev


More information about the amber-dev mailing list