FILE fqName: fileName:/compareTo.kt CLASS CLASS name:Pair modality:FINAL visibility:public [data] superTypes:[kotlin.Any] $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.Pair.Pair, B of .Pair> TYPE_PARAMETER name:A index:0 variance: superTypes:[kotlin.Any?] reified:false TYPE_PARAMETER name:B index:1 variance: superTypes:[kotlin.Any?] reified:false PROPERTY name:first visibility:public modality:FINAL [val] FIELD PROPERTY_BACKING_FIELD name:first type:A of .Pair visibility:private [final] EXPRESSION_BODY GET_VAR 'first: A of .Pair declared in .Pair.' type=A of .Pair origin=INITIALIZE_PROPERTY_FROM_PARAMETER FUN DEFAULT_PROPERTY_ACCESSOR name: visibility:public modality:FINAL <> ($this:.Pair.Pair, B of .Pair>) returnType:A of .Pair correspondingProperty: PROPERTY name:first visibility:public modality:FINAL [val] $this: VALUE_PARAMETER name: type:.Pair.Pair, B of .Pair> BLOCK_BODY RETURN type=kotlin.Nothing from='public final fun (): A of .Pair declared in .Pair' GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:first type:A of .Pair visibility:private [final]' type=A of .Pair origin=null receiver: GET_VAR ': .Pair.Pair, B of .Pair> declared in .Pair.' type=.Pair.Pair, B of .Pair> origin=null PROPERTY name:second visibility:public modality:FINAL [val] FIELD PROPERTY_BACKING_FIELD name:second type:B of .Pair visibility:private [final] EXPRESSION_BODY GET_VAR 'second: B of .Pair declared in .Pair.' type=B of .Pair origin=INITIALIZE_PROPERTY_FROM_PARAMETER FUN DEFAULT_PROPERTY_ACCESSOR name: visibility:public modality:FINAL <> ($this:.Pair.Pair, B of .Pair>) returnType:B of .Pair correspondingProperty: PROPERTY name:second visibility:public modality:FINAL [val] $this: VALUE_PARAMETER name: type:.Pair.Pair, B of .Pair> BLOCK_BODY RETURN type=kotlin.Nothing from='public final fun (): B of .Pair declared in .Pair' GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:second type:B of .Pair visibility:private [final]' type=B of .Pair origin=null receiver: GET_VAR ': .Pair.Pair, B of .Pair> declared in .Pair.' type=.Pair.Pair, B of .Pair> origin=null CONSTRUCTOR visibility:public <> (first:A of .Pair, second:B of .Pair) returnType:.Pair.Pair, B of .Pair> [primary] VALUE_PARAMETER name:first index:0 type:A of .Pair VALUE_PARAMETER name:second index:1 type:B of .Pair BLOCK_BODY DELEGATING_CONSTRUCTOR_CALL 'public constructor () declared in kotlin.Any' INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:Pair modality:FINAL visibility:public [data] superTypes:[kotlin.Any]' FUN GENERATED_DATA_CLASS_MEMBER name:component1 visibility:public modality:FINAL <> ($this:.Pair.Pair, B of .Pair>) returnType:A of .Pair [operator] $this: VALUE_PARAMETER name: type:.Pair.Pair, B of .Pair> BLOCK_BODY RETURN type=kotlin.Nothing from='public final fun component1 (): A of .Pair declared in .Pair' GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:first type:A of .Pair visibility:private [final]' type=A of .Pair origin=null receiver: GET_VAR ': .Pair.Pair, B of .Pair> declared in .Pair.component1' type=.Pair.Pair, B of .Pair> origin=null FUN GENERATED_DATA_CLASS_MEMBER name:component2 visibility:public modality:FINAL <> ($this:.Pair.Pair, B of .Pair>) returnType:B of .Pair [operator] $this: VALUE_PARAMETER name: type:.Pair.Pair, B of .Pair> BLOCK_BODY RETURN type=kotlin.Nothing from='public final fun component2 (): B of .Pair declared in .Pair' GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:second type:B of .Pair visibility:private [final]' type=B of .Pair origin=null receiver: GET_VAR ': .Pair.Pair, B of .Pair> declared in .Pair.component2' type=.Pair.Pair, B of .Pair> origin=null FUN GENERATED_DATA_CLASS_MEMBER name:copy visibility:public modality:FINAL <> ($this:.Pair.Pair, B of .Pair>, first:A of .Pair, second:B of .Pair) returnType:.Pair.Pair, B of .Pair> $this: VALUE_PARAMETER name: type:.Pair.Pair, B of .Pair> VALUE_PARAMETER name:first index:0 type:A of .Pair EXPRESSION_BODY GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:first type:A of .Pair visibility:private [final]' type=A of .Pair origin=null receiver: GET_VAR ': .Pair.Pair, B of .Pair> declared in .Pair.copy' type=.Pair.Pair, B of .Pair> origin=null VALUE_PARAMETER name:second index:1 type:B of .Pair EXPRESSION_BODY GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:second type:B of .Pair visibility:private [final]' type=B of .Pair origin=null receiver: GET_VAR ': .Pair.Pair, B of .Pair> declared in .Pair.copy' type=.Pair.Pair, B of .Pair> origin=null BLOCK_BODY RETURN type=kotlin.Nothing from='public final fun copy (first: A of .Pair, second: B of .Pair): .Pair.Pair, B of .Pair> declared in .Pair' CONSTRUCTOR_CALL 'public constructor (first: A of .Pair, second: B of .Pair) declared in .Pair' type=.Pair.Pair, B of .Pair> origin=null : A of .Pair : B of .Pair first: GET_VAR 'first: A of .Pair declared in .Pair.copy' type=A of .Pair origin=null second: GET_VAR 'second: B of .Pair declared in .Pair.copy' type=B of .Pair origin=null FUN GENERATED_DATA_CLASS_MEMBER name:equals visibility:public modality:OPEN <> ($this:.Pair.Pair, B of .Pair>, 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:.Pair.Pair, B of .Pair> 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 ': .Pair.Pair, B of .Pair> declared in .Pair.equals' type=.Pair.Pair, B of .Pair> origin=null arg1: GET_VAR 'other: kotlin.Any? declared in .Pair.equals' type=kotlin.Any? origin=null then: RETURN type=kotlin.Nothing from='public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in .Pair' CONST Boolean type=kotlin.Boolean value=true WHEN type=kotlin.Unit origin=null BRANCH if: TYPE_OP type=kotlin.Boolean origin=NOT_INSTANCEOF typeOperand=.Pair.Pair, B of .Pair> GET_VAR 'other: kotlin.Any? declared in .Pair.equals' type=kotlin.Any? origin=null then: RETURN type=kotlin.Nothing from='public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in .Pair' CONST Boolean type=kotlin.Boolean value=false VAR IR_TEMPORARY_VARIABLE name:tmp_0 type:.Pair.Pair, B of .Pair> [val] TYPE_OP type=.Pair.Pair, B of .Pair> origin=CAST typeOperand=.Pair.Pair, B of .Pair> GET_VAR 'other: kotlin.Any? declared in .Pair.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:first type:A of .Pair visibility:private [final]' type=A of .Pair origin=null receiver: GET_VAR ': .Pair.Pair, B of .Pair> declared in .Pair.equals' type=.Pair.Pair, B of .Pair> origin=null arg1: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:first type:A of .Pair visibility:private [final]' type=A of .Pair origin=null receiver: GET_VAR 'val tmp_0: .Pair.Pair, B of .Pair> declared in .Pair.equals' type=.Pair.Pair, B of .Pair> origin=null then: RETURN type=kotlin.Nothing from='public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in .Pair' 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 $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:second type:B of .Pair visibility:private [final]' type=B of .Pair origin=null receiver: GET_VAR ': .Pair.Pair, B of .Pair> declared in .Pair.equals' type=.Pair.Pair, B of .Pair> origin=null arg1: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:second type:B of .Pair visibility:private [final]' type=B of .Pair origin=null receiver: GET_VAR 'val tmp_0: .Pair.Pair, B of .Pair> declared in .Pair.equals' type=.Pair.Pair, B of .Pair> origin=null then: RETURN type=kotlin.Nothing from='public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in .Pair' CONST Boolean type=kotlin.Boolean value=false RETURN type=kotlin.Nothing from='public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in .Pair' CONST Boolean type=kotlin.Boolean value=true FUN GENERATED_DATA_CLASS_MEMBER name:hashCode visibility:public modality:OPEN <> ($this:.Pair.Pair, B of .Pair>) returnType:kotlin.Int overridden: public open fun hashCode (): kotlin.Int declared in kotlin.Any $this: VALUE_PARAMETER name: type:.Pair.Pair, B of .Pair> 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 arg0: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:first type:A of .Pair visibility:private [final]' type=A of .Pair origin=null receiver: GET_VAR ': .Pair.Pair, B of .Pair> declared in .Pair.hashCode' type=.Pair.Pair, B of .Pair> origin=null 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 $this: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:first type:A of .Pair visibility:private [final]' type=A of .Pair origin=null receiver: GET_VAR ': .Pair.Pair, B of .Pair> declared in .Pair.hashCode' type=.Pair.Pair, B of .Pair> origin=null SET_VAR 'var result: kotlin.Int declared in .Pair.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 $this: CALL 'public final fun times (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null $this: GET_VAR 'var result: kotlin.Int declared in .Pair.hashCode' type=kotlin.Int origin=null other: CONST Int type=kotlin.Int value=31 other: 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 arg0: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:second type:B of .Pair visibility:private [final]' type=B of .Pair origin=null receiver: GET_VAR ': .Pair.Pair, B of .Pair> declared in .Pair.hashCode' type=.Pair.Pair, B of .Pair> origin=null 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 $this: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:second type:B of .Pair visibility:private [final]' type=B of .Pair origin=null receiver: GET_VAR ': .Pair.Pair, B of .Pair> declared in .Pair.hashCode' type=.Pair.Pair, B of .Pair> origin=null RETURN type=kotlin.Nothing from='public open fun hashCode (): kotlin.Int declared in .Pair' GET_VAR 'var result: kotlin.Int declared in .Pair.hashCode' type=kotlin.Int origin=null FUN GENERATED_DATA_CLASS_MEMBER name:toString visibility:public modality:OPEN <> ($this:.Pair.Pair, B of .Pair>) returnType:kotlin.String overridden: public open fun toString (): kotlin.String declared in kotlin.Any $this: VALUE_PARAMETER name: type:.Pair.Pair, B of .Pair> BLOCK_BODY RETURN type=kotlin.Nothing from='public open fun toString (): kotlin.String declared in .Pair' STRING_CONCATENATION type=kotlin.String CONST String type=kotlin.String value="Pair(" CONST String type=kotlin.String value="first=" GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:first type:A of .Pair visibility:private [final]' type=A of .Pair origin=null receiver: GET_VAR ': .Pair.Pair, B of .Pair> declared in .Pair.toString' type=.Pair.Pair, B of .Pair> origin=null CONST String type=kotlin.String value=", " CONST String type=kotlin.String value="second=" GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:second type:B of .Pair visibility:private [final]' type=B of .Pair origin=null receiver: GET_VAR ': .Pair.Pair, B of .Pair> declared in .Pair.toString' type=.Pair.Pair, B of .Pair> origin=null CONST String type=kotlin.String value=")" FUN name:box visibility:public modality:FINAL <> () returnType:kotlin.String BLOCK_BODY VAR name:comparator type:java.util.Comparator [val] TYPE_OP type=java.util.Comparator origin=SAM_CONVERSION typeOperand=java.util.Comparator FUN_EXPR type=kotlin.Function2<@[FlexibleNullability] kotlin.String?, @[FlexibleNullability] kotlin.String?, kotlin.Int> origin=LAMBDA FUN LOCAL_FUNCTION_FOR_LAMBDA name: visibility:local modality:FINAL <> (a:@[FlexibleNullability] kotlin.String?, b:@[FlexibleNullability] kotlin.String?) returnType:kotlin.Int VALUE_PARAMETER name:a index:0 type:@[FlexibleNullability] kotlin.String? VALUE_PARAMETER name:b index:1 type:@[FlexibleNullability] kotlin.String? BLOCK_BODY RETURN type=kotlin.Nothing from='local final fun (a: @[FlexibleNullability] kotlin.String?, b: @[FlexibleNullability] kotlin.String?): kotlin.Int declared in .box' WHEN type=kotlin.Int origin=IF BRANCH if: WHEN type=kotlin.Boolean origin=OROR 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 'a: @[FlexibleNullability] kotlin.String? declared in .box.' type=@[FlexibleNullability] kotlin.String? origin=null arg1: CONST Null type=kotlin.Nothing? value=null then: CONST Boolean type=kotlin.Boolean value=true BRANCH if: CONST Boolean type=kotlin.Boolean value=true 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: GET_VAR 'b: @[FlexibleNullability] kotlin.String? declared in .box.' type=@[FlexibleNullability] kotlin.String? origin=null 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 compareTo (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null $this: CALL 'public open fun (): kotlin.Int declared in kotlin.String' type=kotlin.Int origin=GET_PROPERTY $this: TYPE_OP type=kotlin.String origin=IMPLICIT_NOTNULL typeOperand=kotlin.String GET_VAR 'a: @[FlexibleNullability] kotlin.String? declared in .box.' type=@[FlexibleNullability] kotlin.String? origin=null other: CALL 'public open fun (): kotlin.Int declared in kotlin.String' type=kotlin.Int origin=GET_PROPERTY $this: TYPE_OP type=kotlin.String origin=IMPLICIT_NOTNULL typeOperand=kotlin.String GET_VAR 'b: @[FlexibleNullability] kotlin.String? declared in .box.' type=@[FlexibleNullability] kotlin.String? origin=null RETURN type=kotlin.Nothing from='public final fun box (): kotlin.String declared in ' CALL 'public final fun with (receiver: T of kotlin.with, block: @[ExtensionFunctionType] kotlin.Function1): R of kotlin.with declared in kotlin' type=kotlin.String origin=null : java.util.Comparator : kotlin.String receiver: GET_VAR 'val comparator: java.util.Comparator declared in .box' type=java.util.Comparator origin=null block: FUN_EXPR type=@[ExtensionFunctionType] kotlin.Function1, kotlin.String> origin=LAMBDA FUN LOCAL_FUNCTION_FOR_LAMBDA name: visibility:local modality:FINAL <> ($receiver:java.util.Comparator) returnType:kotlin.String $receiver: VALUE_PARAMETER name:$this$with type:java.util.Comparator BLOCK_BODY RETURN type=kotlin.Nothing from='local final fun (): kotlin.String declared in .box' CALL 'public final fun ($context_receiver_0: java.util.Comparator.>): T of . declared in ' type=kotlin.String origin=GET_PROPERTY : kotlin.String $receiver: CONSTRUCTOR_CALL 'public constructor (first: A of .Pair, second: B of .Pair) declared in .Pair' type=.Pair origin=null : kotlin.String : kotlin.String first: CONST String type=kotlin.String value="OK" second: CONST String type=kotlin.String value="fail" $context_receiver_0: GET_VAR '$this$with: java.util.Comparator declared in .box.' type=java.util.Comparator origin=null FUN name:compareTo visibility:public modality:FINAL ($receiver:T of .compareTo, $context_receiver_0:java.util.Comparator.compareTo>, other:T of .compareTo) returnType:kotlin.Int [operator,infix] TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false contextReceiverParametersCount: 1 $receiver: VALUE_PARAMETER name: type:T of .compareTo VALUE_PARAMETER name:$context_receiver_0 index:0 type:java.util.Comparator.compareTo> VALUE_PARAMETER name:other index:1 type:T of .compareTo BLOCK_BODY RETURN type=kotlin.Nothing from='public final fun compareTo ($context_receiver_0: java.util.Comparator.compareTo>, other: T of .compareTo): kotlin.Int declared in ' CALL 'public abstract fun compare (p0: @[FlexibleNullability] T of java.util.Comparator?, p1: @[FlexibleNullability] T of java.util.Comparator?): kotlin.Int declared in java.util.Comparator' type=kotlin.Int origin=null $this: GET_VAR '$context_receiver_0: java.util.Comparator.compareTo> declared in .compareTo' type=java.util.Comparator.compareTo> origin=null p0: GET_VAR ': T of .compareTo declared in .compareTo' type=T of .compareTo origin=null p1: GET_VAR 'other: T of .compareTo declared in .compareTo' type=T of .compareTo origin=null PROPERTY name:min visibility:public modality:FINAL [val] FUN name: visibility:public modality:FINAL ($receiver:.Pair., T of .>, $context_receiver_0:java.util.Comparator.>) returnType:T of . correspondingProperty: PROPERTY name:min visibility:public modality:FINAL [val] TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false contextReceiverParametersCount: 1 $receiver: VALUE_PARAMETER name: type:.Pair., T of .> VALUE_PARAMETER name:$context_receiver_0 index:0 type:java.util.Comparator.> BLOCK_BODY RETURN type=kotlin.Nothing from='public final fun ($context_receiver_0: java.util.Comparator.>): T of . declared in ' WHEN type=T of . origin=IF BRANCH if: CALL 'public final fun less (arg0: kotlin.Int, arg1: kotlin.Int): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=LT arg0: CALL 'public final fun compareTo ($context_receiver_0: java.util.Comparator.compareTo>, other: T of .compareTo): kotlin.Int declared in ' type=kotlin.Int origin=LT : T of . $receiver: CALL 'public final fun (): A of .Pair declared in .Pair' type=T of . origin=GET_PROPERTY $this: GET_VAR ': .Pair., T of .> declared in .' type=.Pair., T of .> origin=null $context_receiver_0: GET_VAR '$context_receiver_0: java.util.Comparator.> declared in .' type=java.util.Comparator.> origin=null other: CALL 'public final fun (): B of .Pair declared in .Pair' type=T of . origin=GET_PROPERTY $this: GET_VAR ': .Pair., T of .> declared in .' type=.Pair., T of .> origin=null arg1: CONST Int type=kotlin.Int value=0 then: CALL 'public final fun (): A of .Pair declared in .Pair' type=T of . origin=GET_PROPERTY $this: GET_VAR ': .Pair., T of .> declared in .' type=.Pair., T of .> origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true then: CALL 'public final fun (): B of .Pair declared in .Pair' type=T of . origin=GET_PROPERTY $this: GET_VAR ': .Pair., T of .> declared in .' type=.Pair., T of .> origin=null