FILE fqName: fileName:/partialSam.kt PROPERTY name:fsi visibility:public modality:FINAL [val] FIELD PROPERTY_BACKING_FIELD name:fsi type:.Fn visibility:private [final,static] EXPRESSION_BODY BLOCK type=.fsi. origin=OBJECT_LITERAL CLASS CLASS name: modality:FINAL visibility:local superTypes:[.Fn] $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.fsi. CONSTRUCTOR visibility:public <> () returnType:.fsi. [primary] BLOCK_BODY DELEGATING_CONSTRUCTOR_CALL 'public constructor () declared in kotlin.Any' INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name: modality:FINAL visibility:local superTypes:[.Fn]' FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator] overridden: public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in .Fn $this: VALUE_PARAMETER name: type:kotlin.Any VALUE_PARAMETER name:other index:0 type:kotlin.Any? FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override] overridden: public open fun hashCode (): kotlin.Int declared in .Fn $this: VALUE_PARAMETER name: type:kotlin.Any FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override] overridden: public open fun toString (): kotlin.String declared in .Fn $this: VALUE_PARAMETER name: type:kotlin.Any FUN name:run visibility:public modality:OPEN <> ($this:.fsi., s:kotlin.String, i:kotlin.Int, t:kotlin.String) returnType:kotlin.Int overridden: public abstract fun run (s: kotlin.String, i: kotlin.Int, t: T of .Fn): R of .Fn declared in .Fn $this: VALUE_PARAMETER name: type:.fsi. VALUE_PARAMETER name:s index:0 type:kotlin.String VALUE_PARAMETER name:i index:1 type:kotlin.Int VALUE_PARAMETER name:t index:2 type:kotlin.String BLOCK_BODY RETURN type=kotlin.Nothing from='public open fun run (s: kotlin.String, i: kotlin.Int, t: kotlin.String): kotlin.Int declared in .fsi.' CONST Int type=kotlin.Int value=1 CONSTRUCTOR_CALL 'public constructor () declared in .fsi.' type=.fsi. origin=OBJECT_LITERAL FUN DEFAULT_PROPERTY_ACCESSOR name: visibility:public modality:FINAL <> () returnType:.Fn correspondingProperty: PROPERTY name:fsi visibility:public modality:FINAL [val] BLOCK_BODY RETURN type=kotlin.Nothing from='public final fun (): .Fn declared in ' GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:fsi type:.Fn visibility:private [final,static]' type=.Fn origin=null PROPERTY name:fis visibility:public modality:FINAL [val] FIELD PROPERTY_BACKING_FIELD name:fis type:.Fn visibility:private [final,static] EXPRESSION_BODY BLOCK type=.fis. origin=OBJECT_LITERAL CLASS CLASS name: modality:FINAL visibility:local superTypes:[.Fn] $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.fis. CONSTRUCTOR visibility:public <> () returnType:.fis. [primary] BLOCK_BODY DELEGATING_CONSTRUCTOR_CALL 'public constructor () declared in kotlin.Any' INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name: modality:FINAL visibility:local superTypes:[.Fn]' FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator] overridden: public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in .Fn $this: VALUE_PARAMETER name: type:kotlin.Any VALUE_PARAMETER name:other index:0 type:kotlin.Any? FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override] overridden: public open fun hashCode (): kotlin.Int declared in .Fn $this: VALUE_PARAMETER name: type:kotlin.Any FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override] overridden: public open fun toString (): kotlin.String declared in .Fn $this: VALUE_PARAMETER name: type:kotlin.Any FUN name:run visibility:public modality:OPEN <> ($this:.fis., s:kotlin.String, i:kotlin.Int, t:kotlin.Int) returnType:kotlin.String overridden: public abstract fun run (s: kotlin.String, i: kotlin.Int, t: T of .Fn): R of .Fn declared in .Fn $this: VALUE_PARAMETER name: type:.fis. VALUE_PARAMETER name:s index:0 type:kotlin.String VALUE_PARAMETER name:i index:1 type:kotlin.Int VALUE_PARAMETER name:t index:2 type:kotlin.Int BLOCK_BODY RETURN type=kotlin.Nothing from='public open fun run (s: kotlin.String, i: kotlin.Int, t: kotlin.Int): kotlin.String declared in .fis.' CONST String type=kotlin.String value="" CONSTRUCTOR_CALL 'public constructor () declared in .fis.' type=.fis. origin=OBJECT_LITERAL FUN DEFAULT_PROPERTY_ACCESSOR name: visibility:public modality:FINAL <> () returnType:.Fn correspondingProperty: PROPERTY name:fis visibility:public modality:FINAL [val] BLOCK_BODY RETURN type=kotlin.Nothing from='public final fun (): .Fn declared in ' GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:fis type:.Fn visibility:private [final,static]' type=.Fn origin=null CLASS CLASS name:J modality:FINAL visibility:public superTypes:[kotlin.Any] $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.J CONSTRUCTOR visibility:public <> () returnType:.J [primary] BLOCK_BODY DELEGATING_CONSTRUCTOR_CALL 'public constructor () declared in kotlin.Any' INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:J modality:FINAL visibility:public superTypes:[kotlin.Any]' FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator] overridden: public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in kotlin.Any $this: VALUE_PARAMETER name: type:kotlin.Any VALUE_PARAMETER name:other index:0 type:kotlin.Any? FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override] overridden: public open fun hashCode (): kotlin.Int declared in kotlin.Any $this: VALUE_PARAMETER name: type:kotlin.Any FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override] overridden: public open fun toString (): kotlin.String declared in kotlin.Any $this: VALUE_PARAMETER name: type:kotlin.Any FUN name:runConversion visibility:public modality:FINAL <> ($this:.J, f1:.Fn, f2:.Fn) returnType:kotlin.Int $this: VALUE_PARAMETER name: type:.J VALUE_PARAMETER name:f1 index:0 type:.Fn VALUE_PARAMETER name:f2 index:1 type:.Fn BLOCK_BODY RETURN type=kotlin.Nothing from='public final fun runConversion (f1: .Fn, f2: .Fn): kotlin.Int declared in .J' CALL 'public abstract fun run (s: kotlin.String, i: kotlin.Int, t: T of .Fn): R of .Fn declared in .Fn' type=kotlin.Int origin=null $this: GET_VAR 'f1: .Fn declared in .J.runConversion' type=.Fn origin=null s: CONST String type=kotlin.String value="Bar" i: CONST Int type=kotlin.Int value=1 t: CALL 'public abstract fun run (s: kotlin.String, i: kotlin.Int, t: T of .Fn): R of .Fn declared in .Fn' type=kotlin.String origin=null $this: GET_VAR 'f2: .Fn declared in .J.runConversion' type=.Fn origin=null s: CONST String type=kotlin.String value="Foo" i: CONST Int type=kotlin.Int value=42 t: CONST Int type=kotlin.Int value=239 CLASS INTERFACE name:Fn modality:ABSTRACT visibility:public [fun] superTypes:[kotlin.Any] $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.Fn.Fn, R of .Fn> TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false TYPE_PARAMETER name:R index:1 variance: superTypes:[kotlin.Any?] reified:false FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator] overridden: public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in kotlin.Any $this: VALUE_PARAMETER name: type:kotlin.Any VALUE_PARAMETER name:other index:0 type:kotlin.Any? FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override] overridden: public open fun hashCode (): kotlin.Int declared in kotlin.Any $this: VALUE_PARAMETER name: type:kotlin.Any FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override] overridden: public open fun toString (): kotlin.String declared in kotlin.Any $this: VALUE_PARAMETER name: type:kotlin.Any FUN name:run visibility:public modality:ABSTRACT <> ($this:.Fn.Fn, R of .Fn>, s:kotlin.String, i:kotlin.Int, t:T of .Fn) returnType:R of .Fn $this: VALUE_PARAMETER name: type:.Fn.Fn, R of .Fn> VALUE_PARAMETER name:s index:0 type:kotlin.String VALUE_PARAMETER name:i index:1 type:kotlin.Int VALUE_PARAMETER name:t index:2 type:T of .Fn FUN name:test visibility:public modality:FINAL <> (j:.J) returnType:kotlin.Unit VALUE_PARAMETER name:j index:0 type:.J BLOCK_BODY TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit CALL 'public final fun runConversion (f1: .Fn, f2: .Fn): kotlin.Int declared in .J' type=kotlin.Int origin=null $this: GET_VAR 'j: .J declared in .test' type=.J origin=null f1: CALL 'public final fun (): .Fn declared in ' type=.Fn origin=GET_PROPERTY f2: TYPE_OP type=.Fn origin=SAM_CONVERSION typeOperand=.Fn FUN_EXPR type=kotlin.Function3<@[ParameterName(name = "s")] kotlin.String, @[ParameterName(name = "i")] kotlin.Int, @[ParameterName(name = "t")] kotlin.Int, kotlin.String> origin=LAMBDA FUN LOCAL_FUNCTION_FOR_LAMBDA name: visibility:local modality:FINAL <> (s:kotlin.String, i:kotlin.Int, ti:kotlin.Int) returnType:kotlin.String VALUE_PARAMETER name:s index:0 type:kotlin.String VALUE_PARAMETER name:i index:1 type:kotlin.Int VALUE_PARAMETER name:ti index:2 type:kotlin.Int BLOCK_BODY RETURN type=kotlin.Nothing from='local final fun (s: kotlin.String, i: kotlin.Int, ti: kotlin.Int): kotlin.String declared in .test' CONST String type=kotlin.String value="" TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit CALL 'public final fun runConversion (f1: .Fn, f2: .Fn): kotlin.Int declared in .J' type=kotlin.Int origin=null $this: GET_VAR 'j: .J declared in .test' type=.J origin=null f1: TYPE_OP type=.Fn origin=SAM_CONVERSION typeOperand=.Fn FUN_EXPR type=kotlin.Function3<@[ParameterName(name = "s")] kotlin.String, @[ParameterName(name = "i")] kotlin.Int, @[ParameterName(name = "t")] kotlin.String, kotlin.Int> origin=LAMBDA FUN LOCAL_FUNCTION_FOR_LAMBDA name: visibility:local modality:FINAL <> (s:kotlin.String, i:kotlin.Int, ts:kotlin.String) returnType:kotlin.Int VALUE_PARAMETER name:s index:0 type:kotlin.String VALUE_PARAMETER name:i index:1 type:kotlin.Int VALUE_PARAMETER name:ts index:2 type:kotlin.String BLOCK_BODY RETURN type=kotlin.Nothing from='local final fun (s: kotlin.String, i: kotlin.Int, ts: kotlin.String): kotlin.Int declared in .test' CONST Int type=kotlin.Int value=1 f2: CALL 'public final fun (): .Fn declared in ' type=.Fn origin=GET_PROPERTY