You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@groovy.apache.org by su...@apache.org on 2020/12/17 14:37:11 UTC

[groovy] branch GROOVY_3_0_X updated: GROOVY-9862: General error during instruction selection: ClassCastException

This is an automated email from the ASF dual-hosted git repository.

sunlan pushed a commit to branch GROOVY_3_0_X
in repository https://gitbox.apache.org/repos/asf/groovy.git


The following commit(s) were added to refs/heads/GROOVY_3_0_X by this push:
     new 00d346c  GROOVY-9862: General error during instruction selection: ClassCastException
00d346c is described below

commit 00d346c16fb52ffa5e28bb3ac04a3483be29d3bf
Author: Daniel Sun <su...@apache.org>
AuthorDate: Thu Dec 17 22:16:18 2020 +0800

    GROOVY-9862: General error during instruction selection: ClassCastException
    
    (cherry picked from commit 69ccd11b61d0b143eb7924f56cc5a65de9457939)
---
 .../codehaus/groovy/classgen/asm/sc/StaticTypesCallSiteWriter.java   | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/main/java/org/codehaus/groovy/classgen/asm/sc/StaticTypesCallSiteWriter.java b/src/main/java/org/codehaus/groovy/classgen/asm/sc/StaticTypesCallSiteWriter.java
index 740e4dd..4f5c4e0 100644
--- a/src/main/java/org/codehaus/groovy/classgen/asm/sc/StaticTypesCallSiteWriter.java
+++ b/src/main/java/org/codehaus/groovy/classgen/asm/sc/StaticTypesCallSiteWriter.java
@@ -19,6 +19,7 @@
 package org.codehaus.groovy.classgen.asm.sc;
 
 import org.codehaus.groovy.GroovyBugError;
+import org.codehaus.groovy.ast.ASTNode;
 import org.codehaus.groovy.ast.ClassHelper;
 import org.codehaus.groovy.ast.ClassNode;
 import org.codehaus.groovy.ast.FieldNode;
@@ -595,8 +596,8 @@ public class StaticTypesCallSiteWriter extends CallSiteWriter implements Opcodes
         rType = receiver.getNodeMetaData(StaticTypesMarker.INFERRED_TYPE);
         if (receiver instanceof VariableExpression && rType == null) {
             // TODO: can STCV be made smarter to avoid this check?
-            VariableExpression ve = (VariableExpression) ((VariableExpression)receiver).getAccessedVariable();
-            rType = ve.getNodeMetaData(StaticTypesMarker.INFERRED_TYPE);
+            ASTNode node = (ASTNode) ((VariableExpression) receiver).getAccessedVariable();
+            rType = node.getNodeMetaData(StaticTypesMarker.INFERRED_TYPE);
         }
         if (rType!=null && trySubscript(receiver, message, arguments, rType, aType, safe)) {
             return;