FILE fqName:<root> fileName:/capturedTypeWhenSubject.kt
  CLASS CLASS name:LoadConstant modality:FINAL visibility:public [data] superTypes:[<root>.OneOperand<J of <root>.LoadConstant, T of <root>.LoadConstant>]
    thisReceiver: VALUE_PARAMETER INSTANCE_RECEIVER kind:DispatchReceiver name:<this> type:<root>.LoadConstant<J of <root>.LoadConstant, T of <root>.LoadConstant>
    TYPE_PARAMETER name:J index:0 variance: superTypes:[kotlin.Any?] reified:false
    TYPE_PARAMETER name:T index:1 variance: superTypes:[<root>.OperandType<J of <root>.LoadConstant>] reified:false
    PROPERTY name:operand1 visibility:public modality:OPEN [val]
      overridden:
        public abstract operand1: J of <root>.OneOperand declared in <root>.OneOperand
      FIELD PROPERTY_BACKING_FIELD name:operand1 type:J of <root>.LoadConstant visibility:private [final]
        EXPRESSION_BODY
          GET_VAR 'operand1: J of <root>.LoadConstant declared in <root>.LoadConstant.<init>' type=J of <root>.LoadConstant origin=INITIALIZE_PROPERTY_FROM_PARAMETER
      FUN DEFAULT_PROPERTY_ACCESSOR name:<get-operand1> visibility:public modality:OPEN returnType:J of <root>.LoadConstant
        VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:<root>.LoadConstant<J of <root>.LoadConstant, T of <root>.LoadConstant>
        correspondingProperty: PROPERTY name:operand1 visibility:public modality:OPEN [val]
        overridden:
          public abstract fun <get-operand1> (): J of <root>.OneOperand declared in <root>.OneOperand
        BLOCK_BODY
          RETURN type=kotlin.Nothing from='public open fun <get-operand1> (): J of <root>.LoadConstant declared in <root>.LoadConstant'
            GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:operand1 type:J of <root>.LoadConstant visibility:private [final]' type=J of <root>.LoadConstant origin=null
              receiver: GET_VAR '<this>: <root>.LoadConstant<J of <root>.LoadConstant, T of <root>.LoadConstant> declared in <root>.LoadConstant.<get-operand1>' type=<root>.LoadConstant<J of <root>.LoadConstant, T of <root>.LoadConstant> origin=null
    PROPERTY name:type visibility:public modality:OPEN [val]
      overridden:
        public abstract type: T of <root>.OneOperand declared in <root>.OneOperand
      FIELD PROPERTY_BACKING_FIELD name:type type:T of <root>.LoadConstant visibility:private [final]
        EXPRESSION_BODY
          GET_VAR 'type: T of <root>.LoadConstant declared in <root>.LoadConstant.<init>' type=T of <root>.LoadConstant origin=INITIALIZE_PROPERTY_FROM_PARAMETER
      FUN DEFAULT_PROPERTY_ACCESSOR name:<get-type> visibility:public modality:OPEN returnType:T of <root>.LoadConstant
        VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:<root>.LoadConstant<J of <root>.LoadConstant, T of <root>.LoadConstant>
        correspondingProperty: PROPERTY name:type visibility:public modality:OPEN [val]
        overridden:
          public abstract fun <get-type> (): T of <root>.OneOperand declared in <root>.OneOperand
        BLOCK_BODY
          RETURN type=kotlin.Nothing from='public open fun <get-type> (): T of <root>.LoadConstant declared in <root>.LoadConstant'
            GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:type type:T of <root>.LoadConstant visibility:private [final]' type=T of <root>.LoadConstant origin=null
              receiver: GET_VAR '<this>: <root>.LoadConstant<J of <root>.LoadConstant, T of <root>.LoadConstant> declared in <root>.LoadConstant.<get-type>' type=<root>.LoadConstant<J of <root>.LoadConstant, T of <root>.LoadConstant> origin=null
    CONSTRUCTOR visibility:public returnType:<root>.LoadConstant<J of <root>.LoadConstant, T of <root>.LoadConstant> [primary]
      VALUE_PARAMETER kind:Regular name:operand1 index:0 type:J of <root>.LoadConstant
      VALUE_PARAMETER kind:Regular name:type index:1 type:T of <root>.LoadConstant
      BLOCK_BODY
        DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in kotlin.Any'
        INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:LoadConstant modality:FINAL visibility:public [data] superTypes:[<root>.OneOperand<J of <root>.LoadConstant, T of <root>.LoadConstant>]' type=kotlin.Unit
    FUN FAKE_OVERRIDE name:operand visibility:public modality:OPEN returnType:J of <root>.LoadConstant [fake_override]
      VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:<root>.OneOperand<J of <root>.LoadConstant, T of <root>.LoadConstant>
      overridden:
        public open fun operand (): J of <root>.OneOperand declared in <root>.OneOperand
    FUN GENERATED_DATA_CLASS_MEMBER name:component1 visibility:public modality:FINAL returnType:J of <root>.LoadConstant [operator]
      VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:<root>.LoadConstant<J of <root>.LoadConstant, T of <root>.LoadConstant>
      BLOCK_BODY
        RETURN type=kotlin.Nothing from='public final fun component1 (): J of <root>.LoadConstant declared in <root>.LoadConstant'
          GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:operand1 type:J of <root>.LoadConstant visibility:private [final]' type=J of <root>.LoadConstant origin=null
            receiver: GET_VAR '<this>: <root>.LoadConstant<J of <root>.LoadConstant, T of <root>.LoadConstant> declared in <root>.LoadConstant.component1' type=<root>.LoadConstant<J of <root>.LoadConstant, T of <root>.LoadConstant> origin=null
    FUN GENERATED_DATA_CLASS_MEMBER name:component2 visibility:public modality:FINAL returnType:T of <root>.LoadConstant [operator]
      VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:<root>.LoadConstant<J of <root>.LoadConstant, T of <root>.LoadConstant>
      BLOCK_BODY
        RETURN type=kotlin.Nothing from='public final fun component2 (): T of <root>.LoadConstant declared in <root>.LoadConstant'
          GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:type type:T of <root>.LoadConstant visibility:private [final]' type=T of <root>.LoadConstant origin=null
            receiver: GET_VAR '<this>: <root>.LoadConstant<J of <root>.LoadConstant, T of <root>.LoadConstant> declared in <root>.LoadConstant.component2' type=<root>.LoadConstant<J of <root>.LoadConstant, T of <root>.LoadConstant> origin=null
    FUN GENERATED_DATA_CLASS_MEMBER name:copy visibility:public modality:FINAL returnType:<root>.LoadConstant<J of <root>.LoadConstant, T of <root>.LoadConstant>
      VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:<root>.LoadConstant<J of <root>.LoadConstant, T of <root>.LoadConstant>
      VALUE_PARAMETER kind:Regular name:operand1 index:1 type:J of <root>.LoadConstant
        EXPRESSION_BODY
          GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:operand1 type:J of <root>.LoadConstant visibility:private [final]' type=J of <root>.LoadConstant origin=null
            receiver: GET_VAR '<this>: <root>.LoadConstant<J of <root>.LoadConstant, T of <root>.LoadConstant> declared in <root>.LoadConstant.copy' type=<root>.LoadConstant<J of <root>.LoadConstant, T of <root>.LoadConstant> origin=null
      VALUE_PARAMETER kind:Regular name:type index:2 type:T of <root>.LoadConstant
        EXPRESSION_BODY
          GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:type type:T of <root>.LoadConstant visibility:private [final]' type=T of <root>.LoadConstant origin=null
            receiver: GET_VAR '<this>: <root>.LoadConstant<J of <root>.LoadConstant, T of <root>.LoadConstant> declared in <root>.LoadConstant.copy' type=<root>.LoadConstant<J of <root>.LoadConstant, T of <root>.LoadConstant> origin=null
      BLOCK_BODY
        RETURN type=kotlin.Nothing from='public final fun copy (operand1: J of <root>.LoadConstant, type: T of <root>.LoadConstant): <root>.LoadConstant<J of <root>.LoadConstant, T of <root>.LoadConstant> declared in <root>.LoadConstant'
          CONSTRUCTOR_CALL 'public constructor <init> (operand1: J of <root>.LoadConstant, type: T of <root>.LoadConstant) declared in <root>.LoadConstant' type=<root>.LoadConstant<J of <root>.LoadConstant, T of <root>.LoadConstant> origin=null
            TYPE_ARG (of class) J: J of <root>.LoadConstant
            TYPE_ARG (of class) T: T of <root>.LoadConstant
            ARG operand1: GET_VAR 'operand1: J of <root>.LoadConstant declared in <root>.LoadConstant.copy' type=J of <root>.LoadConstant origin=null
            ARG type: GET_VAR 'type: T of <root>.LoadConstant declared in <root>.LoadConstant.copy' type=T of <root>.LoadConstant origin=null
    FUN GENERATED_DATA_CLASS_MEMBER name:equals visibility:public modality:OPEN returnType:kotlin.Boolean [operator]
      VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:<root>.LoadConstant<J of <root>.LoadConstant, T of <root>.LoadConstant>
      VALUE_PARAMETER kind:Regular name:other index:1 type:kotlin.Any?
      overridden:
        public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.OneOperand
      BLOCK_BODY
        WHEN type=kotlin.Unit origin=null
          BRANCH
            if: CALL 'public final fun EQEQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EQEQEQ
              ARG arg0: GET_VAR '<this>: <root>.LoadConstant<J of <root>.LoadConstant, T of <root>.LoadConstant> declared in <root>.LoadConstant.equals' type=<root>.LoadConstant<J of <root>.LoadConstant, T of <root>.LoadConstant> origin=null
              ARG arg1: GET_VAR 'other: kotlin.Any? declared in <root>.LoadConstant.equals' type=kotlin.Any? origin=null
            then: RETURN type=kotlin.Nothing from='public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.LoadConstant'
              CONST Boolean type=kotlin.Boolean value=true
        WHEN type=kotlin.Unit origin=null
          BRANCH
            if: TYPE_OP type=kotlin.Boolean origin=NOT_INSTANCEOF typeOperand=<root>.LoadConstant<J of <root>.LoadConstant, T of <root>.LoadConstant>
              GET_VAR 'other: kotlin.Any? declared in <root>.LoadConstant.equals' type=kotlin.Any? origin=null
            then: RETURN type=kotlin.Nothing from='public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.LoadConstant'
              CONST Boolean type=kotlin.Boolean value=false
        VAR IR_TEMPORARY_VARIABLE name:tmp_0 type:<root>.LoadConstant<J of <root>.LoadConstant, T of <root>.LoadConstant> [val]
          TYPE_OP type=<root>.LoadConstant<J of <root>.LoadConstant, T of <root>.LoadConstant> origin=IMPLICIT_CAST typeOperand=<root>.LoadConstant<J of <root>.LoadConstant, T of <root>.LoadConstant>
            GET_VAR 'other: kotlin.Any? declared in <root>.LoadConstant.equals' type=kotlin.Any? origin=null
        WHEN type=kotlin.Unit origin=null
          BRANCH
            if: CALL 'public final fun not (): kotlin.Boolean declared in kotlin.Boolean' type=kotlin.Boolean origin=EXCLEQ
              ARG <this>: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EXCLEQ
                ARG arg0: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:operand1 type:J of <root>.LoadConstant visibility:private [final]' type=J of <root>.LoadConstant origin=null
                  receiver: GET_VAR '<this>: <root>.LoadConstant<J of <root>.LoadConstant, T of <root>.LoadConstant> declared in <root>.LoadConstant.equals' type=<root>.LoadConstant<J of <root>.LoadConstant, T of <root>.LoadConstant> origin=null
                ARG arg1: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:operand1 type:J of <root>.LoadConstant visibility:private [final]' type=J of <root>.LoadConstant origin=null
                  receiver: GET_VAR 'val tmp_0: <root>.LoadConstant<J of <root>.LoadConstant, T of <root>.LoadConstant> declared in <root>.LoadConstant.equals' type=<root>.LoadConstant<J of <root>.LoadConstant, T of <root>.LoadConstant> origin=null
            then: RETURN type=kotlin.Nothing from='public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.LoadConstant'
              CONST Boolean type=kotlin.Boolean value=false
        WHEN type=kotlin.Unit origin=null
          BRANCH
            if: CALL 'public final fun not (): kotlin.Boolean declared in kotlin.Boolean' type=kotlin.Boolean origin=EXCLEQ
              ARG <this>: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EXCLEQ
                ARG arg0: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:type type:T of <root>.LoadConstant visibility:private [final]' type=T of <root>.LoadConstant origin=null
                  receiver: GET_VAR '<this>: <root>.LoadConstant<J of <root>.LoadConstant, T of <root>.LoadConstant> declared in <root>.LoadConstant.equals' type=<root>.LoadConstant<J of <root>.LoadConstant, T of <root>.LoadConstant> origin=null
                ARG arg1: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:type type:T of <root>.LoadConstant visibility:private [final]' type=T of <root>.LoadConstant origin=null
                  receiver: GET_VAR 'val tmp_0: <root>.LoadConstant<J of <root>.LoadConstant, T of <root>.LoadConstant> declared in <root>.LoadConstant.equals' type=<root>.LoadConstant<J of <root>.LoadConstant, T of <root>.LoadConstant> origin=null
            then: RETURN type=kotlin.Nothing from='public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.LoadConstant'
              CONST Boolean type=kotlin.Boolean value=false
        RETURN type=kotlin.Nothing from='public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.LoadConstant'
          CONST Boolean type=kotlin.Boolean value=true
    FUN GENERATED_DATA_CLASS_MEMBER name:hashCode visibility:public modality:OPEN returnType:kotlin.Int
      VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:<root>.LoadConstant<J of <root>.LoadConstant, T of <root>.LoadConstant>
      overridden:
        public open fun hashCode (): kotlin.Int declared in <root>.OneOperand
      BLOCK_BODY
        VAR name:result type:kotlin.Int [var]
          WHEN type=kotlin.Int origin=null
            BRANCH
              if: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EQEQ
                ARG arg0: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:operand1 type:J of <root>.LoadConstant visibility:private [final]' type=J of <root>.LoadConstant origin=null
                  receiver: GET_VAR '<this>: <root>.LoadConstant<J of <root>.LoadConstant, T of <root>.LoadConstant> declared in <root>.LoadConstant.hashCode' type=<root>.LoadConstant<J of <root>.LoadConstant, T of <root>.LoadConstant> origin=null
                ARG arg1: CONST Null type=kotlin.Nothing? value=null
              then: CONST Int type=kotlin.Int value=0
            BRANCH
              if: CONST Boolean type=kotlin.Boolean value=true
              then: CALL 'public open fun hashCode (): kotlin.Int declared in kotlin.Any' type=kotlin.Int origin=null
                ARG <this>: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:operand1 type:J of <root>.LoadConstant visibility:private [final]' type=J of <root>.LoadConstant origin=null
                  receiver: GET_VAR '<this>: <root>.LoadConstant<J of <root>.LoadConstant, T of <root>.LoadConstant> declared in <root>.LoadConstant.hashCode' type=<root>.LoadConstant<J of <root>.LoadConstant, T of <root>.LoadConstant> origin=null
        SET_VAR 'var result: kotlin.Int declared in <root>.LoadConstant.hashCode' type=kotlin.Unit origin=EQ
          CALL 'public final fun plus (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null
            ARG <this>: CALL 'public final fun times (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null
              ARG <this>: GET_VAR 'var result: kotlin.Int declared in <root>.LoadConstant.hashCode' type=kotlin.Int origin=null
              ARG other: CONST Int type=kotlin.Int value=31
            ARG other: CALL 'public open fun hashCode (): kotlin.Int declared in <root>.OperandType' type=kotlin.Int origin=null
              ARG <this>: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:type type:T of <root>.LoadConstant visibility:private [final]' type=T of <root>.LoadConstant origin=null
                receiver: GET_VAR '<this>: <root>.LoadConstant<J of <root>.LoadConstant, T of <root>.LoadConstant> declared in <root>.LoadConstant.hashCode' type=<root>.LoadConstant<J of <root>.LoadConstant, T of <root>.LoadConstant> origin=null
        RETURN type=kotlin.Nothing from='public open fun hashCode (): kotlin.Int declared in <root>.LoadConstant'
          GET_VAR 'var result: kotlin.Int declared in <root>.LoadConstant.hashCode' type=kotlin.Int origin=null
    FUN GENERATED_DATA_CLASS_MEMBER name:toString visibility:public modality:OPEN returnType:kotlin.String
      VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:<root>.LoadConstant<J of <root>.LoadConstant, T of <root>.LoadConstant>
      overridden:
        public open fun toString (): kotlin.String declared in <root>.OneOperand
      BLOCK_BODY
        RETURN type=kotlin.Nothing from='public open fun toString (): kotlin.String declared in <root>.LoadConstant'
          STRING_CONCATENATION type=kotlin.String
            CONST String type=kotlin.String value="LoadConstant("
            CONST String type=kotlin.String value="operand1="
            GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:operand1 type:J of <root>.LoadConstant visibility:private [final]' type=J of <root>.LoadConstant origin=null
              receiver: GET_VAR '<this>: <root>.LoadConstant<J of <root>.LoadConstant, T of <root>.LoadConstant> declared in <root>.LoadConstant.toString' type=<root>.LoadConstant<J of <root>.LoadConstant, T of <root>.LoadConstant> origin=null
            CONST String type=kotlin.String value=", "
            CONST String type=kotlin.String value="type="
            GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:type type:T of <root>.LoadConstant visibility:private [final]' type=T of <root>.LoadConstant origin=null
              receiver: GET_VAR '<this>: <root>.LoadConstant<J of <root>.LoadConstant, T of <root>.LoadConstant> declared in <root>.LoadConstant.toString' type=<root>.LoadConstant<J of <root>.LoadConstant, T of <root>.LoadConstant> origin=null
            CONST String type=kotlin.String value=")"
  CLASS INTERFACE name:Instruction modality:SEALED visibility:public superTypes:[kotlin.Any]
    sealedSubclasses:
      CLASS INTERFACE name:OneOperand modality:SEALED visibility:public superTypes:[<root>.Instruction]
    thisReceiver: VALUE_PARAMETER INSTANCE_RECEIVER kind:DispatchReceiver name:<this> type:<root>.Instruction
    FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN returnType:kotlin.Boolean [fake_override,operator]
      VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:kotlin.Any
      VALUE_PARAMETER kind:Regular name:other index:1 type:kotlin.Any?
      overridden:
        public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in kotlin.Any
    FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN returnType:kotlin.Int [fake_override]
      VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:kotlin.Any
      overridden:
        public open fun hashCode (): kotlin.Int declared in kotlin.Any
    FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN returnType:kotlin.String [fake_override]
      VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:kotlin.Any
      overridden:
        public open fun toString (): kotlin.String declared in kotlin.Any
  CLASS INTERFACE name:OneOperand modality:SEALED visibility:public superTypes:[<root>.Instruction]
    sealedSubclasses:
      CLASS CLASS name:LoadConstant modality:FINAL visibility:public [data] superTypes:[<root>.OneOperand<J of <root>.LoadConstant, T of <root>.LoadConstant>]
    thisReceiver: VALUE_PARAMETER INSTANCE_RECEIVER kind:DispatchReceiver name:<this> type:<root>.OneOperand<J of <root>.OneOperand, T of <root>.OneOperand>
    TYPE_PARAMETER name:J index:0 variance: superTypes:[kotlin.Any?] reified:false
    TYPE_PARAMETER name:T index:1 variance: superTypes:[<root>.OperandType<J of <root>.OneOperand>] reified:false
    FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN returnType:kotlin.Boolean [fake_override,operator]
      VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:kotlin.Any
      VALUE_PARAMETER kind:Regular name:other index:1 type:kotlin.Any?
      overridden:
        public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Instruction
    FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN returnType:kotlin.Int [fake_override]
      VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:kotlin.Any
      overridden:
        public open fun hashCode (): kotlin.Int declared in <root>.Instruction
    FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN returnType:kotlin.String [fake_override]
      VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:kotlin.Any
      overridden:
        public open fun toString (): kotlin.String declared in <root>.Instruction
    FUN name:operand visibility:public modality:OPEN returnType:J of <root>.OneOperand
      VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:<root>.OneOperand<J of <root>.OneOperand, T of <root>.OneOperand>
      BLOCK_BODY
        RETURN type=kotlin.Nothing from='public open fun operand (): J of <root>.OneOperand declared in <root>.OneOperand'
          CALL 'public abstract fun <get-operand1> (): J of <root>.OneOperand declared in <root>.OneOperand' type=J of <root>.OneOperand origin=GET_PROPERTY
            ARG <this>: GET_VAR '<this>: <root>.OneOperand<J of <root>.OneOperand, T of <root>.OneOperand> declared in <root>.OneOperand.operand' type=<root>.OneOperand<J of <root>.OneOperand, T of <root>.OneOperand> origin=null
    PROPERTY name:operand1 visibility:public modality:ABSTRACT [val]
      FUN DEFAULT_PROPERTY_ACCESSOR name:<get-operand1> visibility:public modality:ABSTRACT returnType:J of <root>.OneOperand
        VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:<root>.OneOperand<J of <root>.OneOperand, T of <root>.OneOperand>
        correspondingProperty: PROPERTY name:operand1 visibility:public modality:ABSTRACT [val]
    PROPERTY name:type visibility:public modality:ABSTRACT [val]
      FUN DEFAULT_PROPERTY_ACCESSOR name:<get-type> visibility:public modality:ABSTRACT returnType:T of <root>.OneOperand
        VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:<root>.OneOperand<J of <root>.OneOperand, T of <root>.OneOperand>
        correspondingProperty: PROPERTY name:type visibility:public modality:ABSTRACT [val]
  CLASS INTERFACE name:OperandType modality:SEALED visibility:public superTypes:[kotlin.Any]
    sealedSubclasses:
      CLASS OBJECT name:SInt32 modality:FINAL visibility:public superTypes:[<root>.OperandType<kotlin.Int>]
    thisReceiver: VALUE_PARAMETER INSTANCE_RECEIVER kind:DispatchReceiver name:<this> type:<root>.OperandType<J of <root>.OperandType>
    TYPE_PARAMETER name:J index:0 variance: superTypes:[kotlin.Any?] reified:false
    FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN returnType:kotlin.Boolean [fake_override,operator]
      VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:kotlin.Any
      VALUE_PARAMETER kind:Regular name:other index:1 type:kotlin.Any?
      overridden:
        public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in kotlin.Any
    FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN returnType:kotlin.Int [fake_override]
      VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:kotlin.Any
      overridden:
        public open fun hashCode (): kotlin.Int declared in kotlin.Any
    FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN returnType:kotlin.String [fake_override]
      VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:kotlin.Any
      overridden:
        public open fun toString (): kotlin.String declared in kotlin.Any
    FUN name:operand1 visibility:public modality:OPEN returnType:J of <root>.OperandType
      VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:<root>.OperandType<J of <root>.OperandType>
      VALUE_PARAMETER kind:Regular name:instruction index:1 type:<root>.OneOperand<*, *>
      BLOCK_BODY
        RETURN type=kotlin.Nothing from='public open fun operand1 (instruction: <root>.OneOperand<*, *>): J of <root>.OperandType declared in <root>.OperandType'
          TYPE_OP type=J of <root>.OperandType origin=CAST typeOperand=J of <root>.OperandType
            CALL 'public abstract fun <get-operand1> (): J of <root>.OneOperand declared in <root>.OneOperand' type=kotlin.Any? origin=GET_PROPERTY
              ARG <this>: GET_VAR 'instruction: <root>.OneOperand<*, *> declared in <root>.OperandType.operand1' type=<root>.OneOperand<*, *> origin=null
  CLASS OBJECT name:SInt32 modality:FINAL visibility:public superTypes:[<root>.OperandType<kotlin.Int>]
    thisReceiver: VALUE_PARAMETER INSTANCE_RECEIVER kind:DispatchReceiver name:<this> type:<root>.SInt32
    CONSTRUCTOR visibility:private returnType:<root>.SInt32 [primary]
      BLOCK_BODY
        DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in kotlin.Any'
        INSTANCE_INITIALIZER_CALL classDescriptor='CLASS OBJECT name:SInt32 modality:FINAL visibility:public superTypes:[<root>.OperandType<kotlin.Int>]' type=kotlin.Unit
    FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN returnType:kotlin.Boolean [fake_override,operator]
      VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:kotlin.Any
      VALUE_PARAMETER kind:Regular name:other index:1 type:kotlin.Any?
      overridden:
        public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.OperandType
    FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN returnType:kotlin.Int [fake_override]
      VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:kotlin.Any
      overridden:
        public open fun hashCode (): kotlin.Int declared in <root>.OperandType
    FUN FAKE_OVERRIDE name:operand1 visibility:public modality:OPEN returnType:kotlin.Int [fake_override]
      VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:<root>.OperandType<kotlin.Int>
      VALUE_PARAMETER kind:Regular name:instruction index:1 type:<root>.OneOperand<*, *>
      overridden:
        public open fun operand1 (instruction: <root>.OneOperand<*, *>): J of <root>.OperandType declared in <root>.OperandType
    FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN returnType:kotlin.String [fake_override]
      VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:kotlin.Any
      overridden:
        public open fun toString (): kotlin.String declared in <root>.OperandType
  FUN name:box visibility:public modality:FINAL returnType:kotlin.String
    BLOCK_BODY
      CALL 'public final fun byteSize (instruction: <root>.LoadConstant<*, *>): kotlin.Unit declared in <root>' type=kotlin.Unit origin=null
        ARG instruction: CONSTRUCTOR_CALL 'public constructor <init> (operand1: J of <root>.LoadConstant, type: T of <root>.LoadConstant) declared in <root>.LoadConstant' type=<root>.LoadConstant<kotlin.Int, <root>.SInt32> origin=null
          TYPE_ARG (of class) J: kotlin.Int
          TYPE_ARG (of class) T: <root>.SInt32
          ARG operand1: CONST Int type=kotlin.Int value=0
          ARG type: GET_OBJECT 'CLASS OBJECT name:SInt32 modality:FINAL visibility:public superTypes:[<root>.OperandType<kotlin.Int>]' type=<root>.SInt32
      RETURN type=kotlin.Nothing from='public final fun box (): kotlin.String declared in <root>'
        CONST String type=kotlin.String value="OK"
  FUN name:byteSize visibility:public modality:FINAL returnType:kotlin.Unit
    VALUE_PARAMETER kind:Regular name:instruction index:0 type:<root>.LoadConstant<*, *>
    BLOCK_BODY
      WHEN type=kotlin.Unit origin=IF
        BRANCH
          if: TYPE_OP type=kotlin.Boolean origin=NOT_INSTANCEOF typeOperand=<root>.SInt32
            CALL 'public open fun <get-type> (): T of <root>.LoadConstant declared in <root>.LoadConstant' type=<root>.OperandType<*> origin=GET_PROPERTY
              ARG <this>: GET_VAR 'instruction: <root>.LoadConstant<*, *> declared in <root>.byteSize' type=<root>.LoadConstant<*, *> origin=null
          then: RETURN type=kotlin.Nothing from='public final fun byteSize (instruction: <root>.LoadConstant<*, *>): kotlin.Unit declared in <root>'
            GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:Unit modality:FINAL visibility:public superTypes:[kotlin.Any]' type=kotlin.Unit
      BLOCK type=kotlin.Unit origin=WHEN
        VAR IR_TEMPORARY_VARIABLE name:tmp_1 type:kotlin.Int [val]
          CALL 'public open fun operand1 (instruction: <root>.OneOperand<*, *>): kotlin.Int declared in <root>.SInt32' type=kotlin.Int origin=null
            ARG <this>: TYPE_OP type=<root>.SInt32 origin=IMPLICIT_CAST typeOperand=<root>.SInt32
              CALL 'public open fun <get-type> (): T of <root>.LoadConstant declared in <root>.LoadConstant' type=<root>.OperandType<*> origin=GET_PROPERTY
                ARG <this>: GET_VAR 'instruction: <root>.LoadConstant<*, *> declared in <root>.byteSize' type=<root>.LoadConstant<*, *> origin=null
            ARG instruction: GET_VAR 'instruction: <root>.LoadConstant<*, *> declared in <root>.byteSize' type=<root>.LoadConstant<*, *> origin=null
        WHEN type=kotlin.Unit origin=WHEN
          BRANCH
            if: CALL 'public open fun contains (value: kotlin.Int): kotlin.Boolean declared in kotlin.ranges.IntRange' type=kotlin.Boolean origin=IN
              ARG <this>: CALL 'public final fun rangeTo (other: kotlin.Int): kotlin.ranges.IntRange declared in kotlin.Int' type=kotlin.ranges.IntRange origin=RANGE
                ARG <this>: CONST Int type=kotlin.Int value=-1
                ARG other: CONST Int type=kotlin.Int value=5
              ARG value: GET_VAR 'val tmp_1: kotlin.Int declared in <root>.byteSize' type=kotlin.Int origin=null
            then: BLOCK type=kotlin.Unit origin=null
      BLOCK type=kotlin.Unit origin=WHEN
        VAR name:x type:kotlin.Int [val]
          CALL 'public open fun operand1 (instruction: <root>.OneOperand<*, *>): kotlin.Int declared in <root>.SInt32' type=kotlin.Int origin=null
            ARG <this>: TYPE_OP type=<root>.SInt32 origin=IMPLICIT_CAST typeOperand=<root>.SInt32
              CALL 'public open fun <get-type> (): T of <root>.LoadConstant declared in <root>.LoadConstant' type=<root>.OperandType<*> origin=GET_PROPERTY
                ARG <this>: GET_VAR 'instruction: <root>.LoadConstant<*, *> declared in <root>.byteSize' type=<root>.LoadConstant<*, *> origin=null
            ARG instruction: GET_VAR 'instruction: <root>.LoadConstant<*, *> declared in <root>.byteSize' type=<root>.LoadConstant<*, *> origin=null
        WHEN type=kotlin.Unit origin=WHEN
          BRANCH
            if: CALL 'public open fun contains (value: kotlin.Int): kotlin.Boolean declared in kotlin.ranges.IntRange' type=kotlin.Boolean origin=IN
              ARG <this>: CALL 'public final fun rangeTo (other: kotlin.Int): kotlin.ranges.IntRange declared in kotlin.Int' type=kotlin.ranges.IntRange origin=RANGE
                ARG <this>: CONST Int type=kotlin.Int value=-1
                ARG other: CONST Int type=kotlin.Int value=5
              ARG value: GET_VAR 'val x: kotlin.Int declared in <root>.byteSize' type=kotlin.Int origin=null
            then: BLOCK type=kotlin.Unit origin=null
