[
https://issues.apache.org/jira/browse/GROOVY-11816?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Eric Milles resolved GROOVY-11816.
----------------------------------
Fix Version/s: 5.0.4
Resolution: Fixed
https://github.com/apache/groovy/commit/c46a124e6bfd64ff511f85411c1a7dd751a6fd22
> General error during instruction selection: out-of-scope static check
> ---------------------------------------------------------------------
>
> Key: GROOVY-11816
> URL: https://issues.apache.org/jira/browse/GROOVY-11816
> Project: Groovy
> Issue Type: Bug
> Components: Compiler
> Affects Versions: 5.0.1, 5.0.2, 5.0.3
> Reporter: Chris Briem
> Assignee: Eric Milles
> Priority: Major
> Fix For: 5.0.4
>
>
> The following snippet does not compile in Groovy 5:
> {code:groovy}
> package org.apache.groovy;
> import groovy.transform.CompileStatic
> @CompileStatic
> class TestClass {
> List<Class<?>> classes
> def doIt() {
> println("${classes*.simpleName}")
> }
> }
> {code}
> I get the following error:
> {noformat}
> Execution failed for task ':compileGroovy'.
> > Unrecoverable compilation error: startup failed:
> General error during instruction selection: out-of-scope static check
>
> java.lang.IllegalStateException: out-of-scope static check
> at
> org.codehaus.groovy.classgen.asm.WriterController.isStaticContext(WriterController.java:322)
> at
> org.codehaus.groovy.classgen.asm.DelegatingController.isStaticContext(DelegatingController.java:235)
> at
> org.codehaus.groovy.classgen.AsmClassGenerator.isStatic(AsmClassGenerator.java:1222)
> at
> org.codehaus.groovy.classgen.AsmClassGenerator.visitPropertyExpression(AsmClassGenerator.java:1250)
> at
> org.codehaus.groovy.ast.expr.PropertyExpression.visit(PropertyExpression.java:63)
> at
> org.codehaus.groovy.classgen.AsmClassGenerator.visitVariableExpression(AsmClassGenerator.java:1469)
> at
> org.codehaus.groovy.ast.expr.VariableExpression.visit(VariableExpression.java:243)
> at
> org.codehaus.groovy.classgen.asm.ExpressionAsVariableSlot.visit(ExpressionAsVariableSlot.java:54)
> at
> org.codehaus.groovy.classgen.AsmClassGenerator.visitBytecodeExpression(AsmClassGenerator.java:1955)
> at
> org.codehaus.groovy.classgen.BytecodeExpression.visit(BytecodeExpression.java:55)
> at
> org.codehaus.groovy.classgen.asm.sc.StaticInvocationWriter.makeCall(StaticInvocationWriter.java:579)
> at
> org.codehaus.groovy.classgen.asm.InvocationWriter.writeInvokeMethod(InvocationWriter.java:501)
> [..]
> {noformat}
> It used to work with Groovy 4.x and earlier. If I remove the
> {{@CompileStatic}}, it works.
> I have committed a full reproducer to GitHub:
> https://github.com/chbriem/groovy-reproducer
--
This message was sent by Atlassian Jira
(v8.20.10#820010)