Jason Garrett created GROOVY-10910:
--------------------------------------

             Summary: CLONE - General error during instruction selection: 
ClassCastException
                 Key: GROOVY-10910
                 URL: https://issues.apache.org/jira/browse/GROOVY-10910
             Project: Groovy
          Issue Type: Bug
          Components: Compiler
    Affects Versions: 3.0.5, 3.0.6, 3.0.7
            Reporter: Jason Garrett
            Assignee: Daniel Sun
             Fix For: 3.0.8, 4.0.0-alpha-3, 2.5.16


I am attempting to upgrade a large application from Groovy 2.4.15 to 3.  
Compilation fails with a ClassCastException:
{code:java}
General error during instruction selection: class 
org.codehaus.groovy.ast.Parameter cannot be cast to class 
org.codehaus.groovy.ast.expr.VariableExpression 
(org.codehaus.groovy.ast.Parameter and 
org.codehaus.groovy.ast.expr.VariableExpression are in unnamed module of loader 
org.gradle.internal.classloader.VisitableURLClassLoader @2bf427fc)General error 
during instruction selection: class org.codehaus.groovy.ast.Parameter cannot be 
cast to class org.codehaus.groovy.ast.expr.VariableExpression 
(org.codehaus.groovy.ast.Parameter and 
org.codehaus.groovy.ast.expr.VariableExpression are in unnamed module of loader 
org.gradle.internal.classloader.VisitableURLClassLoader @2bf427fc)
java.lang.ClassCastException: class org.codehaus.groovy.ast.Parameter cannot be 
cast to class org.codehaus.groovy.ast.expr.VariableExpression 
(org.codehaus.groovy.ast.Parameter and 
org.codehaus.groovy.ast.expr.VariableExpression are in unnamed module of loader 
org.gradle.internal.classloader.VisitableURLClassLoader @2bf427fc) at 
org.codehaus.groovy.classgen.asm.sc.StaticTypesCallSiteWriter.makeSingleArgumentCall(StaticTypesCallSiteWriter.java:598)
 at 
org.codehaus.groovy.classgen.asm.InvocationWriter.makeSingleArgumentCall(InvocationWriter.java:616)
 at 
org.codehaus.groovy.classgen.asm.BinaryExpressionHelper.evaluateBinaryExpression(BinaryExpressionHelper.java:590)
 at 
org.codehaus.groovy.classgen.asm.BinaryExpressionMultiTypeDispatcher.evaluateBinaryExpression(BinaryExpressionMultiTypeDispatcher.java:242)
 at 
org.codehaus.groovy.classgen.asm.BinaryExpressionHelper.eval(BinaryExpressionHelper.java:230)
 at 
org.codehaus.groovy.classgen.AsmClassGenerator.visitBinaryExpression(AsmClassGenerator.java:707)
 at 
org.codehaus.groovy.ast.expr.BinaryExpression.visit(BinaryExpression.java:58) 
at 
org.codehaus.groovy.classgen.asm.CallSiteWriter.visitBoxedArgument(CallSiteWriter.java:261)
 at 
org.codehaus.groovy.classgen.asm.sc.StaticTypesCallSiteWriter.writeNumberNumberCall(StaticTypesCallSiteWriter.java:782)
 at 
org.codehaus.groovy.classgen.asm.sc.StaticTypesCallSiteWriter.trySubscript(StaticTypesCallSiteWriter.java:616)
 at 
org.codehaus.groovy.classgen.asm.sc.StaticTypesCallSiteWriter.makeSingleArgumentCall(StaticTypesCallSiteWriter.java:601)
 at 
org.codehaus.groovy.classgen.asm.InvocationWriter.makeSingleArgumentCall(InvocationWriter.java:616)
 at 
org.codehaus.groovy.classgen.asm.BinaryExpressionHelper.evaluateBinaryExpression(BinaryExpressionHelper.java:590)
 at 
org.codehaus.groovy.classgen.asm.BinaryExpressionMultiTypeDispatcher.evaluateBinaryExpression(BinaryExpressionMultiTypeDispatcher.java:242)
 at 
org.codehaus.groovy.classgen.asm.BinaryExpressionHelper.eval(BinaryExpressionHelper.java:214)
 at 
org.codehaus.groovy.classgen.AsmClassGenerator.visitBinaryExpression(AsmClassGenerator.java:707)
 at 
org.codehaus.groovy.ast.expr.BinaryExpression.visit(BinaryExpression.java:58) 
at 
org.codehaus.groovy.classgen.asm.BinaryExpressionMultiTypeDispatcher.evaluateBinaryExpression(BinaryExpressionMultiTypeDispatcher.java:236)
 at 
org.codehaus.groovy.classgen.asm.BinaryExpressionHelper.eval(BinaryExpressionHelper.java:222)
 at 
org.codehaus.groovy.classgen.AsmClassGenerator.visitBinaryExpression(AsmClassGenerator.java:707)
 at 
org.codehaus.groovy.ast.expr.BinaryExpression.visit(BinaryExpression.java:58) 
at 
org.codehaus.groovy.classgen.asm.ExpressionAsVariableSlot.visit(ExpressionAsVariableSlot.java:54)
 at 
org.codehaus.groovy.classgen.AsmClassGenerator.visitBytecodeExpression(AsmClassGenerator.java:1813)
 at 
org.codehaus.groovy.classgen.BytecodeExpression.visit(BytecodeExpression.java:48)
 at 
org.codehaus.groovy.transform.sc.TemporaryVariableExpression.visit(TemporaryVariableExpression.java:61)
 at 
org.codehaus.groovy.transform.sc.ListOfExpressionsExpression.visit(ListOfExpressionsExpression.java:52)
 at 
org.codehaus.groovy.classgen.asm.sc.StaticPropertyAccessHelper$PoppingListOfExpressionsExpression.visit(StaticPropertyAccessHelper.java:88)
 at 
org.codehaus.groovy.classgen.asm.sc.StaticTypesBinaryExpressionMultiTypeDispatcher.makeSetProperty(StaticTypesBinaryExpressionMultiTypeDispatcher.java:322)
 at 
org.codehaus.groovy.classgen.asm.sc.StaticTypesBinaryExpressionMultiTypeDispatcher.evaluateEqual(StaticTypesBinaryExpressionMultiTypeDispatcher.java:177)
 at 
org.codehaus.groovy.classgen.asm.BinaryExpressionHelper.eval(BinaryExpressionHelper.java:150)
 at 
org.codehaus.groovy.classgen.AsmClassGenerator.visitBinaryExpression(AsmClassGenerator.java:707)
 at 
org.codehaus.groovy.ast.expr.BinaryExpression.visit(BinaryExpression.java:58) 
at 
org.codehaus.groovy.classgen.asm.StatementWriter.writeExpressionStatement(StatementWriter.java:635)
 at 
org.codehaus.groovy.classgen.AsmClassGenerator.visitExpressionStatement(AsmClassGenerator.java:686)
 at 
org.codehaus.groovy.ast.stmt.ExpressionStatement.visit(ExpressionStatement.java:40)
 at 
org.codehaus.groovy.classgen.asm.StatementWriter.writeBlockStatement(StatementWriter.java:94)
 at 
org.codehaus.groovy.classgen.asm.sc.StaticTypesStatementWriter.writeBlockStatement(StaticTypesStatementWriter.java:78)
 at 
org.codehaus.groovy.classgen.AsmClassGenerator.visitBlockStatement(AsmClassGenerator.java:617)
 at org.codehaus.groovy.ast.stmt.BlockStatement.visit(BlockStatement.java:69) 
at 
org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitClassCodeContainer(ClassCodeVisitorSupport.java:138)
 at 
org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitConstructorOrMethod(ClassCodeVisitorSupport.java:111)
 at 
org.codehaus.groovy.classgen.AsmClassGenerator.visitStdMethod(AsmClassGenerator.java:461)
 at 
org.codehaus.groovy.classgen.AsmClassGenerator.visitConstructorOrMethod(AsmClassGenerator.java:408)
 at 
org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitMethod(ClassCodeVisitorSupport.java:106)
 at 
org.codehaus.groovy.classgen.AsmClassGenerator.visitMethod(AsmClassGenerator.java:556)
 at org.codehaus.groovy.ast.ClassNode.visitMethods(ClassNode.java:1099) at 
org.codehaus.groovy.ast.ClassNode.visitContents(ClassNode.java:1092) at 
org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitClass(ClassCodeVisitorSupport.java:52)
 at 
org.codehaus.groovy.classgen.AsmClassGenerator.visitClass(AsmClassGenerator.java:271)
 at 
org.codehaus.groovy.control.CompilationUnit$3.call(CompilationUnit.java:797) at 
org.codehaus.groovy.control.CompilationUnit$IPrimaryClassNodeOperation.doPhaseOperation(CompilationUnit.java:942)
 at 
org.codehaus.groovy.control.CompilationUnit.processPhaseOperations(CompilationUnit.java:671)
 at 
org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:635) 
at 
org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:610) 
at 
org.gradle.api.internal.tasks.compile.ApiGroovyCompiler.execute(ApiGroovyCompiler.java:268)
 at 
org.gradle.api.internal.tasks.compile.ApiGroovyCompiler.execute(ApiGroovyCompiler.java:68)
 at 
org.gradle.api.internal.tasks.compile.GroovyCompilerFactory$DaemonSideCompiler.execute(GroovyCompilerFactory.java:87)
 at 
org.gradle.api.internal.tasks.compile.GroovyCompilerFactory$DaemonSideCompiler.execute(GroovyCompilerFactory.java:75)
 at 
org.gradle.api.internal.tasks.compile.daemon.AbstractDaemonCompiler$CompilerWorkAction.execute(AbstractDaemonCompiler.java:113)
 at 
org.gradle.workers.internal.DefaultWorkerServer.execute(DefaultWorkerServer.java:47)
 at 
org.gradle.workers.internal.AbstractClassLoaderWorker$1.create(AbstractClassLoaderWorker.java:46)
 at 
org.gradle.workers.internal.AbstractClassLoaderWorker$1.create(AbstractClassLoaderWorker.java:36)
 at 
org.gradle.internal.classloader.ClassLoaderUtils.executeInClassloader(ClassLoaderUtils.java:98)
 at 
org.gradle.workers.internal.AbstractClassLoaderWorker.executeInClassLoader(AbstractClassLoaderWorker.java:36)
 at 
org.gradle.workers.internal.IsolatedClassloaderWorker.execute(IsolatedClassloaderWorker.java:54)
 at 
org.gradle.workers.internal.WorkerDaemonServer.execute(WorkerDaemonServer.java:56)
 at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native 
Method) at 
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
 at 
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 at java.base/java.lang.reflect.Method.invoke(Method.java:566) at 
org.gradle.process.internal.worker.request.WorkerAction.run(WorkerAction.java:118)
 at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native 
Method) at 
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
 at 
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 at java.base/java.lang.reflect.Method.invoke(Method.java:566) at 
org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
 at 
org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
 at 
org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:182)
 at 
org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:164)
 at 
org.gradle.internal.remote.internal.hub.MessageHub$Handler.run(MessageHub.java:412)
 at 
org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
 at 
org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
 at 
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
 at 
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
 at 
org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56)
 at java.base/java.lang.Thread.run(Thread.java:834)
1 error
{code}
The output contains no clues as to which class was being processed at the time, 
so I have no idea how to narrow down the cause.

This affects at least versions 3.0.5-3.0.7; I don't know about earlier 
versions.  The application compiles correctly with 2.4.15.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to