FILE /enum.kt
  CLASS ENUM_CLASS TestEnum1
    CONSTRUCTOR private constructor TestEnum1()
      BLOCK_BODY
        ENUM_CONSTRUCTOR_CALL 'constructor Enum(String, Int)'
        INSTANCE_INITIALIZER_CALL classDescriptor='TestEnum1'
    ENUM_ENTRY enum entry TEST1
      init: ENUM_CONSTRUCTOR_CALL 'constructor TestEnum1()'
    ENUM_ENTRY enum entry TEST2
      init: ENUM_CONSTRUCTOR_CALL 'constructor TestEnum1()'
    FUN ENUM_CLASS_SPECIAL_MEMBER public final fun values(): kotlin.Array<TestEnum1>
      SYNTHETIC_BODY kind=ENUM_VALUES
    FUN ENUM_CLASS_SPECIAL_MEMBER public final fun valueOf(value: kotlin.String): TestEnum1
      SYNTHETIC_BODY kind=ENUM_VALUEOF
  CLASS ENUM_CLASS TestEnum2
    CONSTRUCTOR private constructor TestEnum2(x: kotlin.Int)
      BLOCK_BODY
        ENUM_CONSTRUCTOR_CALL 'constructor Enum(String, Int)'
        INSTANCE_INITIALIZER_CALL classDescriptor='TestEnum2'
    PROPERTY public final val x: kotlin.Int
      FIELD PROPERTY_BACKING_FIELD public final val x: kotlin.Int
        EXPRESSION_BODY
          GET_VAR 'value-parameter x: Int' type=kotlin.Int origin=INITIALIZE_PROPERTY_FROM_PARAMETER
      FUN DEFAULT_PROPERTY_ACCESSOR public final fun <get-x>(): kotlin.Int
        BLOCK_BODY
          RETURN type=kotlin.Nothing from='<get-x>(): Int'
            GET_FIELD 'x: Int' type=kotlin.Int origin=null
              receiver: GET_VAR '<receiver: TestEnum2>' type=TestEnum2 origin=null
    ENUM_ENTRY enum entry TEST1
      init: ENUM_CONSTRUCTOR_CALL 'constructor TestEnum2(Int)'
        x: CONST Int type=kotlin.Int value='1'
    ENUM_ENTRY enum entry TEST2
      init: ENUM_CONSTRUCTOR_CALL 'constructor TestEnum2(Int)'
        x: CONST Int type=kotlin.Int value='2'
    ENUM_ENTRY enum entry TEST3
      init: ENUM_CONSTRUCTOR_CALL 'constructor TestEnum2(Int)'
        x: CONST Int type=kotlin.Int value='3'
    FUN ENUM_CLASS_SPECIAL_MEMBER public final fun values(): kotlin.Array<TestEnum2>
      SYNTHETIC_BODY kind=ENUM_VALUES
    FUN ENUM_CLASS_SPECIAL_MEMBER public final fun valueOf(value: kotlin.String): TestEnum2
      SYNTHETIC_BODY kind=ENUM_VALUEOF
  CLASS ENUM_CLASS TestEnum3
    CONSTRUCTOR private constructor TestEnum3()
      BLOCK_BODY
        ENUM_CONSTRUCTOR_CALL 'constructor Enum(String, Int)'
        INSTANCE_INITIALIZER_CALL classDescriptor='TestEnum3'
    ENUM_ENTRY enum entry TEST
      init: ENUM_CONSTRUCTOR_CALL 'constructor TEST()'
      class: CLASS ENUM_ENTRY TEST
        CONSTRUCTOR private constructor TEST()
          BLOCK_BODY
            ENUM_CONSTRUCTOR_CALL 'constructor TestEnum3()'
            INSTANCE_INITIALIZER_CALL classDescriptor='TEST'
        FUN public open override fun foo(): kotlin.Unit
          BLOCK_BODY
            CALL 'println(Any?): Unit' type=kotlin.Unit origin=null
              message: CONST String type=kotlin.String value='Hello, world!'
    FUN public abstract fun foo(): kotlin.Unit
    FUN ENUM_CLASS_SPECIAL_MEMBER public final fun values(): kotlin.Array<TestEnum3>
      SYNTHETIC_BODY kind=ENUM_VALUES
    FUN ENUM_CLASS_SPECIAL_MEMBER public final fun valueOf(value: kotlin.String): TestEnum3
      SYNTHETIC_BODY kind=ENUM_VALUEOF
  CLASS ENUM_CLASS TestEnum4
    CONSTRUCTOR private constructor TestEnum4(x: kotlin.Int)
      BLOCK_BODY
        ENUM_CONSTRUCTOR_CALL 'constructor Enum(String, Int)'
        INSTANCE_INITIALIZER_CALL classDescriptor='TestEnum4'
    PROPERTY public final val x: kotlin.Int
      FIELD PROPERTY_BACKING_FIELD public final val x: kotlin.Int
        EXPRESSION_BODY
          GET_VAR 'value-parameter x: Int' type=kotlin.Int origin=INITIALIZE_PROPERTY_FROM_PARAMETER
      FUN DEFAULT_PROPERTY_ACCESSOR public final fun <get-x>(): kotlin.Int
        BLOCK_BODY
          RETURN type=kotlin.Nothing from='<get-x>(): Int'
            GET_FIELD 'x: Int' type=kotlin.Int origin=null
              receiver: GET_VAR '<receiver: TestEnum4>' type=TestEnum4 origin=null
    ENUM_ENTRY enum entry TEST1
      init: ENUM_CONSTRUCTOR_CALL 'constructor TEST1()'
      class: CLASS ENUM_ENTRY TEST1
        CONSTRUCTOR private constructor TEST1()
          BLOCK_BODY
            ENUM_CONSTRUCTOR_CALL 'constructor TestEnum4(Int)'
              x: CONST Int type=kotlin.Int value='1'
            INSTANCE_INITIALIZER_CALL classDescriptor='TEST1'
        FUN public open override fun foo(): kotlin.Unit
          BLOCK_BODY
            CALL 'println(Any?): Unit' type=kotlin.Unit origin=null
              message: GET_ENUM 'TEST1' type=TestEnum4
    ENUM_ENTRY enum entry TEST2
      init: ENUM_CONSTRUCTOR_CALL 'constructor TEST2()'
      class: CLASS ENUM_ENTRY TEST2
        CONSTRUCTOR private constructor TEST2()
          BLOCK_BODY
            ENUM_CONSTRUCTOR_CALL 'constructor TestEnum4(Int)'
              x: CONST Int type=kotlin.Int value='2'
            INSTANCE_INITIALIZER_CALL classDescriptor='TEST2'
        PROPERTY public final val z: kotlin.Int
          FIELD PROPERTY_BACKING_FIELD public final val z: kotlin.Int
          FUN DEFAULT_PROPERTY_ACCESSOR public final fun <get-z>(): kotlin.Int
            BLOCK_BODY
              RETURN type=kotlin.Nothing from='<get-z>(): Int'
                GET_FIELD 'z: Int' type=kotlin.Int origin=null
                  receiver: GET_VAR '<receiver: TEST2>' type=TestEnum4.TEST2 origin=null
        ANONYMOUS_INITIALIZER TEST2
          BLOCK_BODY
            SET_FIELD 'z: Int' type=kotlin.Unit origin=null
              receiver: GET_VAR '<receiver: TEST2>' type=TestEnum4.TEST2 origin=null
              value: CALL '<get-x>(): Int' type=kotlin.Int origin=GET_PROPERTY
                $this: GET_VAR '<receiver: TEST2>' type=TestEnum4.TEST2 origin=null
        FUN public open override fun foo(): kotlin.Unit
          BLOCK_BODY
            CALL 'println(Any?): Unit' type=kotlin.Unit origin=null
              message: GET_ENUM 'TEST2' type=TestEnum4
    FUN public abstract fun foo(): kotlin.Unit
    FUN ENUM_CLASS_SPECIAL_MEMBER public final fun values(): kotlin.Array<TestEnum4>
      SYNTHETIC_BODY kind=ENUM_VALUES
    FUN ENUM_CLASS_SPECIAL_MEMBER public final fun valueOf(value: kotlin.String): TestEnum4
      SYNTHETIC_BODY kind=ENUM_VALUEOF
