FILE fqName:test fileName:/test.kt CLASS CLASS name:C modality:FINAL visibility:public superTypes:[.A.B] $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:test.C CONSTRUCTOR visibility:public <> () returnType:test.C [primary] BLOCK_BODY DELEGATING_CONSTRUCTOR_CALL 'public constructor () declared in .A.B' INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:C modality:FINAL visibility:public superTypes:[.A.B]' 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 .A.B $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 .A.B $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 .A.B $this: VALUE_PARAMETER name: type:kotlin.Any FUN name:f visibility:public modality:FINAL <> ($this:test.C) returnType:@[FlexibleNullability] kotlin.String? $this: VALUE_PARAMETER name: type:test.C BLOCK_BODY RETURN type=kotlin.Nothing from='public final fun f (): @[FlexibleNullability] kotlin.String? declared in test.C' CALL 'public final fun eval (f: kotlin.Function0): T of test.eval declared in test' type=@[FlexibleNullability] kotlin.String? origin=null : @[FlexibleNullability] kotlin.String? f: FUN_EXPR type=kotlin.Function0<@[FlexibleNullability] kotlin.String?> origin=LAMBDA FUN LOCAL_FUNCTION_FOR_LAMBDA name: visibility:local modality:FINAL <> () returnType:@[FlexibleNullability] kotlin.String? BLOCK_BODY RETURN type=kotlin.Nothing from='local final fun (): @[FlexibleNullability] kotlin.String? declared in test.C.f' GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:x type:@[FlexibleNullability] kotlin.String? visibility:protected/*protected and package*/' type=@[FlexibleNullability] kotlin.String? origin=null receiver: GET_VAR ': test.C declared in test.C.f' type=test.C origin=null FUN name:g visibility:public modality:FINAL <> ($this:test.C) returnType:@[FlexibleNullability] kotlin.String? $this: VALUE_PARAMETER name: type:test.C BLOCK_BODY RETURN type=kotlin.Nothing from='public final fun g (): @[FlexibleNullability] kotlin.String? declared in test.C' CALL 'public final fun eval (f: kotlin.Function0): T of test.eval declared in test' type=@[FlexibleNullability] kotlin.String? origin=null : @[FlexibleNullability] kotlin.String? f: FUN_EXPR type=kotlin.Function0<@[FlexibleNullability] kotlin.String?> origin=LAMBDA FUN LOCAL_FUNCTION_FOR_LAMBDA name: visibility:local modality:FINAL <> () returnType:@[FlexibleNullability] kotlin.String? BLOCK_BODY RETURN type=kotlin.Nothing from='local final fun (): @[FlexibleNullability] kotlin.String? declared in test.C.g' GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:y type:@[FlexibleNullability] kotlin.String? visibility:protected/*protected and package*/' type=@[FlexibleNullability] kotlin.String? origin=null receiver: GET_VAR ': test.C declared in test.C.g' type=test.C origin=null PROPERTY FAKE_OVERRIDE name:x visibility:protected/*protected and package*/ modality:FINAL [fake_override,var] overridden: protected/*protected and package*/ final x: @[FlexibleNullability] kotlin.String? PROPERTY FAKE_OVERRIDE name:y visibility:protected/*protected and package*/ modality:FINAL [fake_override,var] overridden: protected/*protected and package*/ final y: @[FlexibleNullability] kotlin.String? FUN name:eval visibility:public modality:FINAL (f:kotlin.Function0) returnType:T of test.eval TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false VALUE_PARAMETER name:f index:0 type:kotlin.Function0 BLOCK_BODY RETURN type=kotlin.Nothing from='public final fun eval (f: kotlin.Function0): T of test.eval declared in test' CALL 'public abstract fun invoke (): R of kotlin.Function0 declared in kotlin.Function0' type=T of test.eval origin=INVOKE $this: GET_VAR 'f: kotlin.Function0 declared in test.eval' type=kotlin.Function0 origin=VARIABLE_AS_FUNCTION