[
https://issues.apache.org/jira/browse/GROOVY-11202?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Per Nyfelt updated GROOVY-11202:
--------------------------------
Description:
When running Gradle 8.4 -> GroovyDoc 4.0.15 which uses javaparser-core 3.25.5 i
get the following error:
[ant:groovydoc] Attempting to ignore error parsing Java source file:
se/alipsa/groovy/matrix/util/DataType.java
[ant:groovydoc] Consider reporting the error to the Groovy project:
https://issues.apache.org/jira/browse/GROOVY
[ant:groovydoc] ... or directly to the JavaParser project:
[https://github.com/javaparser/javaparser/issues]
[ant:groovydoc] Error: (line 55,col 9) Use of patterns with instanceof is not
supported.
The offending code is:
public static String sqlType(Object value, int... varcharSize) {
if (value instanceof BigDecimal bd) {
return "DECIMAL(" + bd.precision() + "," + bd.scale() + ")";
}
return value == null ? null : sqlType(value.getClass(), varcharSize);
}
Patterns with instanceof is supported by javaparser:
{{@Test
void testParseInstanceofPattern() {}}
{{String code =
"""}}
{{ }}{{class A {}}
{{public static String sqlType(Object value, int...
varcharSize) {}}
{{if (value instanceof BigDecimal bd) { return
"DECIMAL(" + bd.precision() + "," + bd.scale() + ")";}}
{{ }}}
{{ return value == null ? null : }}
{{ }}{{sqlType(value.getClass(), varcharSize); }}
{{} }}
{{ }""";}}
{{ ParserConfiguration config = }}
{{ new ParserConfiguration(); }}
{{ config}}
{{ }}{{.setLanguageLevel(LanguageLevel.JAVA_17); JavaParser parser = new
JavaParser(config); CompilationUnit cu = JavaParserAdapter }}
{{ .of(parser).parse(code);}}
{{System.out.println(cu.toString());}}
{{}}}
{{}}
{{This might mean that the groovy gradle plugin is not setting the language
level based on the tool chain e.g in my build.gradle i have:}}
java {
toolchain {
languageVersion = JavaLanguageVersion.of(17)
}
}{{{}{}}}
> Support use of patterns with instanceof in groovydoc
> ----------------------------------------------------
>
> Key: GROOVY-11202
> URL: https://issues.apache.org/jira/browse/GROOVY-11202
> Project: Groovy
> Issue Type: Bug
> Reporter: Per Nyfelt
> Priority: Major
>
> When running Gradle 8.4 -> GroovyDoc 4.0.15 which uses javaparser-core 3.25.5
> i get the following error:
> [ant:groovydoc] Attempting to ignore error parsing Java source file:
> se/alipsa/groovy/matrix/util/DataType.java
> [ant:groovydoc] Consider reporting the error to the Groovy project:
> https://issues.apache.org/jira/browse/GROOVY
> [ant:groovydoc] ... or directly to the JavaParser project:
> [https://github.com/javaparser/javaparser/issues]
> [ant:groovydoc] Error: (line 55,col 9) Use of patterns with instanceof is not
> supported.
> The offending code is:
> public static String sqlType(Object value, int... varcharSize) {
> if (value instanceof BigDecimal bd) {
> return "DECIMAL(" + bd.precision() + "," + bd.scale() + ")";
> }
> return value == null ? null : sqlType(value.getClass(), varcharSize);
> }
>
> Patterns with instanceof is supported by javaparser:
> {{@Test
> void testParseInstanceofPattern() {}}
> {{String code =
> """}}
> {{ }}{{class A {}}
> {{public static String sqlType(Object value, int...
> varcharSize) {}}
> {{if (value instanceof BigDecimal bd) { return
> "DECIMAL(" + bd.precision() + "," + bd.scale() + ")";}}
> {{ }}}
> {{ return value == null ? null : }}
> {{ }}{{sqlType(value.getClass(), varcharSize); }}
> {{} }}
> {{ }""";}}
> {{ ParserConfiguration config = }}
> {{ new ParserConfiguration(); }}
> {{ config}}
> {{ }}{{.setLanguageLevel(LanguageLevel.JAVA_17); JavaParser parser = new
> JavaParser(config); CompilationUnit cu = JavaParserAdapter }}
> {{ .of(parser).parse(code);}}
> {{System.out.println(cu.toString());}}
> {{}}}
> {{}}
> {{This might mean that the groovy gradle plugin is not setting the language
> level based on the tool chain e.g in my build.gradle i have:}}
> java {
> toolchain {
> languageVersion = JavaLanguageVersion.of(17)
> }
> }{{{}{}}}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)