FILE /enumWithSecondaryCtor.kt
  CLASS ENUM_CLASS Test0
    CONSTRUCTOR private constructor Test0(x: kotlin.Int)
      VALUE_PARAMETER value-parameter x: kotlin.Int
      BLOCK_BODY
        ENUM_CONSTRUCTOR_CALL 'constructor Enum(String, Int)'
        INSTANCE_INITIALIZER_CALL classDescriptor='Test0'
    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
        $this: VALUE_PARAMETER <receiver: Test0>
        BLOCK_BODY
          RETURN type=kotlin.Nothing from='<get-x>(): Int'
            GET_FIELD 'x: Int' type=kotlin.Int origin=null
              receiver: GET_VAR '<receiver: Test0>' type=Test0 origin=null
    ENUM_ENTRY enum entry ZERO
      init: ENUM_CONSTRUCTOR_CALL 'constructor Test0()'
    CONSTRUCTOR private constructor Test0()
      BLOCK_BODY
        DELEGATING_CONSTRUCTOR_CALL 'constructor Test0(Int)'
          x: CONST Int type=kotlin.Int value='0'
    FUN FAKE_OVERRIDE protected final override fun clone(): kotlin.Any
    FUN FAKE_OVERRIDE protected/*protected and package*/ final override fun finalize(): kotlin.Unit
    FUN FAKE_OVERRIDE public final override fun getDeclaringClass(): java.lang.Class<Test0!>!
    FUN FAKE_OVERRIDE public final override fun compareTo(other: Test0): kotlin.Int
    FUN FAKE_OVERRIDE public final override fun equals(other: kotlin.Any?): kotlin.Boolean
    FUN FAKE_OVERRIDE public final override fun hashCode(): kotlin.Int
    PROPERTY FAKE_OVERRIDE public final override val name: kotlin.String
      FUN FAKE_OVERRIDE public final override fun <get-name>(): kotlin.String
    PROPERTY FAKE_OVERRIDE public final override val ordinal: kotlin.Int
      FUN FAKE_OVERRIDE public final override fun <get-ordinal>(): kotlin.Int
    FUN FAKE_OVERRIDE public open override fun toString(): kotlin.String
    FUN ENUM_CLASS_SPECIAL_MEMBER public final fun values(): kotlin.Array<Test0>
      SYNTHETIC_BODY kind=ENUM_VALUES
    FUN ENUM_CLASS_SPECIAL_MEMBER public final fun valueOf(value: kotlin.String): Test0
      SYNTHETIC_BODY kind=ENUM_VALUEOF
  CLASS ENUM_CLASS Test1
    CONSTRUCTOR private constructor Test1(x: kotlin.Int)
      VALUE_PARAMETER value-parameter x: kotlin.Int
      BLOCK_BODY
        ENUM_CONSTRUCTOR_CALL 'constructor Enum(String, Int)'
        INSTANCE_INITIALIZER_CALL classDescriptor='Test1'
    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
        $this: VALUE_PARAMETER <receiver: Test1>
        BLOCK_BODY
          RETURN type=kotlin.Nothing from='<get-x>(): Int'
            GET_FIELD 'x: Int' type=kotlin.Int origin=null
              receiver: GET_VAR '<receiver: Test1>' type=Test1 origin=null
    ENUM_ENTRY enum entry ZERO
      init: ENUM_CONSTRUCTOR_CALL 'constructor Test1()'
    ENUM_ENTRY enum entry ONE
      init: ENUM_CONSTRUCTOR_CALL 'constructor Test1(Int)'
        x: CONST Int type=kotlin.Int value='1'
    CONSTRUCTOR private constructor Test1()
      BLOCK_BODY
        DELEGATING_CONSTRUCTOR_CALL 'constructor Test1(Int)'
          x: CONST Int type=kotlin.Int value='0'
    FUN FAKE_OVERRIDE protected final override fun clone(): kotlin.Any
    FUN FAKE_OVERRIDE protected/*protected and package*/ final override fun finalize(): kotlin.Unit
    FUN FAKE_OVERRIDE public final override fun getDeclaringClass(): java.lang.Class<Test1!>!
    FUN FAKE_OVERRIDE public final override fun compareTo(other: Test1): kotlin.Int
    FUN FAKE_OVERRIDE public final override fun equals(other: kotlin.Any?): kotlin.Boolean
    FUN FAKE_OVERRIDE public final override fun hashCode(): kotlin.Int
    PROPERTY FAKE_OVERRIDE public final override val name: kotlin.String
      FUN FAKE_OVERRIDE public final override fun <get-name>(): kotlin.String
    PROPERTY FAKE_OVERRIDE public final override val ordinal: kotlin.Int
      FUN FAKE_OVERRIDE public final override fun <get-ordinal>(): kotlin.Int
    FUN FAKE_OVERRIDE public open override fun toString(): kotlin.String
    FUN ENUM_CLASS_SPECIAL_MEMBER public final fun values(): kotlin.Array<Test1>
      SYNTHETIC_BODY kind=ENUM_VALUES
    FUN ENUM_CLASS_SPECIAL_MEMBER public final fun valueOf(value: kotlin.String): Test1
      SYNTHETIC_BODY kind=ENUM_VALUEOF
  CLASS ENUM_CLASS Test2
    CONSTRUCTOR private constructor Test2(x: kotlin.Int)
      VALUE_PARAMETER value-parameter x: kotlin.Int
      BLOCK_BODY
        ENUM_CONSTRUCTOR_CALL 'constructor Enum(String, Int)'
        INSTANCE_INITIALIZER_CALL classDescriptor='Test2'
    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
        $this: VALUE_PARAMETER <receiver: Test2>
        BLOCK_BODY
          RETURN type=kotlin.Nothing from='<get-x>(): Int'
            GET_FIELD 'x: Int' type=kotlin.Int origin=null
              receiver: GET_VAR '<receiver: Test2>' type=Test2 origin=null
    ENUM_ENTRY enum entry ZERO
      init: ENUM_CONSTRUCTOR_CALL 'constructor ZERO()'
      class: CLASS ENUM_ENTRY ZERO
        CONSTRUCTOR private constructor ZERO()
          BLOCK_BODY
            ENUM_CONSTRUCTOR_CALL 'constructor Test2()'
            INSTANCE_INITIALIZER_CALL classDescriptor='ZERO'
        FUN public open override fun foo(): kotlin.Unit
          $this: VALUE_PARAMETER <receiver: ZERO>
          BLOCK_BODY
            CALL 'println(Any?): Unit' type=kotlin.Unit origin=null
              message: CONST String type=kotlin.String value='ZERO'
        FUN FAKE_OVERRIDE protected final override fun clone(): kotlin.Any
        FUN FAKE_OVERRIDE protected/*protected and package*/ final override fun finalize(): kotlin.Unit
        FUN FAKE_OVERRIDE public final override fun getDeclaringClass(): java.lang.Class<Test2!>!
        FUN FAKE_OVERRIDE public final override fun compareTo(other: Test2): kotlin.Int
        FUN FAKE_OVERRIDE public final override fun equals(other: kotlin.Any?): kotlin.Boolean
        FUN FAKE_OVERRIDE public final override fun hashCode(): kotlin.Int
        PROPERTY FAKE_OVERRIDE public final override val name: kotlin.String
          FUN FAKE_OVERRIDE public final override fun <get-name>(): kotlin.String
        PROPERTY FAKE_OVERRIDE public final override val ordinal: kotlin.Int
          FUN FAKE_OVERRIDE public final override fun <get-ordinal>(): kotlin.Int
        PROPERTY FAKE_OVERRIDE public final override val x: kotlin.Int
          FUN FAKE_OVERRIDE public final override fun <get-x>(): kotlin.Int
        FUN FAKE_OVERRIDE public open override fun toString(): kotlin.String
    ENUM_ENTRY enum entry ONE
      init: ENUM_CONSTRUCTOR_CALL 'constructor ONE()'
      class: CLASS ENUM_ENTRY ONE
        CONSTRUCTOR private constructor ONE()
          BLOCK_BODY
            ENUM_CONSTRUCTOR_CALL 'constructor Test2(Int)'
              x: CONST Int type=kotlin.Int value='1'
            INSTANCE_INITIALIZER_CALL classDescriptor='ONE'
        FUN public open override fun foo(): kotlin.Unit
          $this: VALUE_PARAMETER <receiver: ONE>
          BLOCK_BODY
            CALL 'println(Any?): Unit' type=kotlin.Unit origin=null
              message: CONST String type=kotlin.String value='ONE'
        FUN FAKE_OVERRIDE protected final override fun clone(): kotlin.Any
        FUN FAKE_OVERRIDE protected/*protected and package*/ final override fun finalize(): kotlin.Unit
        FUN FAKE_OVERRIDE public final override fun getDeclaringClass(): java.lang.Class<Test2!>!
        FUN FAKE_OVERRIDE public final override fun compareTo(other: Test2): kotlin.Int
        FUN FAKE_OVERRIDE public final override fun equals(other: kotlin.Any?): kotlin.Boolean
        FUN FAKE_OVERRIDE public final override fun hashCode(): kotlin.Int
        PROPERTY FAKE_OVERRIDE public final override val name: kotlin.String
          FUN FAKE_OVERRIDE public final override fun <get-name>(): kotlin.String
        PROPERTY FAKE_OVERRIDE public final override val ordinal: kotlin.Int
          FUN FAKE_OVERRIDE public final override fun <get-ordinal>(): kotlin.Int
        PROPERTY FAKE_OVERRIDE public final override val x: kotlin.Int
          FUN FAKE_OVERRIDE public final override fun <get-x>(): kotlin.Int
        FUN FAKE_OVERRIDE public open override fun toString(): kotlin.String
    CONSTRUCTOR private constructor Test2()
      BLOCK_BODY
        DELEGATING_CONSTRUCTOR_CALL 'constructor Test2(Int)'
          x: CONST Int type=kotlin.Int value='0'
    FUN public abstract fun foo(): kotlin.Unit
      $this: VALUE_PARAMETER <receiver: Test2>
    FUN FAKE_OVERRIDE protected final override fun clone(): kotlin.Any
    FUN FAKE_OVERRIDE protected/*protected and package*/ final override fun finalize(): kotlin.Unit
    FUN FAKE_OVERRIDE public final override fun getDeclaringClass(): java.lang.Class<Test2!>!
    FUN FAKE_OVERRIDE public final override fun compareTo(other: Test2): kotlin.Int
    FUN FAKE_OVERRIDE public final override fun equals(other: kotlin.Any?): kotlin.Boolean
    FUN FAKE_OVERRIDE public final override fun hashCode(): kotlin.Int
    PROPERTY FAKE_OVERRIDE public final override val name: kotlin.String
      FUN FAKE_OVERRIDE public final override fun <get-name>(): kotlin.String
    PROPERTY FAKE_OVERRIDE public final override val ordinal: kotlin.Int
      FUN FAKE_OVERRIDE public final override fun <get-ordinal>(): kotlin.Int
    FUN FAKE_OVERRIDE public open override fun toString(): kotlin.String
    FUN ENUM_CLASS_SPECIAL_MEMBER public final fun values(): kotlin.Array<Test2>
      SYNTHETIC_BODY kind=ENUM_VALUES
    FUN ENUM_CLASS_SPECIAL_MEMBER public final fun valueOf(value: kotlin.String): Test2
      SYNTHETIC_BODY kind=ENUM_VALUEOF
