[ https://issues.apache.org/jira/browse/GROOVY-11559?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17921219#comment-17921219 ]
ASF GitHub Bot commented on GROOVY-11559: ----------------------------------------- codecov-commenter commented on PR #2147: URL: https://github.com/apache/groovy/pull/2147#issuecomment-2614615351 ## [Codecov](https://app.codecov.io/gh/apache/groovy/pull/2147?dropdown=coverage&src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) Report All modified and coverable lines are covered by tests :white_check_mark: > Project coverage is 68.8314%. Comparing base [(`9acdef1`)](https://app.codecov.io/gh/apache/groovy/commit/9acdef1905409974299eb9f111bfc456758c6464?dropdown=coverage&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) to head [(`a247964`)](https://app.codecov.io/gh/apache/groovy/commit/a2479641d9b9adcd9a3f5065710ac34871e0a7aa?dropdown=coverage&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache). <details><summary>Additional details and impacted files</summary> [](https://app.codecov.io/gh/apache/groovy/pull/2147?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) ```diff @@ Coverage Diff @@ ## master #2147 +/- ## ================================================== + Coverage 68.8261% 68.8314% +0.0053% - Complexity 29439 29445 +6 ================================================== Files 1420 1420 Lines 113162 113162 Branches 19549 19549 ================================================== + Hits 77885 77891 +6 + Misses 28739 28733 -6 Partials 6538 6538 ``` | [Files with missing lines](https://app.codecov.io/gh/apache/groovy/pull/2147?dropdown=coverage&src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | Coverage Δ | | |---|---|---| | [...a/org/codehaus/groovy/ast/tools/GenericsUtils.java](https://app.codecov.io/gh/apache/groovy/pull/2147?src=pr&el=tree&filepath=src%2Fmain%2Fjava%2Forg%2Fcodehaus%2Fgroovy%2Fast%2Ftools%2FGenericsUtils.java&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache#diff-c3JjL21haW4vamF2YS9vcmcvY29kZWhhdXMvZ3Jvb3Z5L2FzdC90b29scy9HZW5lcmljc1V0aWxzLmphdmE=) | `67.1548% <100.0000%> (ø)` | | ... and [2 files with indirect coverage changes](https://app.codecov.io/gh/apache/groovy/pull/2147/indirect-changes?src=pr&el=tree-more&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) </details> > BUG! exception in phase 'instruction selection' of @CompileStatic method > ------------------------------------------------------------------------ > > Key: GROOVY-11559 > URL: https://issues.apache.org/jira/browse/GROOVY-11559 > Project: Groovy > Issue Type: Bug > Components: Compiler > Affects Versions: 5.0.0-alpha-11, 4.0.24 > Environment: Linux > OpenJdk 21.0.2 x64 > Groovy 4.0.24 > Reporter: Aleksey > Assignee: Eric Milles > Priority: Major > > Compilation of next script results in *NullPointerException* error: > {code:java} > @CompileStatic > void test(Object val) { > if(val instanceof Set || val instanceof List) { > val = "..." > } > } > {code} > Resulting error and stack trace: > {noformat} > BUG! exception in phase 'instruction selection' in source unit > 'ideaGroovyConsole.groovy' unexpected NullPointerException > at > org.codehaus.groovy.control.CompilationUnit$IPrimaryClassNodeOperation.doPhaseOperation(CompilationUnit.java:943) > at > org.codehaus.groovy.control.CompilationUnit.processPhaseOperations(CompilationUnit.java:692) > at > org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:666) > at > groovy.lang.GroovyClassLoader.doParseClass(GroovyClassLoader.java:365) > at > groovy.lang.GroovyClassLoader.lambda$parseClass$2(GroovyClassLoader.java:314) > at > org.codehaus.groovy.runtime.memoize.StampedCommonCache.compute(StampedCommonCache.java:163) > at > org.codehaus.groovy.runtime.memoize.StampedCommonCache.getAndPut(StampedCommonCache.java:154) > at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:314) > at groovy.lang.GroovyShell.parseClass(GroovyShell.java:572) > at groovy.lang.GroovyShell.run(GroovyShell.java:392) > at groovy.lang.GroovyShell.run(GroovyShell.java:372) > at > org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java:321) > at console.run(console.groovy:11) > at groovy.ui.GroovyMain.processReader(GroovyMain.java:628) > at groovy.ui.GroovyMain.processFiles(GroovyMain.java:549) > at groovy.ui.GroovyMain.run(GroovyMain.java:387) > at groovy.ui.GroovyMain.access$1400(GroovyMain.java:67) > at groovy.ui.GroovyMain$GroovyCommand.process(GroovyMain.java:313) > at groovy.ui.GroovyMain.processArgs(GroovyMain.java:141) > at groovy.ui.GroovyMain.main(GroovyMain.java:114) > at > java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) > at java.base/java.lang.reflect.Method.invoke(Method.java:580) > at > org.codehaus.groovy.tools.GroovyStarter.rootLoader(GroovyStarter.java:115) > at org.codehaus.groovy.tools.GroovyStarter.main(GroovyStarter.java:37) > Caused by: java.lang.NullPointerException: Cannot invoke > "org.codehaus.groovy.ast.ClassNode.isGenericsPlaceHolder()" because "type" is > null > at > org.codehaus.groovy.ast.tools.GenericsUtils.hasUnresolvedGenerics(GenericsUtils.java:926) > at > org.codehaus.groovy.ast.tools.GenericsUtils.parameterizeType(GenericsUtils.java:281) > at > org.codehaus.groovy.ast.tools.GeneralUtils.addAllInterfaces(GeneralUtils.java:482) > at > org.codehaus.groovy.ast.tools.GeneralUtils.getInterfacesAndSuperInterfaces(GeneralUtils.java:495) > at > org.codehaus.groovy.ast.tools.WideningCategories.lowestUpperBound(WideningCategories.java:422) > at > org.codehaus.groovy.ast.tools.WideningCategories.lowestUpperBound(WideningCategories.java:210) > at > org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.storeType(StaticTypeCheckingVisitor.java:4563) > at > org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitBinaryExpression(StaticTypeCheckingVisitor.java:908) > at > org.codehaus.groovy.ast.expr.BinaryExpression.visit(BinaryExpression.java:60) > at > org.codehaus.groovy.ast.CodeVisitorSupport.visitExpressionStatement(CodeVisitorSupport.java:117) > at > org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitExpressionStatement(ClassCodeVisitorSupport.java:204) > at > org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitExpressionStatement(StaticTypeCheckingVisitor.java:2286) > at > org.codehaus.groovy.ast.stmt.ExpressionStatement.visit(ExpressionStatement.java:41) > at > org.codehaus.groovy.ast.CodeVisitorSupport.visitBlockStatement(CodeVisitorSupport.java:86) > at > org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitBlockStatement(ClassCodeVisitorSupport.java:168) > at > org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitBlockStatement(StaticTypeCheckingVisitor.java:4109) > at > org.codehaus.groovy.ast.stmt.BlockStatement.visit(BlockStatement.java:72) > at > org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitIfElse(StaticTypeCheckingVisitor.java:4065) > at org.codehaus.groovy.ast.stmt.IfStatement.visit(IfStatement.java:55) > at > org.codehaus.groovy.ast.CodeVisitorSupport.visitBlockStatement(CodeVisitorSupport.java:86) > at > org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitBlockStatement(ClassCodeVisitorSupport.java:168) > at > org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitBlockStatement(StaticTypeCheckingVisitor.java:4109) > at > org.codehaus.groovy.ast.stmt.BlockStatement.visit(BlockStatement.java:72) > at > org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitClassCodeContainer(ClassCodeVisitorSupport.java:142) > at > org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitConstructorOrMethod(ClassCodeVisitorSupport.java:115) > at > org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitConstructorOrMethod(StaticTypeCheckingVisitor.java:2753) > at > org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitMethod(ClassCodeVisitorSupport.java:110) > at > org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.startMethodInference(StaticTypeCheckingVisitor.java:2736) > at > org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitMethod(StaticTypeCheckingVisitor.java:2715) > at > org.codehaus.groovy.transform.sc.StaticCompilationVisitor.visitConstructorOrMethod(StaticCompilationVisitor.java:192) > at > org.codehaus.groovy.transform.sc.StaticCompilationVisitor.visitMethod(StaticCompilationVisitor.java:207) > at > org.codehaus.groovy.transform.sc.StaticCompileTransformation.visit(StaticCompileTransformation.java:81) > at > org.codehaus.groovy.transform.ASTTransformationVisitor.visitClass(ASTTransformationVisitor.java:155) > at > org.codehaus.groovy.transform.ASTTransformationVisitor.lambda$addPhaseOperations$2(ASTTransformationVisitor.java:237) > at > org.codehaus.groovy.control.CompilationUnit$IPrimaryClassNodeOperation.doPhaseOperation(CompilationUnit.java:938) > ... 23 more > {noformat} -- This message was sent by Atlassian Jira (v8.20.10#820010)