FILE /objectAsCallable.kt
  CLASS OBJECT A
    $this: VALUE_PARAMETER this@A: A
    CONSTRUCTOR private constructor A()
      BLOCK_BODY
        DELEGATING_CONSTRUCTOR_CALL 'constructor Any()'
        INSTANCE_INITIALIZER_CALL classDescriptor='A'
    FUN FAKE_OVERRIDE public open override fun equals(other: kotlin.Any?): kotlin.Boolean
      $this: VALUE_PARAMETER this@Any: Any
      VALUE_PARAMETER value-parameter other: kotlin.Any?
    FUN FAKE_OVERRIDE public open override fun hashCode(): kotlin.Int
      $this: VALUE_PARAMETER this@Any: Any
    FUN FAKE_OVERRIDE public open override fun toString(): kotlin.String
      $this: VALUE_PARAMETER this@Any: Any
  CLASS ENUM_CLASS En
    $this: VALUE_PARAMETER this@En: En
    CONSTRUCTOR private constructor En()
      BLOCK_BODY
        ENUM_CONSTRUCTOR_CALL 'constructor Enum(String, Int)'
          <E : Enum<E>>: null
        INSTANCE_INITIALIZER_CALL classDescriptor='En'
    ENUM_ENTRY enum entry X
      init: ENUM_CONSTRUCTOR_CALL 'constructor En()'
    FUN FAKE_OVERRIDE protected final override fun clone(): kotlin.Any
      $this: VALUE_PARAMETER this@Enum: Enum<En>
    FUN FAKE_OVERRIDE protected/*protected and package*/ final override fun finalize(): kotlin.Unit
      $this: VALUE_PARAMETER this@Enum: Enum<En>
    FUN FAKE_OVERRIDE public final override fun getDeclaringClass(): java.lang.Class<En!>!
      $this: VALUE_PARAMETER this@Enum: Enum<En>
    FUN FAKE_OVERRIDE public final override fun compareTo(other: En): kotlin.Int
      $this: VALUE_PARAMETER this@Enum: Enum<En>
      VALUE_PARAMETER value-parameter other: En
    FUN FAKE_OVERRIDE public final override fun equals(other: kotlin.Any?): kotlin.Boolean
      $this: VALUE_PARAMETER this@Enum: Enum<En>
      VALUE_PARAMETER value-parameter other: kotlin.Any?
    FUN FAKE_OVERRIDE public final override fun hashCode(): kotlin.Int
      $this: VALUE_PARAMETER this@Enum: Enum<En>
    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<En>
    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<En>
    FUN FAKE_OVERRIDE public open override fun toString(): kotlin.String
      $this: VALUE_PARAMETER this@Enum: Enum<En>
    FUN ENUM_CLASS_SPECIAL_MEMBER public final fun values(): kotlin.Array<En>
      SYNTHETIC_BODY kind=ENUM_VALUES
    FUN ENUM_CLASS_SPECIAL_MEMBER public final fun valueOf(value: kotlin.String): En
      VALUE_PARAMETER value-parameter value: kotlin.String
      SYNTHETIC_BODY kind=ENUM_VALUEOF
  FUN public operator fun A.invoke(i: kotlin.Int): kotlin.Int
    $receiver: VALUE_PARAMETER this@invoke: A
    VALUE_PARAMETER value-parameter i: kotlin.Int
    BLOCK_BODY
      RETURN type=kotlin.Nothing from='invoke(Int) on A: Int'
        GET_VAR 'value-parameter i: Int' type=kotlin.Int origin=null
  FUN public operator fun En.invoke(i: kotlin.Int): kotlin.Int
    $receiver: VALUE_PARAMETER this@invoke: En
    VALUE_PARAMETER value-parameter i: kotlin.Int
    BLOCK_BODY
      RETURN type=kotlin.Nothing from='invoke(Int) on En: Int'
        GET_VAR 'value-parameter i: Int' type=kotlin.Int origin=null
  PROPERTY public val test1: kotlin.Int
    FIELD PROPERTY_BACKING_FIELD public val test1: kotlin.Int
      EXPRESSION_BODY
        CALL 'invoke(Int) on A: Int' type=kotlin.Int origin=INVOKE
          $receiver: GET_OBJECT 'A' type=A
          i: CONST Int type=kotlin.Int value='42'
    FUN DEFAULT_PROPERTY_ACCESSOR public fun <get-test1>(): kotlin.Int
      BLOCK_BODY
        RETURN type=kotlin.Nothing from='<get-test1>(): Int'
          GET_FIELD 'test1: Int' type=kotlin.Int origin=null
  PROPERTY public val test2: kotlin.Int
    FIELD PROPERTY_BACKING_FIELD public val test2: kotlin.Int
      EXPRESSION_BODY
        CALL 'invoke(Int) on En: Int' type=kotlin.Int origin=INVOKE
          $receiver: GET_ENUM 'X' type=En
          i: CONST Int type=kotlin.Int value='42'
    FUN DEFAULT_PROPERTY_ACCESSOR public fun <get-test2>(): kotlin.Int
      BLOCK_BODY
        RETURN type=kotlin.Nothing from='<get-test2>(): Int'
          GET_FIELD 'test2: Int' type=kotlin.Int origin=null
