FILE fqName: fileName:/arrayAccessCompositeOperators.kt CLASS CLASS name:MyContainer modality:FINAL visibility:public [data] superTypes:[kotlin.Any] $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.MyContainer CONSTRUCTOR visibility:public <> (i:kotlin.Int) returnType:.MyContainer [primary] VALUE_PARAMETER name:i index:0 type:kotlin.Int BLOCK_BODY DELEGATING_CONSTRUCTOR_CALL 'public constructor () declared in kotlin.Any' INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:MyContainer modality:FINAL visibility:public [data] superTypes:[kotlin.Any]' PROPERTY name:i visibility:public modality:FINAL [var] FIELD PROPERTY_BACKING_FIELD name:i type:kotlin.Int visibility:private EXPRESSION_BODY GET_VAR 'i: kotlin.Int declared in .MyContainer.' type=kotlin.Int origin=INITIALIZE_PROPERTY_FROM_PARAMETER FUN DEFAULT_PROPERTY_ACCESSOR name: visibility:public modality:FINAL <> ($this:.MyContainer) returnType:kotlin.Int correspondingProperty: PROPERTY name:i visibility:public modality:FINAL [var] $this: VALUE_PARAMETER name: type:.MyContainer BLOCK_BODY RETURN type=kotlin.Nothing from='public final fun (): kotlin.Int declared in .MyContainer' GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:i type:kotlin.Int visibility:private' type=kotlin.Int origin=null receiver: GET_VAR ': .MyContainer declared in .MyContainer.' type=.MyContainer origin=null FUN DEFAULT_PROPERTY_ACCESSOR name: visibility:public modality:FINAL <> ($this:.MyContainer, :kotlin.Int) returnType:kotlin.Unit correspondingProperty: PROPERTY name:i visibility:public modality:FINAL [var] $this: VALUE_PARAMETER name: type:.MyContainer VALUE_PARAMETER name: index:0 type:kotlin.Int BLOCK_BODY SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:i type:kotlin.Int visibility:private' type=kotlin.Unit origin=null receiver: GET_VAR ': .MyContainer declared in .MyContainer.' type=.MyContainer origin=null value: GET_VAR ': kotlin.Int declared in .MyContainer.' type=kotlin.Int origin=null FUN GENERATED_DATA_CLASS_MEMBER name:component1 visibility:public modality:FINAL <> ($this:.MyContainer) returnType:kotlin.Int [operator] $this: VALUE_PARAMETER name: type:.MyContainer BLOCK_BODY RETURN type=kotlin.Nothing from='public final fun component1 (): kotlin.Int declared in .MyContainer' GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:i type:kotlin.Int visibility:private' type=kotlin.Int origin=null receiver: GET_VAR ': .MyContainer declared in .MyContainer.component1' type=.MyContainer origin=null FUN GENERATED_DATA_CLASS_MEMBER name:copy visibility:public modality:FINAL <> ($this:.MyContainer, i:kotlin.Int) returnType:.MyContainer $this: VALUE_PARAMETER name: type:.MyContainer VALUE_PARAMETER name:i index:0 type:kotlin.Int EXPRESSION_BODY GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:i type:kotlin.Int visibility:private' type=kotlin.Int origin=null receiver: GET_VAR ': .MyContainer declared in .MyContainer.copy' type=.MyContainer origin=null BLOCK_BODY RETURN type=kotlin.Nothing from='public final fun copy (i: kotlin.Int): .MyContainer declared in .MyContainer' CONSTRUCTOR_CALL 'public constructor (i: kotlin.Int) declared in .MyContainer' type=.MyContainer origin=null i: GET_VAR 'i: kotlin.Int declared in .MyContainer.copy' type=kotlin.Int origin=null FUN GENERATED_DATA_CLASS_MEMBER name:toString visibility:public modality:OPEN <> ($this:.MyContainer) returnType:kotlin.String overridden: public open fun toString (): kotlin.String declared in kotlin.Any $this: VALUE_PARAMETER name: type:.MyContainer BLOCK_BODY RETURN type=kotlin.Nothing from='public open fun toString (): kotlin.String declared in .MyContainer' STRING_CONCATENATION type=kotlin.String CONST String type=kotlin.String value="MyContainer(" CONST String type=kotlin.String value="i=" GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:i type:kotlin.Int visibility:private' type=kotlin.Int origin=null receiver: GET_VAR ': .MyContainer declared in .MyContainer.toString' type=.MyContainer origin=null CONST String type=kotlin.String value=")" FUN GENERATED_DATA_CLASS_MEMBER name:hashCode visibility:public modality:OPEN <> ($this:.MyContainer) returnType:kotlin.Int overridden: public open fun hashCode (): kotlin.Int declared in kotlin.Any $this: VALUE_PARAMETER name: type:.MyContainer BLOCK_BODY RETURN type=kotlin.Nothing from='public open fun hashCode (): kotlin.Int declared in .MyContainer' CALL 'public open fun hashCode (): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null $this: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:i type:kotlin.Int visibility:private' type=kotlin.Int origin=null receiver: GET_VAR ': .MyContainer declared in .MyContainer.hashCode' type=.MyContainer origin=null FUN GENERATED_DATA_CLASS_MEMBER name:equals visibility:public modality:OPEN <> ($this:.MyContainer, other:kotlin.Any?) returnType:kotlin.Boolean [operator] overridden: public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in kotlin.Any $this: VALUE_PARAMETER name: type:.MyContainer VALUE_PARAMETER name:other index:0 type:kotlin.Any? 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 arg0: GET_VAR ': .MyContainer declared in .MyContainer.equals' type=.MyContainer origin=null arg1: GET_VAR 'other: kotlin.Any? declared in .MyContainer.equals' type=kotlin.Any? origin=null then: RETURN type=kotlin.Nothing from='public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in .MyContainer' CONST Boolean type=kotlin.Boolean value=true WHEN type=kotlin.Unit origin=null BRANCH if: TYPE_OP type=kotlin.Boolean origin=NOT_INSTANCEOF typeOperand=.MyContainer GET_VAR 'other: kotlin.Any? declared in .MyContainer.equals' type=kotlin.Any? origin=null then: RETURN type=kotlin.Nothing from='public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in .MyContainer' CONST Boolean type=kotlin.Boolean value=false VAR IR_TEMPORARY_VARIABLE name:tmp_0 type:.MyContainer [val] TYPE_OP type=.MyContainer origin=CAST typeOperand=.MyContainer GET_VAR 'other: kotlin.Any? declared in .MyContainer.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 $this: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EXCLEQ arg0: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:i type:kotlin.Int visibility:private' type=kotlin.Int origin=null receiver: GET_VAR ': .MyContainer declared in .MyContainer.equals' type=.MyContainer origin=null arg1: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:i type:kotlin.Int visibility:private' type=kotlin.Int origin=null receiver: GET_VAR 'val tmp_0: .MyContainer declared in .MyContainer.equals' type=.MyContainer origin=null then: RETURN type=kotlin.Nothing from='public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in .MyContainer' CONST Boolean type=kotlin.Boolean value=false RETURN type=kotlin.Nothing from='public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in .MyContainer' CONST Boolean type=kotlin.Boolean value=true PROPERTY name:operationScore visibility:public modality:FINAL [var] FIELD PROPERTY_BACKING_FIELD name:operationScore type:kotlin.Int visibility:private [static] EXPRESSION_BODY CONST Int type=kotlin.Int value=0 FUN DEFAULT_PROPERTY_ACCESSOR name: visibility:public modality:FINAL <> () returnType:kotlin.Int correspondingProperty: PROPERTY name:operationScore visibility:public modality:FINAL [var] BLOCK_BODY RETURN type=kotlin.Nothing from='public final fun (): kotlin.Int declared in ' GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:operationScore type:kotlin.Int visibility:private [static]' type=kotlin.Int origin=null FUN DEFAULT_PROPERTY_ACCESSOR name: visibility:public modality:FINAL <> (:kotlin.Int) returnType:kotlin.Unit correspondingProperty: PROPERTY name:operationScore visibility:public modality:FINAL [var] VALUE_PARAMETER name: index:0 type:kotlin.Int BLOCK_BODY SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:operationScore type:kotlin.Int visibility:private [static]' type=kotlin.Unit origin=null value: GET_VAR ': kotlin.Int declared in .' type=kotlin.Int origin=null FUN name:get visibility:public modality:FINAL <> ($receiver:.MyContainer, $context_receiver_0:kotlin.Int, index:kotlin.Int) returnType:kotlin.Int [operator] contextReceiverParametersCount: 1 $receiver: VALUE_PARAMETER name: type:.MyContainer VALUE_PARAMETER name:$context_receiver_0 index:0 type:kotlin.Int VALUE_PARAMETER name:index index:1 type:kotlin.Int BLOCK_BODY BLOCK type=kotlin.Unit origin=PLUSEQ CALL 'public final fun (: kotlin.Int): kotlin.Unit declared in ' type=kotlin.Unit origin=PLUSEQ : CALL 'public final fun plus (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=PLUSEQ $this: CALL 'public final fun (): kotlin.Int declared in ' type=kotlin.Int origin=PLUSEQ other: GET_VAR '$context_receiver_0: kotlin.Int declared in .get' type=kotlin.Int origin=null RETURN type=kotlin.Nothing from='public final fun get ($context_receiver_0: kotlin.Int, index: kotlin.Int): kotlin.Int declared in ' WHEN type=kotlin.Int origin=IF 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 arg0: GET_VAR 'index: kotlin.Int declared in .get' type=kotlin.Int origin=null arg1: CONST Int type=kotlin.Int value=0 then: CALL 'public final fun (): kotlin.Int declared in .MyContainer' type=kotlin.Int origin=GET_PROPERTY $this: GET_VAR ': .MyContainer declared in .get' type=.MyContainer origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true then: CONST Int type=kotlin.Int value=-1 FUN name:plusAssign visibility:public modality:FINAL <> ($receiver:.MyContainer, $context_receiver_0:kotlin.Int, other:.MyContainer) returnType:kotlin.Unit [operator] contextReceiverParametersCount: 1 $receiver: VALUE_PARAMETER name: type:.MyContainer VALUE_PARAMETER name:$context_receiver_0 index:0 type:kotlin.Int VALUE_PARAMETER name:other index:1 type:.MyContainer BLOCK_BODY BLOCK type=kotlin.Unit origin=PLUSEQ CALL 'public final fun (: kotlin.Int): kotlin.Unit declared in ' type=kotlin.Unit origin=PLUSEQ : CALL 'public final fun plus (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=PLUSEQ $this: CALL 'public final fun (): kotlin.Int declared in ' type=kotlin.Int origin=PLUSEQ other: GET_VAR '$context_receiver_0: kotlin.Int declared in .plusAssign' type=kotlin.Int origin=null BLOCK type=kotlin.Unit origin=PLUSEQ VAR IR_TEMPORARY_VARIABLE name:tmp_1 type:.MyContainer [val] GET_VAR ': .MyContainer declared in .plusAssign' type=.MyContainer origin=null CALL 'public final fun (: kotlin.Int): kotlin.Unit declared in .MyContainer' type=kotlin.Unit origin=PLUSEQ $this: GET_VAR 'val tmp_1: .MyContainer declared in .plusAssign' type=.MyContainer origin=null : CALL 'public final fun plus (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=PLUSEQ $this: CALL 'public final fun (): kotlin.Int declared in .MyContainer' type=kotlin.Int origin=PLUSEQ $this: GET_VAR 'val tmp_1: .MyContainer declared in .plusAssign' type=.MyContainer origin=null other: CALL 'public final fun (): kotlin.Int declared in .MyContainer' type=kotlin.Int origin=GET_PROPERTY $this: GET_VAR 'other: .MyContainer declared in .plusAssign' type=.MyContainer origin=null FUN name:inc visibility:public modality:FINAL <> ($receiver:.MyContainer, $context_receiver_0:kotlin.Int) returnType:.MyContainer [operator] contextReceiverParametersCount: 1 $receiver: VALUE_PARAMETER name: type:.MyContainer VALUE_PARAMETER name:$context_receiver_0 index:0 type:kotlin.Int BLOCK_BODY BLOCK type=kotlin.Unit origin=PLUSEQ CALL 'public final fun (: kotlin.Int): kotlin.Unit declared in ' type=kotlin.Unit origin=PLUSEQ : CALL 'public final fun plus (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=PLUSEQ $this: CALL 'public final fun (): kotlin.Int declared in ' type=kotlin.Int origin=PLUSEQ other: GET_VAR '$context_receiver_0: kotlin.Int declared in .inc' type=kotlin.Int origin=null RETURN type=kotlin.Nothing from='public final fun inc ($context_receiver_0: kotlin.Int): .MyContainer declared in ' CONSTRUCTOR_CALL 'public constructor (i: kotlin.Int) declared in .MyContainer' type=.MyContainer origin=null i: CALL 'public final fun plus (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=PLUS $this: CALL 'public final fun (): kotlin.Int declared in .MyContainer' type=kotlin.Int origin=GET_PROPERTY $this: GET_VAR ': .MyContainer declared in .inc' type=.MyContainer origin=null other: CONST Int type=kotlin.Int value=1 FUN name:box visibility:public modality:FINAL <> () returnType:kotlin.String BLOCK_BODY VAR name:myContainer type:.MyContainer [var] CONSTRUCTOR_CALL 'public constructor (i: kotlin.Int) declared in .MyContainer' type=.MyContainer origin=null i: CONST Int type=kotlin.Int value=0 CALL 'public final fun with (receiver: T of kotlin.with, block: @[ExtensionFunctionType] kotlin.Function1): R of kotlin.with declared in kotlin' type=kotlin.Unit origin=null : kotlin.Int : kotlin.Unit receiver: CONST Int type=kotlin.Int value=1 block: FUN_EXPR type=@[ExtensionFunctionType] kotlin.Function1 origin=LAMBDA FUN LOCAL_FUNCTION_FOR_LAMBDA name: visibility:local modality:FINAL <> ($receiver:kotlin.Int) returnType:kotlin.Unit $receiver: VALUE_PARAMETER name:$this$with type:kotlin.Int BLOCK_BODY CALL 'public final fun plusAssign ($context_receiver_0: kotlin.Int, other: .MyContainer): kotlin.Unit declared in ' type=kotlin.Unit origin=PLUSEQ $receiver: GET_VAR 'var myContainer: .MyContainer declared in .box' type=.MyContainer origin=PLUSEQ $context_receiver_0: GET_VAR '$this$with: kotlin.Int declared in .box.' type=kotlin.Int origin=null other: CONSTRUCTOR_CALL 'public constructor (i: kotlin.Int) declared in .MyContainer' type=.MyContainer origin=null i: CALL 'public final fun get ($context_receiver_0: kotlin.Int, index: kotlin.Int): kotlin.Int declared in ' type=kotlin.Int origin=GET_ARRAY_ELEMENT $receiver: BLOCK type=.MyContainer origin=POSTFIX_INCR VAR IR_TEMPORARY_VARIABLE name:tmp_2 type:.MyContainer [val] GET_VAR 'var myContainer: .MyContainer declared in .box' type=.MyContainer origin=POSTFIX_INCR SET_VAR 'var myContainer: .MyContainer declared in .box' type=kotlin.Unit origin=POSTFIX_INCR CALL 'public final fun inc ($context_receiver_0: kotlin.Int): .MyContainer declared in ' type=.MyContainer origin=POSTFIX_INCR $receiver: GET_VAR 'val tmp_2: .MyContainer declared in .box.' type=.MyContainer origin=null $context_receiver_0: GET_VAR '$this$with: kotlin.Int declared in .box.' type=kotlin.Int origin=null GET_VAR 'val tmp_2: .MyContainer declared in .box.' type=.MyContainer origin=null $context_receiver_0: GET_VAR '$this$with: kotlin.Int declared in .box.' type=kotlin.Int origin=null index: CONST Int type=kotlin.Int value=0 RETURN type=kotlin.Nothing from='public final fun box (): kotlin.String declared in ' WHEN type=kotlin.String origin=IF BRANCH if: WHEN type=kotlin.Boolean origin=ANDAND 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 arg0: CALL 'public final fun (): kotlin.Int declared in .MyContainer' type=kotlin.Int origin=GET_PROPERTY $this: GET_VAR 'var myContainer: .MyContainer declared in .box' type=.MyContainer origin=null arg1: CONST Int type=kotlin.Int value=1 then: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EQEQ arg0: CALL 'public final fun (): kotlin.Int declared in ' type=kotlin.Int origin=GET_PROPERTY arg1: CONST Int type=kotlin.Int value=3 BRANCH if: CONST Boolean type=kotlin.Boolean value=true then: CONST Boolean type=kotlin.Boolean value=false then: CONST String type=kotlin.String value="OK" BRANCH if: CONST Boolean type=kotlin.Boolean value=true then: CONST String type=kotlin.String value="fail"