FILE fqName: fileName:/genericLocalClassConstructorReference.kt CLASS CLASS name:L modality:OPEN visibility:public superTypes:[kotlin.Any] $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.L.L> TYPE_PARAMETER name:LL index:0 variance: superTypes:[kotlin.Any?] reified:false PROPERTY name:ll visibility:public modality:FINAL [val] FIELD PROPERTY_BACKING_FIELD name:ll type:LL of .L visibility:private [final] EXPRESSION_BODY GET_VAR 'll: LL of .L declared in .L.' type=LL of .L origin=INITIALIZE_PROPERTY_FROM_PARAMETER FUN DEFAULT_PROPERTY_ACCESSOR name: visibility:public modality:FINAL <> ($this:.L.L>) returnType:LL of .L correspondingProperty: PROPERTY name:ll visibility:public modality:FINAL [val] $this: VALUE_PARAMETER name: type:.L.L> BLOCK_BODY RETURN type=kotlin.Nothing from='public final fun (): LL of .L declared in .L' GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:ll type:LL of .L visibility:private [final]' type=LL of .L origin=null receiver: GET_VAR ': .L.L> declared in .L.' type=.L.L> origin=null CONSTRUCTOR visibility:public <> (ll:LL of .L) returnType:.L.L> [primary] VALUE_PARAMETER name:ll index:0 type:LL of .L BLOCK_BODY DELEGATING_CONSTRUCTOR_CALL 'public constructor () declared in kotlin.Any' INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:L modality:OPEN 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 CLASS CLASS name:Rec modality:FINAL visibility:public superTypes:[kotlin.Any] $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.Rec.Rec> TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false PROPERTY name:rt visibility:public modality:FINAL [val] FIELD PROPERTY_BACKING_FIELD name:rt type:T of .Rec visibility:private [final] EXPRESSION_BODY GET_VAR 'rt: T of .Rec declared in .Rec.' type=T of .Rec origin=INITIALIZE_PROPERTY_FROM_PARAMETER FUN DEFAULT_PROPERTY_ACCESSOR name: visibility:public modality:FINAL <> ($this:.Rec.Rec>) returnType:T of .Rec correspondingProperty: PROPERTY name:rt visibility:public modality:FINAL [val] $this: VALUE_PARAMETER name: type:.Rec.Rec> BLOCK_BODY RETURN type=kotlin.Nothing from='public final fun (): T of .Rec declared in .Rec' GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:rt type:T of .Rec visibility:private [final]' type=T of .Rec origin=null receiver: GET_VAR ': .Rec.Rec> declared in .Rec.' type=.Rec.Rec> origin=null CONSTRUCTOR visibility:public <> (rt:T of .Rec) returnType:.Rec.Rec> [primary] VALUE_PARAMETER name:rt index:0 type:T of .Rec BLOCK_BODY DELEGATING_CONSTRUCTOR_CALL 'public constructor () declared in kotlin.Any' INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:Rec 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:fn visibility:public modality:FINAL ($receiver:.Rec.fn>) returnType:.L.fn> TYPE_PARAMETER name:FT index:0 variance: superTypes:[kotlin.Any?] reified:false $receiver: VALUE_PARAMETER name: type:.Rec.fn> BLOCK_BODY CLASS CLASS name:FLocal modality:FINAL visibility:local superTypes:[.L.fn.FLocal>] $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.fn.FLocal.fn.FLocal, FT of .fn> TYPE_PARAMETER name:LT index:0 variance: superTypes:[kotlin.Any?] reified:false PROPERTY name:pt visibility:public modality:FINAL [val] FIELD PROPERTY_BACKING_FIELD name:pt type:FT of .fn visibility:private [final] EXPRESSION_BODY GET_VAR 'pt: FT of .fn declared in .fn.FLocal.' type=FT of .fn origin=INITIALIZE_PROPERTY_FROM_PARAMETER FUN DEFAULT_PROPERTY_ACCESSOR name: visibility:public modality:FINAL <> ($this:.fn.FLocal.fn.FLocal, FT of .fn>) returnType:FT of .fn correspondingProperty: PROPERTY name:pt visibility:public modality:FINAL [val] $this: VALUE_PARAMETER name: type:.fn.FLocal.fn.FLocal, FT of .fn> BLOCK_BODY RETURN type=kotlin.Nothing from='public final fun (): FT of .fn declared in .fn.FLocal' GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:pt type:FT of .fn visibility:private [final]' type=FT of .fn origin=null receiver: GET_VAR ': .fn.FLocal.fn.FLocal, FT of .fn> declared in .fn.FLocal.' type=.fn.FLocal.fn.FLocal, FT of .fn> origin=null CONSTRUCTOR visibility:public <> (lt:LT of .fn.FLocal, pt:FT of .fn) returnType:.fn.FLocal.fn.FLocal, FT of .fn> [primary] VALUE_PARAMETER name:lt index:0 type:LT of .fn.FLocal VALUE_PARAMETER name:pt index:1 type:FT of .fn BLOCK_BODY DELEGATING_CONSTRUCTOR_CALL 'public constructor (ll: LL of .L) declared in .L' : LT of .fn.FLocal ll: GET_VAR 'lt: LT of .fn.FLocal declared in .fn.FLocal.' type=LT of .fn.FLocal origin=null INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:FLocal modality:FINAL visibility:local superTypes:[.L.fn.FLocal>]' 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 .L $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 .L $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 .L $this: VALUE_PARAMETER name: type:kotlin.Any PROPERTY FAKE_OVERRIDE name:ll visibility:public modality:FINAL [fake_override,val] overridden: public final ll: LL of .L FUN FAKE_OVERRIDE name: visibility:public modality:FINAL <> ($this:.L.fn.FLocal>) returnType:LT of .fn.FLocal [fake_override] correspondingProperty: PROPERTY FAKE_OVERRIDE name:ll visibility:public modality:FINAL [fake_override,val] overridden: public final fun (): LL of .L declared in .L $this: VALUE_PARAMETER name: type:.L.fn.FLocal> RETURN type=kotlin.Nothing from='public final fun fn (): .L.fn> declared in ' CALL 'public final fun foo2 (t1: T1 of .foo2, t2: T2 of .foo2, bb: kotlin.Function2.foo2, T2 of .foo2, R of .foo2>): R of .foo2 declared in ' type=.fn.FLocal.fn, FT of .fn> origin=null : FT of .fn : FT of .fn : .fn.FLocal.fn, FT of .fn> t1: CALL 'public final fun (): T of .Rec declared in .Rec' type=FT of .fn origin=GET_PROPERTY $this: GET_VAR ': .Rec.fn> declared in .fn' type=.Rec.fn> origin=null t2: CALL 'public final fun (): T of .Rec declared in .Rec' type=FT of .fn origin=GET_PROPERTY $this: GET_VAR ': .Rec.fn> declared in .fn' type=.Rec.fn> origin=null bb: FUNCTION_REFERENCE 'public constructor (lt: LT of .fn.FLocal, pt: FT of .fn) declared in .fn.FLocal' type=kotlin.reflect.KFunction2.fn, FT of .fn, .fn.FLocal.fn, FT of .fn>> origin=null reflectionTarget= : FT of .fn FUN name:foo2 visibility:public modality:FINAL (t1:T1 of .foo2, t2:T2 of .foo2, bb:kotlin.Function2.foo2, T2 of .foo2, R of .foo2>) returnType:R of .foo2 TYPE_PARAMETER name:T1 index:0 variance: superTypes:[kotlin.Any?] reified:false TYPE_PARAMETER name:T2 index:1 variance: superTypes:[kotlin.Any?] reified:false TYPE_PARAMETER name:R index:2 variance: superTypes:[kotlin.Any?] reified:false VALUE_PARAMETER name:t1 index:0 type:T1 of .foo2 VALUE_PARAMETER name:t2 index:1 type:T2 of .foo2 VALUE_PARAMETER name:bb index:2 type:kotlin.Function2.foo2, T2 of .foo2, R of .foo2> BLOCK_BODY RETURN type=kotlin.Nothing from='public final fun foo2 (t1: T1 of .foo2, t2: T2 of .foo2, bb: kotlin.Function2.foo2, T2 of .foo2, R of .foo2>): R of .foo2 declared in ' CALL 'public abstract fun invoke (p1: P1 of kotlin.Function2, p2: P2 of kotlin.Function2): R of kotlin.Function2 declared in kotlin.Function2' type=R of .foo2 origin=INVOKE $this: GET_VAR 'bb: kotlin.Function2.foo2, T2 of .foo2, R of .foo2> declared in .foo2' type=kotlin.Function2.foo2, T2 of .foo2, R of .foo2> origin=VARIABLE_AS_FUNCTION p1: GET_VAR 't1: T1 of .foo2 declared in .foo2' type=T1 of .foo2 origin=null p2: GET_VAR 't2: T2 of .foo2 declared in .foo2' type=T2 of .foo2 origin=null PROPERTY name:p visibility:public modality:FINAL [val] FUN name: visibility:public modality:FINAL ($receiver:.Rec.>) returnType:.L.> correspondingProperty: PROPERTY name:p visibility:public modality:FINAL [val] TYPE_PARAMETER name:PT index:0 variance: superTypes:[kotlin.Any?] reified:false $receiver: VALUE_PARAMETER name: type:.Rec.> BLOCK_BODY CLASS CLASS name:PLocal modality:FINAL visibility:local superTypes:[.L..PLocal>] $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:..PLocal..PLocal> TYPE_PARAMETER name:LT index:0 variance: superTypes:[kotlin.Any?] reified:false PROPERTY name:pt visibility:public modality:FINAL [val] FIELD PROPERTY_BACKING_FIELD name:pt type:PT of . visibility:private [final] EXPRESSION_BODY GET_VAR 'pt: PT of . declared in ..PLocal.' type=PT of . origin=INITIALIZE_PROPERTY_FROM_PARAMETER FUN DEFAULT_PROPERTY_ACCESSOR name: visibility:public modality:FINAL <> ($this:..PLocal..PLocal>) returnType:PT of . correspondingProperty: PROPERTY name:pt visibility:public modality:FINAL [val] $this: VALUE_PARAMETER name: type:..PLocal..PLocal> BLOCK_BODY RETURN type=kotlin.Nothing from='public final fun (): PT of . declared in ..PLocal' GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:pt type:PT of . visibility:private [final]' type=PT of . origin=null receiver: GET_VAR ': ..PLocal..PLocal> declared in ..PLocal.' type=..PLocal..PLocal> origin=null CONSTRUCTOR visibility:public <> (lt:LT of ..PLocal, pt:PT of .) returnType:..PLocal..PLocal> [primary] VALUE_PARAMETER name:lt index:0 type:LT of ..PLocal VALUE_PARAMETER name:pt index:1 type:PT of . BLOCK_BODY DELEGATING_CONSTRUCTOR_CALL 'public constructor (ll: LL of .L) declared in .L' : LT of ..PLocal ll: GET_VAR 'lt: LT of ..PLocal declared in ..PLocal.' type=LT of ..PLocal origin=null INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:PLocal modality:FINAL visibility:local superTypes:[.L..PLocal>]' 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 .L $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 .L $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 .L $this: VALUE_PARAMETER name: type:kotlin.Any PROPERTY FAKE_OVERRIDE name:ll visibility:public modality:FINAL [fake_override,val] overridden: public final ll: LL of .L FUN FAKE_OVERRIDE name: visibility:public modality:FINAL <> ($this:.L..PLocal>) returnType:LT of ..PLocal [fake_override] correspondingProperty: PROPERTY FAKE_OVERRIDE name:ll visibility:public modality:FINAL [fake_override,val] overridden: public final fun (): LL of .L declared in .L $this: VALUE_PARAMETER name: type:.L..PLocal> RETURN type=kotlin.Nothing from='public final fun (): .L.> declared in ' CALL 'public final fun foo2 (t1: T1 of .foo2, t2: T2 of .foo2, bb: kotlin.Function2.foo2, T2 of .foo2, R of .foo2>): R of .foo2 declared in ' type=..PLocal.> origin=null : PT of . : PT of . : ..PLocal.> t1: CALL 'public final fun (): T of .Rec declared in .Rec' type=PT of . origin=GET_PROPERTY $this: GET_VAR ': .Rec.> declared in .' type=.Rec.> origin=null t2: CALL 'public final fun (): T of .Rec declared in .Rec' type=PT of . origin=GET_PROPERTY $this: GET_VAR ': .Rec.> declared in .' type=.Rec.> origin=null bb: FUNCTION_REFERENCE 'public constructor (lt: LT of ..PLocal, pt: PT of .) declared in ..PLocal' type=kotlin.reflect.KFunction2., PT of ., ..PLocal.>> origin=null reflectionTarget= : PT of .