FILE fqName:<root> fileName:/jvmFieldWithIntersectionTypes.kt
  CLASS CLASS name:Derived1 modality:FINAL visibility:public superTypes:[<root>.JFieldOwner; <root>.IFoo]
    thisReceiver: VALUE_PARAMETER INSTANCE_RECEIVER kind:DispatchReceiver name:<this> type:<root>.Derived1
    CONSTRUCTOR visibility:public returnType:<root>.Derived1 [primary]
      BLOCK_BODY
        DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.JFieldOwner'
        INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:Derived1 modality:FINAL visibility:public superTypes:[<root>.JFieldOwner; <root>.IFoo]' 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 <root>.JFieldOwner
        public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.IFoo
    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 <root>.JFieldOwner
        public open fun hashCode (): kotlin.Int declared in <root>.IFoo
    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 <root>.JFieldOwner
        public open fun toString (): kotlin.String declared in <root>.IFoo
    PROPERTY FAKE_OVERRIDE name:f visibility:public modality:FINAL [fake_override,var]
      overridden:
        public final f: kotlin.Int declared in <root>.JFieldOwner
  CLASS CLASS name:Derived2 modality:FINAL visibility:public superTypes:[<root>.JFieldOwner; <root>.IFoo]
    thisReceiver: VALUE_PARAMETER INSTANCE_RECEIVER kind:DispatchReceiver name:<this> type:<root>.Derived2
    CONSTRUCTOR visibility:public returnType:<root>.Derived2 [primary]
      BLOCK_BODY
        DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.JFieldOwner'
        INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:Derived2 modality:FINAL visibility:public superTypes:[<root>.JFieldOwner; <root>.IFoo]' 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 <root>.JFieldOwner
        public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.IFoo
    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 <root>.JFieldOwner
        public open fun hashCode (): kotlin.Int declared in <root>.IFoo
    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 <root>.JFieldOwner
        public open fun toString (): kotlin.String declared in <root>.IFoo
    PROPERTY FAKE_OVERRIDE name:f visibility:public modality:FINAL [fake_override,var]
      overridden:
        public final f: kotlin.Int declared in <root>.JFieldOwner
  CLASS CLASS name:DerivedThroughMid1 modality:FINAL visibility:public superTypes:[<root>.Mid; <root>.IFoo]
    thisReceiver: VALUE_PARAMETER INSTANCE_RECEIVER kind:DispatchReceiver name:<this> type:<root>.DerivedThroughMid1
    CONSTRUCTOR visibility:public returnType:<root>.DerivedThroughMid1 [primary]
      BLOCK_BODY
        DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Mid'
        INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:DerivedThroughMid1 modality:FINAL visibility:public superTypes:[<root>.Mid; <root>.IFoo]' 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 <root>.Mid
        public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.IFoo
    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 <root>.Mid
        public open fun hashCode (): kotlin.Int declared in <root>.IFoo
    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 <root>.Mid
        public open fun toString (): kotlin.String declared in <root>.IFoo
    PROPERTY FAKE_OVERRIDE name:f visibility:public modality:FINAL [fake_override,var]
      overridden:
        public final f declared in <root>.Mid
  CLASS CLASS name:DerivedThroughMid2 modality:FINAL visibility:public superTypes:[<root>.Mid; <root>.IFoo]
    thisReceiver: VALUE_PARAMETER INSTANCE_RECEIVER kind:DispatchReceiver name:<this> type:<root>.DerivedThroughMid2
    CONSTRUCTOR visibility:public returnType:<root>.DerivedThroughMid2 [primary]
      BLOCK_BODY
        DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Mid'
        INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:DerivedThroughMid2 modality:FINAL visibility:public superTypes:[<root>.Mid; <root>.IFoo]' 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 <root>.Mid
        public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.IFoo
    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 <root>.Mid
        public open fun hashCode (): kotlin.Int declared in <root>.IFoo
    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 <root>.Mid
        public open fun toString (): kotlin.String declared in <root>.IFoo
    PROPERTY FAKE_OVERRIDE name:f visibility:public modality:FINAL [fake_override,var]
      overridden:
        public final f declared in <root>.Mid
  CLASS CLASS name:Mid modality:OPEN visibility:public superTypes:[<root>.JFieldOwner]
    thisReceiver: VALUE_PARAMETER INSTANCE_RECEIVER kind:DispatchReceiver name:<this> type:<root>.Mid
    CONSTRUCTOR visibility:public returnType:<root>.Mid [primary]
      BLOCK_BODY
        DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.JFieldOwner'
        INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:Mid modality:OPEN visibility:public superTypes:[<root>.JFieldOwner]' 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 <root>.JFieldOwner
    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 <root>.JFieldOwner
    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 <root>.JFieldOwner
    PROPERTY FAKE_OVERRIDE name:f visibility:public modality:FINAL [fake_override,var]
      overridden:
        public final f: kotlin.Int declared in <root>.JFieldOwner
  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
  FUN name:test visibility:public modality:FINAL returnType:kotlin.Unit
    VALUE_PARAMETER kind:Regular name:b index:0 type:kotlin.Boolean
    BLOCK_BODY
      VAR name:d1 type:<root>.Derived1 [val]
        CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Derived1' type=<root>.Derived1 origin=null
      VAR name:d2 type:<root>.Derived2 [val]
        CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Derived2' type=<root>.Derived2 origin=null
      VAR name:k type:kotlin.Any [val]
        WHEN type=kotlin.Any origin=IF
          BRANCH
            if: GET_VAR 'b: kotlin.Boolean declared in <root>.test' type=kotlin.Boolean origin=null
            then: GET_VAR 'val d1: <root>.Derived1 declared in <root>.test' type=<root>.Derived1 origin=null
          BRANCH
            if: CONST Boolean type=kotlin.Boolean value=true
            then: GET_VAR 'val d2: <root>.Derived2 declared in <root>.test' type=<root>.Derived2 origin=null
      SET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:f type:kotlin.Int visibility:public declared in <root>.JFieldOwner' type=kotlin.Unit superQualifierSymbol=<root>.JFieldOwner origin=EQ
        receiver: TYPE_OP type=<root>.JFieldOwner origin=IMPLICIT_CAST typeOperand=<root>.JFieldOwner
          GET_VAR 'val k: kotlin.Any declared in <root>.test' type=kotlin.Any origin=null
        value: CONST Int type=kotlin.Int value=42
      TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
        GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:f type:kotlin.Int visibility:public declared in <root>.JFieldOwner' type=kotlin.Int superQualifierSymbol=<root>.JFieldOwner origin=null
          receiver: TYPE_OP type=<root>.JFieldOwner origin=IMPLICIT_CAST typeOperand=<root>.JFieldOwner
            GET_VAR 'val k: kotlin.Any declared in <root>.test' type=kotlin.Any origin=null
      VAR name:md1 type:<root>.DerivedThroughMid1 [val]
        CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.DerivedThroughMid1' type=<root>.DerivedThroughMid1 origin=null
      VAR name:md2 type:<root>.DerivedThroughMid2 [val]
        CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.DerivedThroughMid2' type=<root>.DerivedThroughMid2 origin=null
      VAR name:mk type:kotlin.Any [val]
        WHEN type=kotlin.Any origin=IF
          BRANCH
            if: GET_VAR 'b: kotlin.Boolean declared in <root>.test' type=kotlin.Boolean origin=null
            then: GET_VAR 'val md1: <root>.DerivedThroughMid1 declared in <root>.test' type=<root>.DerivedThroughMid1 origin=null
          BRANCH
            if: CONST Boolean type=kotlin.Boolean value=true
            then: GET_VAR 'val md2: <root>.DerivedThroughMid2 declared in <root>.test' type=<root>.DerivedThroughMid2 origin=null
      SET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:f type:kotlin.Int visibility:public declared in <root>.JFieldOwner' type=kotlin.Unit superQualifierSymbol=<root>.Mid origin=EQ
        receiver: TYPE_OP type=<root>.Mid origin=IMPLICIT_CAST typeOperand=<root>.Mid
          GET_VAR 'val mk: kotlin.Any declared in <root>.test' type=kotlin.Any origin=null
        value: CONST Int type=kotlin.Int value=44
      TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
        GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:f type:kotlin.Int visibility:public declared in <root>.JFieldOwner' type=kotlin.Int superQualifierSymbol=<root>.Mid origin=null
          receiver: TYPE_OP type=<root>.Mid origin=IMPLICIT_CAST typeOperand=<root>.Mid
            GET_VAR 'val mk: kotlin.Any declared in <root>.test' type=kotlin.Any origin=null
