[ https://issues.apache.org/jira/browse/GROOVY-10225?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Paul King closed GROOVY-10225. ------------------------------ > Unexpected NullPointerException during the "instruction selection" phase > ------------------------------------------------------------------------ > > Key: GROOVY-10225 > URL: https://issues.apache.org/jira/browse/GROOVY-10225 > Project: Groovy > Issue Type: Bug > Components: Static Type Checker > Reporter: Thodoris Sotiropoulos > Assignee: Eric Milles > Priority: Major > Fix For: 4.0.0-beta-2 > > > The following program > {code:java} > class Foo<Z> { > final Z foo(Z x) { > null; > } > } > final class Bar<Y> { final Foo<Y> bar() { > new Foo<>() > } > } > class Main { > static final <F_O extends Number, F_X extends F_O> void test() { > final F_X x = (F_X) null > (new Bar<F_O>()).bar().foo(((false) ? x : (F_X) null)) > } > } > {code} > crashes the compiler and produces the following stacktrace > {code:java} > >>> a serious error occurred: BUG! exception in phase 'instruction selection' > >>> in source unit 'test.groovy' unexpected NullPointerException > >>> stacktrace: > BUG! exception in phase 'instruction selection' in source unit 'test.groovy' > unexpected NullPointerException > at > org.codehaus.groovy.control.CompilationUnit$IPrimaryClassNodeOperation.doPhaseOperation(CompilationUnit.java:930) > at > org.codehaus.groovy.control.CompilationUnit.processPhaseOperations(CompilationUnit.java:654) > at > org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:631) > at > org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:607) > at > org.codehaus.groovy.tools.FileSystemCompiler.compile(FileSystemCompiler.java:311) > at > org.codehaus.groovy.tools.FileSystemCompiler.doCompilation(FileSystemCompiler.java:240) > at > org.codehaus.groovy.tools.FileSystemCompiler.commandLineCompile(FileSystemCompiler.java:165) > at > org.codehaus.groovy.tools.FileSystemCompiler.commandLineCompileWithErrorHandling(FileSystemCompiler.java:205) > at > org.codehaus.groovy.tools.FileSystemCompiler.main(FileSystemCompiler.java:189) > Caused by: java.lang.NullPointerException > at > org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.resolvePlaceholdersFromImplicitTypeHints(StaticTypeCheckingVisitor.java:5439) > at > org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitMethodCallExpression(StaticTypeCheckingVisitor.java:3596) > at > org.codehaus.groovy.transform.sc.StaticCompilationVisitor.visitMethodCallExpression(StaticCompilationVisitor.java:414) > at > org.codehaus.groovy.ast.expr.MethodCallExpression.visit(MethodCallExpression.java:77) > 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:2169) > 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:3992) > at > org.codehaus.groovy.ast.stmt.BlockStatement.visit(BlockStatement.java:70) > 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:2602) > at > org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitMethod(ClassCodeVisitorSupport.java:110) > at > org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.startMethodInference(StaticTypeCheckingVisitor.java:2591) > at > org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitMethod(StaticTypeCheckingVisitor.java:2565) > at > org.codehaus.groovy.transform.sc.StaticCompilationVisitor.visitMethod(StaticCompilationVisitor.java:239) > at org.codehaus.groovy.ast.ClassNode.visitMethods(ClassNode.java:1131) > at > org.codehaus.groovy.ast.ClassNode.visitContents(ClassNode.java:1124) > at > org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitClass(ClassCodeVisitorSupport.java:52) > at > org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitClass(StaticTypeCheckingVisitor.java:436) > at > org.codehaus.groovy.transform.sc.StaticCompilationVisitor.visitClass(StaticCompilationVisitor.java:197) > at > org.codehaus.groovy.transform.sc.StaticCompileTransformation.visit(StaticCompileTransformation.java:68) > at > org.codehaus.groovy.control.customizers.ASTTransformationCustomizer.call(ASTTransformationCustomizer.groovy:298) > at > org.codehaus.groovy.control.CompilationUnit$IPrimaryClassNodeOperation.doPhaseOperation(CompilationUnit.java:925) > > {code} > Tested against master -- This message was sent by Atlassian Jira (v8.20.1#820001)