Paul King created GROOVY-11959:
----------------------------------

             Summary: multi-assignment edge case not handled
                 Key: GROOVY-11959
                 URL: https://issues.apache.org/jira/browse/GROOVY-11959
             Project: Groovy
          Issue Type: Bug
            Reporter: Paul King


{code:groovy}
def (x, y) = 42
{code}

Gives:

{noformat}
Exception thrown

java.lang.VerifyError: Bad local variable type
Exception Details:
  Location:
    ConsoleScript20.run()Ljava/lang/Object; @31: aload_1
  Reason:
    Type integer (current frame, locals[1]) is not assignable to reference type
  Current Frame:
    bci: @31
    flags: { }
    locals: { 'ConsoleScript20', integer, 'java/lang/Object' }
    stack: { 'java/lang/Object', 'java/lang/Object' }
  Bytecode:
    0000000: 102a 3c1b ba00 2f00 004d 2cba 0034 0000
    0000010: ba00 3a00 0099 002d 2cba 003d 0000 592b
    0000020: a500 214e 2cba 0034 0000 ba00 3a00 0099
    0000030: 000c 2cba 003d 0000 a700 0401 3a04 a700
    0000040: 1557 1b03 ba00 4200 004e 1b04 ba00 4200
    0000050: 003a 041b b800 48b0                    
  Stackmap Table:
    append_frame(@59,Integer,Object[#77],Object[#77])
    same_locals_1_stack_item_frame(@60,Object[#77])
    full_frame(@65,{Object[#2],Integer,Object[#77]},{Object[#77]})
    same_frame(@66)
    append_frame(@83,Object[#77],Object[#77])

        at java.base/java.lang.Class.getDeclaredConstructors0(Native Method)
        at 
java.base/java.lang.Class.privateGetDeclaredConstructors(Class.java:3375)
        at java.base/java.lang.Class.getConstructor0(Class.java:3580)
        at java.base/java.lang.Class.getConstructor(Class.java:2273)
        at 
org.codehaus.groovy.runtime.InvokerHelper.newScript(InvokerHelper.java:498)
{noformat}



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

Reply via email to