Skip to content

Full compilation unit parsing errors with recent Java language features #60

@bjmi

Description

@bjmi

We have been using <parseFullCompilationUnit>true</parseFullCompilationUnit>(#57) smoothly for quite a while.
Now we encounter an error after converting an enum to local enum: (line 298,col 14) Parse error. Found "{", expected one of "," ";" "=" "@" "["

@Test
void enumMap() {
    enum E {
        A, B;
    }
    ...
}

The used JavaParser README states that Java language features up to version 15 are supported. It turns out we are affected by javaparser/javaparser#3990, a Java 16 language feature.

Therefore some improvements could be made:

  • It would be very useful to mention the filename in the error message to identify the cause of a build break much more easily.
  • The supported language versions can be added to the Limitation section in the readme.
  • As Java 17 LTS has been released for more than a year, are there other java parsers that support Java 17+?

What do you think?

Corr. stacktrace:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-enforcer-plugin:3.2.1:enforce (enforce-java-imports) on project core-utils: Execution enforce-java-imports of goal org.apache.maven.plugins:maven-enforcer-plugin:3.2.1:enforce failed: (line 298,col 14) Parse error. Found "{", expected one of  "," ";" "=" "@" "["
[ERROR] Problem stacktrace :
[ERROR]   com.github.javaparser.GeneratedJavaParser.generateParseException(GeneratedJavaParser.java:13770)
[ERROR]   com.github.javaparser.GeneratedJavaParser.jj_consume_token(GeneratedJavaParser.java:13615)
[ERROR]   com.github.javaparser.GeneratedJavaParser.BlockStatement(GeneratedJavaParser.java:5707)
[ERROR]   com.github.javaparser.GeneratedJavaParser.Statements(GeneratedJavaParser.java:2673)
[ERROR]   com.github.javaparser.GeneratedJavaParser.Block(GeneratedJavaParser.java:5644)
[ERROR]   com.github.javaparser.GeneratedJavaParser.MethodDeclaration(GeneratedJavaParser.java:2074)
[ERROR]   com.github.javaparser.GeneratedJavaParser.ClassOrInterfaceBodyDeclaration(GeneratedJavaParser.java:1675)
[ERROR]   com.github.javaparser.GeneratedJavaParser.ClassOrInterfaceBody(GeneratedJavaParser.java:1187)
[ERROR]   com.github.javaparser.GeneratedJavaParser.ClassOrInterfaceDeclaration(GeneratedJavaParser.java:501)
[ERROR]   com.github.javaparser.GeneratedJavaParser.CompilationUnit(GeneratedJavaParser.java:152)
[ERROR]   com.github.javaparser.JavaParser.parse(JavaParser.java:125)
[ERROR]   com.github.javaparser.JavaParser.parse(JavaParser.java:231)
[ERROR]   com.github.javaparser.JavaParserAdapter.parse(JavaParserAdapter.java:79)
[ERROR]   com.github.javaparser.StaticJavaParser.parse(StaticJavaParser.java:173)
[ERROR]   de.skuzzle.enforcer.restrictimports.parser.lang.JavaCompilationUnitParser.parseCompilationUnit(JavaCompilationUnitParser.java:37)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions