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

