You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@groovy.apache.org by "mgroovy (JIRA)" <ji...@apache.org> on 2018/09/06 17:59:00 UTC

[jira] [Created] (GROOVY-8776) @MapConstructor: Creating inner class instance => VerifyError: Bad type on operand stack CTE

mgroovy created GROOVY-8776:
-------------------------------

             Summary: @MapConstructor: Creating inner class instance => VerifyError: Bad type on operand stack CTE
                 Key: GROOVY-8776
                 URL: https://issues.apache.org/jira/browse/GROOVY-8776
             Project: Groovy
          Issue Type: Bug
          Components: Compiler
    Affects Versions: 2.5.2
            Reporter: mgroovy


{code:java}
import groovy.transform.CompileStatic
import groovy.transform.MapConstructor

@CompileStatic // static bug only
class GroovyMapConstructorCheck {

 @MapConstructor
 static class Goo {
  final int x0

  @Override
  String toString() {
   return "Goo(|$x0|)"
  }
 }
}

println new GroovyMapConstructorCheck.Goo(x0:123){code}
Throws

{quote}
java.lang.VerifyError: Bad type on operand stack
 Exception Details:
 Location:
 GroovyMapConstructorCheck$Goo.<init>(Ljava/util/Map;)V @57: invokevirtual
 Reason:
 Type 'GroovyMapConstructorCheck$Goo' (current frame, stack[0]) is not assignable to 'groovy/lang/Closure'
 Current Frame:
 bci: @57
 flags: \{ }
 locals:

{ 'GroovyMapConstructorCheck$Goo', 'java/lang/Object', 'groovy/lang/MetaClass' }

stack:

{ 'GroovyMapConstructorCheck$Goo' }

Bytecode:
 0x0000000: 2ab7 0015 2ab6 0019 4d2c 2a5f b500 1b2c
 0x0000010: 572b c700 0704 a700 0403 9900 1703 bd00
 0x0000020: 04b8 0021 4e2d 1223 b800 27c0 0023 4c2d
 0x0000030: 572a 2bb8 002d 0157 2ab6 0033 c000 3512
 0x0000040: 36b9 003c 0200 9900 202a b600 33c0 0035
 0x0000050: 1236 b900 4002 003a 0419 04b8 0046 2a5f
 0x0000060: b500 4819 0457 b1 
 Stackmap Table:
 full_frame(@25,

{Object[#2],Object[#56],Object[#78]}

,{})
 same_locals_1_stack_item_frame(@26,Integer)
 full_frame(@49,

{Object[#2],Object[#4],Object[#78]}

,{})
 same_frame(@102)
{quote}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)