FILE fqName:<root> fileName:/multipleImplicitReceivers.kt
  CLASS INTERFACE name:IFoo modality:ABSTRACT visibility:public superTypes:[kotlin.Any]
    thisReceiver: VALUE_PARAMETER INSTANCE_RECEIVER kind:DispatchReceiver name:<this> type:<root>.IFoo
    FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN returnType:kotlin.Boolean [fake_override,operator]
      VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:kotlin.Any
      VALUE_PARAMETER kind:Regular name:other index:1 type:kotlin.Any?
      overridden:
        public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in kotlin.Any
    FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN returnType:kotlin.Int [fake_override]
      VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:kotlin.Any
      overridden:
        public open fun hashCode (): kotlin.Int declared in kotlin.Any
    FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN returnType:kotlin.String [fake_override]
      VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:kotlin.Any
      overridden:
        public open fun toString (): kotlin.String declared in kotlin.Any
    PROPERTY name:foo visibility:public modality:OPEN [val]
      FUN name:<get-foo> visibility:public modality:OPEN returnType:<root>.B
        VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:<root>.IFoo
        VALUE_PARAMETER kind:ExtensionReceiver name:<this> index:1 type:<root>.A
        correspondingProperty: PROPERTY name:foo visibility:public modality:OPEN [val]
        BLOCK_BODY
          RETURN type=kotlin.Nothing from='public open fun <get-foo> (<this>: <root>.A): <root>.B declared in <root>.IFoo'
            GET_OBJECT 'CLASS OBJECT name:B modality:FINAL visibility:public superTypes:[kotlin.Any]' type=<root>.B
  CLASS INTERFACE name:IInvoke modality:ABSTRACT visibility:public superTypes:[kotlin.Any]
    thisReceiver: VALUE_PARAMETER INSTANCE_RECEIVER kind:DispatchReceiver name:<this> type:<root>.IInvoke
    FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN returnType:kotlin.Boolean [fake_override,operator]
      VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:kotlin.Any
      VALUE_PARAMETER kind:Regular name:other index:1 type:kotlin.Any?
      overridden:
        public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in kotlin.Any
    FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN returnType:kotlin.Int [fake_override]
      VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:kotlin.Any
      overridden:
        public open fun hashCode (): kotlin.Int declared in kotlin.Any
    FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN returnType:kotlin.String [fake_override]
      VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:kotlin.Any
      overridden:
        public open fun toString (): kotlin.String declared in kotlin.Any
    FUN name:invoke visibility:public modality:OPEN returnType:kotlin.Int [operator]
      VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:<root>.IInvoke
      VALUE_PARAMETER kind:ExtensionReceiver name:<this> index:1 type:<root>.B
      BLOCK_BODY
        RETURN type=kotlin.Nothing from='public open fun invoke (<this>: <root>.B): kotlin.Int declared in <root>.IInvoke'
          CONST Int type=kotlin.Int value=42
  CLASS OBJECT name:A modality:FINAL visibility:public superTypes:[kotlin.Any]
    thisReceiver: VALUE_PARAMETER INSTANCE_RECEIVER kind:DispatchReceiver name:<this> type:<root>.A
    CONSTRUCTOR visibility:private returnType:<root>.A [primary]
      BLOCK_BODY
        DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in kotlin.Any'
        INSTANCE_INITIALIZER_CALL classDescriptor='CLASS OBJECT name:A modality:FINAL visibility:public superTypes:[kotlin.Any]' type=kotlin.Unit
    FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN returnType:kotlin.Boolean [fake_override,operator]
      VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:kotlin.Any
      VALUE_PARAMETER kind:Regular name:other index:1 type:kotlin.Any?
      overridden:
        public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in kotlin.Any
    FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN returnType:kotlin.Int [fake_override]
      VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:kotlin.Any
      overridden:
        public open fun hashCode (): kotlin.Int declared in kotlin.Any
    FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN returnType:kotlin.String [fake_override]
      VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:kotlin.Any
      overridden:
        public open fun toString (): kotlin.String declared in kotlin.Any
  CLASS OBJECT name:B modality:FINAL visibility:public superTypes:[kotlin.Any]
    thisReceiver: VALUE_PARAMETER INSTANCE_RECEIVER kind:DispatchReceiver name:<this> type:<root>.B
    CONSTRUCTOR visibility:private returnType:<root>.B [primary]
      BLOCK_BODY
        DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in kotlin.Any'
        INSTANCE_INITIALIZER_CALL classDescriptor='CLASS OBJECT name:B modality:FINAL visibility:public superTypes:[kotlin.Any]' type=kotlin.Unit
    FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN returnType:kotlin.Boolean [fake_override,operator]
      VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:kotlin.Any
      VALUE_PARAMETER kind:Regular name:other index:1 type:kotlin.Any?
      overridden:
        public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in kotlin.Any
    FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN returnType:kotlin.Int [fake_override]
      VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:kotlin.Any
      overridden:
        public open fun hashCode (): kotlin.Int declared in kotlin.Any
    FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN returnType:kotlin.String [fake_override]
      VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:kotlin.Any
      overridden:
        public open fun toString (): kotlin.String declared in kotlin.Any
  FUN name:test visibility:public modality:FINAL returnType:kotlin.Unit
    VALUE_PARAMETER kind:Regular name:fooImpl index:0 type:<root>.IFoo
    VALUE_PARAMETER kind:Regular name:invokeImpl index:1 type:<root>.IInvoke
    BLOCK_BODY
      TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
        CALL 'public final fun with <T, R> (receiver: T of kotlin.with, block: @[ExtensionFunctionType] kotlin.Function1<T of kotlin.with, R of kotlin.with>): R of kotlin.with declared in kotlin' type=kotlin.Int origin=null
          TYPE_ARG T: <root>.A
          TYPE_ARG R: kotlin.Int
          ARG receiver: GET_OBJECT 'CLASS OBJECT name:A modality:FINAL visibility:public superTypes:[kotlin.Any]' type=<root>.A
          ARG block: FUN_EXPR type=@[ExtensionFunctionType] kotlin.Function1<<root>.A, kotlin.Int> origin=LAMBDA
            FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL returnType:kotlin.Int
              VALUE_PARAMETER kind:ExtensionReceiver name:$this$with index:0 type:<root>.A
              BLOCK_BODY
                RETURN type=kotlin.Nothing from='local final fun <anonymous> ($this$with: <root>.A): kotlin.Int declared in <root>.test'
                  CALL 'public final fun with <T, R> (receiver: T of kotlin.with, block: @[ExtensionFunctionType] kotlin.Function1<T of kotlin.with, R of kotlin.with>): R of kotlin.with declared in kotlin' type=kotlin.Int origin=null
                    TYPE_ARG T: <root>.IFoo
                    TYPE_ARG R: kotlin.Int
                    ARG receiver: GET_VAR 'fooImpl: <root>.IFoo declared in <root>.test' type=<root>.IFoo origin=null
                    ARG block: FUN_EXPR type=@[ExtensionFunctionType] kotlin.Function1<<root>.IFoo, kotlin.Int> origin=LAMBDA
                      FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL returnType:kotlin.Int
                        VALUE_PARAMETER kind:ExtensionReceiver name:$this$with index:0 type:<root>.IFoo
                        BLOCK_BODY
                          RETURN type=kotlin.Nothing from='local final fun <anonymous> ($this$with: <root>.IFoo): kotlin.Int declared in <root>.test.<anonymous>'
                            CALL 'public final fun with <T, R> (receiver: T of kotlin.with, block: @[ExtensionFunctionType] kotlin.Function1<T of kotlin.with, R of kotlin.with>): R of kotlin.with declared in kotlin' type=kotlin.Int origin=null
                              TYPE_ARG T: <root>.IInvoke
                              TYPE_ARG R: kotlin.Int
                              ARG receiver: GET_VAR 'invokeImpl: <root>.IInvoke declared in <root>.test' type=<root>.IInvoke origin=null
                              ARG block: FUN_EXPR type=@[ExtensionFunctionType] kotlin.Function1<<root>.IInvoke, kotlin.Int> origin=LAMBDA
                                FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL returnType:kotlin.Int
                                  VALUE_PARAMETER kind:ExtensionReceiver name:$this$with index:0 type:<root>.IInvoke
                                  BLOCK_BODY
                                    RETURN type=kotlin.Nothing from='local final fun <anonymous> ($this$with: <root>.IInvoke): kotlin.Int declared in <root>.test.<anonymous>.<anonymous>'
                                      CALL 'public open fun invoke (<this>: <root>.B): kotlin.Int declared in <root>.IInvoke' type=kotlin.Int origin=null
                                        ARG <this>(index:0): GET_VAR '$this$with: <root>.IInvoke declared in <root>.test.<anonymous>.<anonymous>.<anonymous>' type=<root>.IInvoke origin=IMPLICIT_ARGUMENT
                                        ARG <this>(index:1): CALL 'public open fun <get-foo> (<this>: <root>.A): <root>.B declared in <root>.IFoo' type=<root>.B origin=GET_PROPERTY
                                          ARG <this>(index:0): GET_VAR '$this$with: <root>.IFoo declared in <root>.test.<anonymous>.<anonymous>' type=<root>.IFoo origin=IMPLICIT_ARGUMENT
                                          ARG <this>(index:1): GET_VAR '$this$with: <root>.A declared in <root>.test.<anonymous>' type=<root>.A origin=IMPLICIT_ARGUMENT
