FILE fqName:<root> fileName:/clashingFakeOverrideSignatures.kt
  CLASS CLASS name:Base modality:OPEN visibility:public superTypes:[kotlin.Any]
    $this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Base<T of <root>.Base>
    TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
    CONSTRUCTOR visibility:public <> () returnType:<root>.Base<T of <root>.Base> [primary]
      BLOCK_BODY
        DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
        INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:Base modality:OPEN visibility:public superTypes:[kotlin.Any]'
    FUN name:foo visibility:public modality:FINAL <> ($this:<root>.Base<T of <root>.Base>, x:T of <root>.Base) returnType:kotlin.Unit
      $this: VALUE_PARAMETER name:<this> type:<root>.Base<T of <root>.Base>
      VALUE_PARAMETER name:x index:0 type:T of <root>.Base
      BLOCK_BODY
    FUN name:foo visibility:public modality:FINAL <> ($this:<root>.Base<T of <root>.Base>, y:kotlin.String) returnType:kotlin.Unit
      $this: VALUE_PARAMETER name:<this> type:<root>.Base<T of <root>.Base>
      VALUE_PARAMETER name:y index:0 type:kotlin.String
      BLOCK_BODY
    PROPERTY name:bar visibility:public modality:FINAL [val]
      FUN name:<get-bar> visibility:public modality:FINAL <> ($this:<root>.Base<T of <root>.Base>, $receiver:T of <root>.Base) returnType:kotlin.Int
        correspondingProperty: PROPERTY name:bar visibility:public modality:FINAL [val]
        $this: VALUE_PARAMETER name:<this> type:<root>.Base<T of <root>.Base>
        $receiver: VALUE_PARAMETER name:<this> type:T of <root>.Base
        BLOCK_BODY
          RETURN type=kotlin.Nothing from='public final fun <get-bar> (): kotlin.Int declared in <root>.Base'
            CONST Int type=kotlin.Int value=1
    PROPERTY name:bar visibility:public modality:FINAL [val]
      FUN name:<get-bar> visibility:public modality:FINAL <> ($this:<root>.Base<T of <root>.Base>, $receiver:kotlin.String) returnType:kotlin.Int
        correspondingProperty: PROPERTY name:bar visibility:public modality:FINAL [val]
        $this: VALUE_PARAMETER name:<this> type:<root>.Base<T of <root>.Base>
        $receiver: VALUE_PARAMETER name:<this> type:kotlin.String
        BLOCK_BODY
          RETURN type=kotlin.Nothing from='public final fun <get-bar> (): kotlin.Int declared in <root>.Base'
            CONST Int type=kotlin.Int value=2
    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 [operator] declared in kotlin.Any
      $this: VALUE_PARAMETER name:<this> 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:<this> 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:<this> type:kotlin.Any
  CLASS CLASS name:Derived modality:OPEN visibility:public superTypes:[<root>.Base<kotlin.String>]
    $this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Derived
    CONSTRUCTOR visibility:public <> () returnType:<root>.Derived [primary]
      BLOCK_BODY
        DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in <root>.Base'
          <T>: kotlin.String
        INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:Derived modality:OPEN visibility:public superTypes:[<root>.Base<kotlin.String>]'
    FUN FAKE_OVERRIDE name:foo visibility:public modality:FINAL <> ($this:<root>.Base<kotlin.String>, x:kotlin.String) returnType:kotlin.Unit [fake_override]
      overridden:
        public final fun foo (x: T of <root>.Base): kotlin.Unit declared in <root>.Base
      $this: VALUE_PARAMETER name:<this> type:<root>.Base<kotlin.String>
      VALUE_PARAMETER name:x index:0 type:kotlin.String
    FUN FAKE_OVERRIDE name:foo visibility:public modality:FINAL <> ($this:<root>.Base<kotlin.String>, y:kotlin.String) returnType:kotlin.Unit [fake_override]
      overridden:
        public final fun foo (y: kotlin.String): kotlin.Unit declared in <root>.Base
      $this: VALUE_PARAMETER name:<this> type:<root>.Base<kotlin.String>
      VALUE_PARAMETER name:y index:0 type:kotlin.String
    PROPERTY FAKE_OVERRIDE name:bar visibility:public modality:FINAL [fake_override,val]
      overridden:
        public final bar: kotlin.Int [val]
      FUN FAKE_OVERRIDE name:<get-bar> visibility:public modality:FINAL <> ($this:<root>.Base<kotlin.String>, $receiver:kotlin.String) returnType:kotlin.Int [fake_override]
        correspondingProperty: PROPERTY FAKE_OVERRIDE name:bar visibility:public modality:FINAL [fake_override,val]
        overridden:
          public final fun <get-bar> (): kotlin.Int declared in <root>.Base
        $this: VALUE_PARAMETER name:<this> type:<root>.Base<kotlin.String>
        $receiver: VALUE_PARAMETER name:<this> type:kotlin.String
    PROPERTY FAKE_OVERRIDE name:bar visibility:public modality:FINAL [fake_override,val]
      overridden:
        public final bar: kotlin.Int [val]
      FUN FAKE_OVERRIDE name:<get-bar> visibility:public modality:FINAL <> ($this:<root>.Base<kotlin.String>, $receiver:kotlin.String) returnType:kotlin.Int [fake_override]
        correspondingProperty: PROPERTY FAKE_OVERRIDE name:bar visibility:public modality:FINAL [fake_override,val]
        overridden:
          public final fun <get-bar> (): kotlin.Int declared in <root>.Base
        $this: VALUE_PARAMETER name:<this> type:<root>.Base<kotlin.String>
        $receiver: VALUE_PARAMETER name:<this> type:kotlin.String
    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 [fake_override,operator] declared in <root>.Base
      $this: VALUE_PARAMETER name:<this> 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 [fake_override] declared in <root>.Base
      $this: VALUE_PARAMETER name:<this> 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 [fake_override] declared in <root>.Base
      $this: VALUE_PARAMETER name:<this> type:kotlin.Any
  CLASS CLASS name:Derived2 modality:FINAL visibility:public superTypes:[<root>.Derived]
    $this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Derived2
    CONSTRUCTOR visibility:public <> () returnType:<root>.Derived2 [primary]
      BLOCK_BODY
        DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in <root>.Derived'
        INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:Derived2 modality:FINAL visibility:public superTypes:[<root>.Derived]'
    FUN FAKE_OVERRIDE name:foo visibility:public modality:FINAL <> ($this:<root>.Base<kotlin.String>, x:kotlin.String) returnType:kotlin.Unit [fake_override]
      overridden:
        public final fun foo (x: kotlin.String): kotlin.Unit [fake_override] declared in <root>.Derived
      $this: VALUE_PARAMETER name:<this> type:<root>.Base<kotlin.String>
      VALUE_PARAMETER name:x index:0 type:kotlin.String
    FUN FAKE_OVERRIDE name:foo visibility:public modality:FINAL <> ($this:<root>.Base<kotlin.String>, y:kotlin.String) returnType:kotlin.Unit [fake_override]
      overridden:
        public final fun foo (y: kotlin.String): kotlin.Unit [fake_override] declared in <root>.Derived
      $this: VALUE_PARAMETER name:<this> type:<root>.Base<kotlin.String>
      VALUE_PARAMETER name:y index:0 type:kotlin.String
    PROPERTY FAKE_OVERRIDE name:bar visibility:public modality:FINAL [fake_override,val]
      overridden:
        public final bar: kotlin.Int [fake_override,val]
      FUN FAKE_OVERRIDE name:<get-bar> visibility:public modality:FINAL <> ($this:<root>.Base<kotlin.String>, $receiver:kotlin.String) returnType:kotlin.Int [fake_override]
        correspondingProperty: PROPERTY FAKE_OVERRIDE name:bar visibility:public modality:FINAL [fake_override,val]
        overridden:
          public final fun <get-bar> (): kotlin.Int [fake_override] declared in <root>.Derived
        $this: VALUE_PARAMETER name:<this> type:<root>.Base<kotlin.String>
        $receiver: VALUE_PARAMETER name:<this> type:kotlin.String
    PROPERTY FAKE_OVERRIDE name:bar visibility:public modality:FINAL [fake_override,val]
      overridden:
        public final bar: kotlin.Int [fake_override,val]
      FUN FAKE_OVERRIDE name:<get-bar> visibility:public modality:FINAL <> ($this:<root>.Base<kotlin.String>, $receiver:kotlin.String) returnType:kotlin.Int [fake_override]
        correspondingProperty: PROPERTY FAKE_OVERRIDE name:bar visibility:public modality:FINAL [fake_override,val]
        overridden:
          public final fun <get-bar> (): kotlin.Int [fake_override] declared in <root>.Derived
        $this: VALUE_PARAMETER name:<this> type:<root>.Base<kotlin.String>
        $receiver: VALUE_PARAMETER name:<this> type:kotlin.String
    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 [fake_override,operator] declared in <root>.Derived
      $this: VALUE_PARAMETER name:<this> 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 [fake_override] declared in <root>.Derived
      $this: VALUE_PARAMETER name:<this> 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 [fake_override] declared in <root>.Derived
      $this: VALUE_PARAMETER name:<this> type:kotlin.Any
  FUN name:test visibility:public modality:FINAL <> (b:<root>.Base<kotlin.String>, d:<root>.Derived, d2:<root>.Derived2) returnType:kotlin.Unit
    VALUE_PARAMETER name:b index:0 type:<root>.Base<kotlin.String>
    VALUE_PARAMETER name:d index:1 type:<root>.Derived
    VALUE_PARAMETER name:d2 index:2 type:<root>.Derived2
    BLOCK_BODY
      CALL 'public final fun foo (x: T of <root>.Base): kotlin.Unit declared in <root>.Base' type=kotlin.Unit origin=null
        $this: GET_VAR 'b: <root>.Base<kotlin.String> declared in <root>.test' type=<root>.Base<kotlin.String> origin=null
        x: CONST String type=kotlin.String value=""
      CALL 'public final fun foo (y: kotlin.String): kotlin.Unit declared in <root>.Base' type=kotlin.Unit origin=null
        $this: GET_VAR 'b: <root>.Base<kotlin.String> declared in <root>.test' type=<root>.Base<kotlin.String> origin=null
        y: CONST String type=kotlin.String value=""
      CALL 'public final fun foo (x: kotlin.String): kotlin.Unit [fake_override] declared in <root>.Derived' type=kotlin.Unit origin=null
        $this: GET_VAR 'd: <root>.Derived declared in <root>.test' type=<root>.Derived origin=null
        x: CONST String type=kotlin.String value=""
      CALL 'public final fun foo (y: kotlin.String): kotlin.Unit [fake_override] declared in <root>.Derived' type=kotlin.Unit origin=null
        $this: GET_VAR 'd: <root>.Derived declared in <root>.test' type=<root>.Derived origin=null
        y: CONST String type=kotlin.String value=""
      CALL 'public final fun foo (x: kotlin.String): kotlin.Unit [fake_override] declared in <root>.Derived2' type=kotlin.Unit origin=null
        $this: GET_VAR 'd2: <root>.Derived2 declared in <root>.test' type=<root>.Derived2 origin=null
        x: CONST String type=kotlin.String value=""
      CALL 'public final fun foo (y: kotlin.String): kotlin.Unit [fake_override] declared in <root>.Derived2' type=kotlin.Unit origin=null
        $this: GET_VAR 'd2: <root>.Derived2 declared in <root>.test' type=<root>.Derived2 origin=null
        y: CONST String type=kotlin.String value=""
  CLASS CLASS name:BaseXY modality:OPEN visibility:public superTypes:[kotlin.Any]
    $this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.BaseXY<X of <root>.BaseXY, Y of <root>.BaseXY>
    TYPE_PARAMETER name:X index:0 variance: superTypes:[kotlin.Any?] reified:false
    TYPE_PARAMETER name:Y index:1 variance: superTypes:[kotlin.Any?] reified:false
    CONSTRUCTOR visibility:public <> () returnType:<root>.BaseXY<X of <root>.BaseXY, Y of <root>.BaseXY> [primary]
      BLOCK_BODY
        DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
        INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:BaseXY modality:OPEN visibility:public superTypes:[kotlin.Any]'
    FUN name:foo visibility:public modality:FINAL <> ($this:<root>.BaseXY<X of <root>.BaseXY, Y of <root>.BaseXY>, x:X of <root>.BaseXY, y:kotlin.String) returnType:kotlin.Unit
      $this: VALUE_PARAMETER name:<this> type:<root>.BaseXY<X of <root>.BaseXY, Y of <root>.BaseXY>
      VALUE_PARAMETER name:x index:0 type:X of <root>.BaseXY
      VALUE_PARAMETER name:y index:1 type:kotlin.String
      BLOCK_BODY
    FUN name:foo visibility:public modality:FINAL <> ($this:<root>.BaseXY<X of <root>.BaseXY, Y of <root>.BaseXY>, x:kotlin.String, y:Y of <root>.BaseXY) returnType:kotlin.Unit
      $this: VALUE_PARAMETER name:<this> type:<root>.BaseXY<X of <root>.BaseXY, Y of <root>.BaseXY>
      VALUE_PARAMETER name:x index:0 type:kotlin.String
      VALUE_PARAMETER name:y index:1 type:Y of <root>.BaseXY
      BLOCK_BODY
    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 [operator] declared in kotlin.Any
      $this: VALUE_PARAMETER name:<this> 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:<this> 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:<this> type:kotlin.Any
  CLASS CLASS name:DerivedXY modality:FINAL visibility:public superTypes:[<root>.BaseXY<kotlin.String, kotlin.String>]
    $this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.DerivedXY
    CONSTRUCTOR visibility:public <> () returnType:<root>.DerivedXY [primary]
      BLOCK_BODY
        DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in <root>.BaseXY'
          <X>: kotlin.String
          <Y>: kotlin.String
        INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:DerivedXY modality:FINAL visibility:public superTypes:[<root>.BaseXY<kotlin.String, kotlin.String>]'
    FUN FAKE_OVERRIDE name:foo visibility:public modality:FINAL <> ($this:<root>.BaseXY<kotlin.String, kotlin.String>, x:kotlin.String, y:kotlin.String) returnType:kotlin.Unit [fake_override]
      overridden:
        public final fun foo (x: X of <root>.BaseXY, y: kotlin.String): kotlin.Unit declared in <root>.BaseXY
      $this: VALUE_PARAMETER name:<this> type:<root>.BaseXY<kotlin.String, kotlin.String>
      VALUE_PARAMETER name:x index:0 type:kotlin.String
      VALUE_PARAMETER name:y index:1 type:kotlin.String
    FUN FAKE_OVERRIDE name:foo visibility:public modality:FINAL <> ($this:<root>.BaseXY<kotlin.String, kotlin.String>, x:kotlin.String, y:kotlin.String) returnType:kotlin.Unit [fake_override]
      overridden:
        public final fun foo (x: kotlin.String, y: Y of <root>.BaseXY): kotlin.Unit declared in <root>.BaseXY
      $this: VALUE_PARAMETER name:<this> type:<root>.BaseXY<kotlin.String, kotlin.String>
      VALUE_PARAMETER name:x index:0 type:kotlin.String
      VALUE_PARAMETER name:y index:1 type:kotlin.String
    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 [fake_override,operator] declared in <root>.BaseXY
      $this: VALUE_PARAMETER name:<this> 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 [fake_override] declared in <root>.BaseXY
      $this: VALUE_PARAMETER name:<this> 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 [fake_override] declared in <root>.BaseXY
      $this: VALUE_PARAMETER name:<this> type:kotlin.Any
  FUN name:outerFun visibility:public modality:FINAL <> () returnType:kotlin.Unit
    BLOCK_BODY
      CLASS CLASS name:LocalBase modality:OPEN visibility:local superTypes:[kotlin.Any]
        $this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.outerFun.LocalBase<T of <root>.outerFun.LocalBase>
        TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
        CONSTRUCTOR visibility:public <> () returnType:<root>.outerFun.LocalBase<T of <root>.outerFun.LocalBase> [primary]
          BLOCK_BODY
            DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
            INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:LocalBase modality:OPEN visibility:local superTypes:[kotlin.Any]'
        FUN name:foo visibility:public modality:FINAL <> ($this:<root>.outerFun.LocalBase<T of <root>.outerFun.LocalBase>, x:T of <root>.outerFun.LocalBase) returnType:kotlin.Unit
          $this: VALUE_PARAMETER name:<this> type:<root>.outerFun.LocalBase<T of <root>.outerFun.LocalBase>
          VALUE_PARAMETER name:x index:0 type:T of <root>.outerFun.LocalBase
          BLOCK_BODY
        FUN name:foo visibility:public modality:FINAL <> ($this:<root>.outerFun.LocalBase<T of <root>.outerFun.LocalBase>, y:kotlin.String) returnType:kotlin.Unit
          $this: VALUE_PARAMETER name:<this> type:<root>.outerFun.LocalBase<T of <root>.outerFun.LocalBase>
          VALUE_PARAMETER name:y index:0 type:kotlin.String
          BLOCK_BODY
        PROPERTY name:bar visibility:public modality:FINAL [val]
          FUN name:<get-bar> visibility:public modality:FINAL <> ($this:<root>.outerFun.LocalBase<T of <root>.outerFun.LocalBase>, $receiver:T of <root>.outerFun.LocalBase) returnType:kotlin.Int
            correspondingProperty: PROPERTY name:bar visibility:public modality:FINAL [val]
            $this: VALUE_PARAMETER name:<this> type:<root>.outerFun.LocalBase<T of <root>.outerFun.LocalBase>
            $receiver: VALUE_PARAMETER name:<this> type:T of <root>.outerFun.LocalBase
            BLOCK_BODY
              RETURN type=kotlin.Nothing from='public final fun <get-bar> (): kotlin.Int declared in <root>.outerFun.LocalBase'
                CONST Int type=kotlin.Int value=1
        PROPERTY name:bar visibility:public modality:FINAL [val]
          FUN name:<get-bar> visibility:public modality:FINAL <> ($this:<root>.outerFun.LocalBase<T of <root>.outerFun.LocalBase>, $receiver:kotlin.String) returnType:kotlin.Int
            correspondingProperty: PROPERTY name:bar visibility:public modality:FINAL [val]
            $this: VALUE_PARAMETER name:<this> type:<root>.outerFun.LocalBase<T of <root>.outerFun.LocalBase>
            $receiver: VALUE_PARAMETER name:<this> type:kotlin.String
            BLOCK_BODY
              RETURN type=kotlin.Nothing from='public final fun <get-bar> (): kotlin.Int declared in <root>.outerFun.LocalBase'
                CONST Int type=kotlin.Int value=2
        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 [operator] declared in kotlin.Any
          $this: VALUE_PARAMETER name:<this> 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:<this> 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:<this> type:kotlin.Any
      CLASS CLASS name:LocalDerived modality:OPEN visibility:local superTypes:[<root>.outerFun.LocalBase<kotlin.String>]
        $this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.outerFun.LocalDerived
        CONSTRUCTOR visibility:public <> () returnType:<root>.outerFun.LocalDerived [primary]
          BLOCK_BODY
            DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in <root>.outerFun.LocalBase'
              <T>: kotlin.String
            INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:LocalDerived modality:OPEN visibility:local superTypes:[<root>.outerFun.LocalBase<kotlin.String>]'
        FUN FAKE_OVERRIDE name:foo visibility:public modality:FINAL <> ($this:<root>.outerFun.LocalBase<kotlin.String>, x:kotlin.String) returnType:kotlin.Unit [fake_override]
          overridden:
            public final fun foo (x: T of <root>.outerFun.LocalBase): kotlin.Unit declared in <root>.outerFun.LocalBase
          $this: VALUE_PARAMETER name:<this> type:<root>.outerFun.LocalBase<kotlin.String>
          VALUE_PARAMETER name:x index:0 type:kotlin.String
        FUN FAKE_OVERRIDE name:foo visibility:public modality:FINAL <> ($this:<root>.outerFun.LocalBase<kotlin.String>, y:kotlin.String) returnType:kotlin.Unit [fake_override]
          overridden:
            public final fun foo (y: kotlin.String): kotlin.Unit declared in <root>.outerFun.LocalBase
          $this: VALUE_PARAMETER name:<this> type:<root>.outerFun.LocalBase<kotlin.String>
          VALUE_PARAMETER name:y index:0 type:kotlin.String
        PROPERTY FAKE_OVERRIDE name:bar visibility:public modality:FINAL [fake_override,val]
          overridden:
            public final bar: kotlin.Int [val]
          FUN FAKE_OVERRIDE name:<get-bar> visibility:public modality:FINAL <> ($this:<root>.outerFun.LocalBase<kotlin.String>, $receiver:kotlin.String) returnType:kotlin.Int [fake_override]
            correspondingProperty: PROPERTY FAKE_OVERRIDE name:bar visibility:public modality:FINAL [fake_override,val]
            overridden:
              public final fun <get-bar> (): kotlin.Int declared in <root>.outerFun.LocalBase
            $this: VALUE_PARAMETER name:<this> type:<root>.outerFun.LocalBase<kotlin.String>
            $receiver: VALUE_PARAMETER name:<this> type:kotlin.String
        PROPERTY FAKE_OVERRIDE name:bar visibility:public modality:FINAL [fake_override,val]
          overridden:
            public final bar: kotlin.Int [val]
          FUN FAKE_OVERRIDE name:<get-bar> visibility:public modality:FINAL <> ($this:<root>.outerFun.LocalBase<kotlin.String>, $receiver:kotlin.String) returnType:kotlin.Int [fake_override]
            correspondingProperty: PROPERTY FAKE_OVERRIDE name:bar visibility:public modality:FINAL [fake_override,val]
            overridden:
              public final fun <get-bar> (): kotlin.Int declared in <root>.outerFun.LocalBase
            $this: VALUE_PARAMETER name:<this> type:<root>.outerFun.LocalBase<kotlin.String>
            $receiver: VALUE_PARAMETER name:<this> type:kotlin.String
        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 [fake_override,operator] declared in <root>.outerFun.LocalBase
          $this: VALUE_PARAMETER name:<this> 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 [fake_override] declared in <root>.outerFun.LocalBase
          $this: VALUE_PARAMETER name:<this> 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 [fake_override] declared in <root>.outerFun.LocalBase
          $this: VALUE_PARAMETER name:<this> type:kotlin.Any
      CLASS CLASS name:LocalDerived2 modality:FINAL visibility:local superTypes:[<root>.outerFun.LocalDerived]
        $this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.outerFun.LocalDerived2
        CONSTRUCTOR visibility:public <> () returnType:<root>.outerFun.LocalDerived2 [primary]
          BLOCK_BODY
            DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in <root>.outerFun.LocalDerived'
            INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:LocalDerived2 modality:FINAL visibility:local superTypes:[<root>.outerFun.LocalDerived]'
        FUN FAKE_OVERRIDE name:foo visibility:public modality:FINAL <> ($this:<root>.outerFun.LocalBase<kotlin.String>, x:kotlin.String) returnType:kotlin.Unit [fake_override]
          overridden:
            public final fun foo (x: kotlin.String): kotlin.Unit [fake_override] declared in <root>.outerFun.LocalDerived
          $this: VALUE_PARAMETER name:<this> type:<root>.outerFun.LocalBase<kotlin.String>
          VALUE_PARAMETER name:x index:0 type:kotlin.String
        FUN FAKE_OVERRIDE name:foo visibility:public modality:FINAL <> ($this:<root>.outerFun.LocalBase<kotlin.String>, y:kotlin.String) returnType:kotlin.Unit [fake_override]
          overridden:
            public final fun foo (y: kotlin.String): kotlin.Unit [fake_override] declared in <root>.outerFun.LocalDerived
          $this: VALUE_PARAMETER name:<this> type:<root>.outerFun.LocalBase<kotlin.String>
          VALUE_PARAMETER name:y index:0 type:kotlin.String
        PROPERTY FAKE_OVERRIDE name:bar visibility:public modality:FINAL [fake_override,val]
          overridden:
            public final bar: kotlin.Int [fake_override,val]
          FUN FAKE_OVERRIDE name:<get-bar> visibility:public modality:FINAL <> ($this:<root>.outerFun.LocalBase<kotlin.String>, $receiver:kotlin.String) returnType:kotlin.Int [fake_override]
            correspondingProperty: PROPERTY FAKE_OVERRIDE name:bar visibility:public modality:FINAL [fake_override,val]
            overridden:
              public final fun <get-bar> (): kotlin.Int [fake_override] declared in <root>.outerFun.LocalDerived
            $this: VALUE_PARAMETER name:<this> type:<root>.outerFun.LocalBase<kotlin.String>
            $receiver: VALUE_PARAMETER name:<this> type:kotlin.String
        PROPERTY FAKE_OVERRIDE name:bar visibility:public modality:FINAL [fake_override,val]
          overridden:
            public final bar: kotlin.Int [fake_override,val]
          FUN FAKE_OVERRIDE name:<get-bar> visibility:public modality:FINAL <> ($this:<root>.outerFun.LocalBase<kotlin.String>, $receiver:kotlin.String) returnType:kotlin.Int [fake_override]
            correspondingProperty: PROPERTY FAKE_OVERRIDE name:bar visibility:public modality:FINAL [fake_override,val]
            overridden:
              public final fun <get-bar> (): kotlin.Int [fake_override] declared in <root>.outerFun.LocalDerived
            $this: VALUE_PARAMETER name:<this> type:<root>.outerFun.LocalBase<kotlin.String>
            $receiver: VALUE_PARAMETER name:<this> type:kotlin.String
        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 [fake_override,operator] declared in <root>.outerFun.LocalDerived
          $this: VALUE_PARAMETER name:<this> 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 [fake_override] declared in <root>.outerFun.LocalDerived
          $this: VALUE_PARAMETER name:<this> 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 [fake_override] declared in <root>.outerFun.LocalDerived
          $this: VALUE_PARAMETER name:<this> type:kotlin.Any
      FUN LOCAL_FUNCTION name:test visibility:local modality:FINAL <> (b:<root>.outerFun.LocalBase<kotlin.String>, d:<root>.outerFun.LocalDerived, d2:<root>.outerFun.LocalDerived2) returnType:kotlin.Unit
        VALUE_PARAMETER name:b index:0 type:<root>.outerFun.LocalBase<kotlin.String>
        VALUE_PARAMETER name:d index:1 type:<root>.outerFun.LocalDerived
        VALUE_PARAMETER name:d2 index:2 type:<root>.outerFun.LocalDerived2
        BLOCK_BODY
          CALL 'public final fun foo (x: T of <root>.outerFun.LocalBase): kotlin.Unit declared in <root>.outerFun.LocalBase' type=kotlin.Unit origin=null
            $this: GET_VAR 'b: <root>.outerFun.LocalBase<kotlin.String> declared in <root>.outerFun.test' type=<root>.outerFun.LocalBase<kotlin.String> origin=null
            x: CONST String type=kotlin.String value=""
          CALL 'public final fun foo (y: kotlin.String): kotlin.Unit declared in <root>.outerFun.LocalBase' type=kotlin.Unit origin=null
            $this: GET_VAR 'b: <root>.outerFun.LocalBase<kotlin.String> declared in <root>.outerFun.test' type=<root>.outerFun.LocalBase<kotlin.String> origin=null
            y: CONST String type=kotlin.String value=""
          CALL 'public final fun foo (x: kotlin.String): kotlin.Unit [fake_override] declared in <root>.outerFun.LocalDerived' type=kotlin.Unit origin=null
            $this: GET_VAR 'd: <root>.outerFun.LocalDerived declared in <root>.outerFun.test' type=<root>.outerFun.LocalDerived origin=null
            x: CONST String type=kotlin.String value=""
          CALL 'public final fun foo (y: kotlin.String): kotlin.Unit [fake_override] declared in <root>.outerFun.LocalDerived' type=kotlin.Unit origin=null
            $this: GET_VAR 'd: <root>.outerFun.LocalDerived declared in <root>.outerFun.test' type=<root>.outerFun.LocalDerived origin=null
            y: CONST String type=kotlin.String value=""
          CALL 'public final fun foo (x: kotlin.String): kotlin.Unit [fake_override] declared in <root>.outerFun.LocalDerived2' type=kotlin.Unit origin=null
            $this: GET_VAR 'd2: <root>.outerFun.LocalDerived2 declared in <root>.outerFun.test' type=<root>.outerFun.LocalDerived2 origin=null
            x: CONST String type=kotlin.String value=""
          CALL 'public final fun foo (y: kotlin.String): kotlin.Unit [fake_override] declared in <root>.outerFun.LocalDerived2' type=kotlin.Unit origin=null
            $this: GET_VAR 'd2: <root>.outerFun.LocalDerived2 declared in <root>.outerFun.test' type=<root>.outerFun.LocalDerived2 origin=null
            y: CONST String type=kotlin.String value=""
  CLASS CLASS name:Outer modality:OPEN visibility:public superTypes:[kotlin.Any]
    $this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Outer<T of <root>.Outer>
    TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
    CONSTRUCTOR visibility:public <> () returnType:<root>.Outer<T of <root>.Outer> [primary]
      BLOCK_BODY
        DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
        INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:Outer modality:OPEN visibility:public superTypes:[kotlin.Any]'
    CLASS CLASS name:Inner modality:OPEN visibility:public [inner] superTypes:[kotlin.Any]
      $this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Outer.Inner<T of <root>.Outer>
      CONSTRUCTOR visibility:public <> ($this:<root>.Outer<T of <root>.Outer>) returnType:<root>.Outer.Inner<T of <root>.Outer> [primary]
        $outer: VALUE_PARAMETER name:<this> type:<root>.Outer<T of <root>.Outer>
        BLOCK_BODY
          DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
          INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:Inner modality:OPEN visibility:public [inner] superTypes:[kotlin.Any]'
      FUN name:foo visibility:public modality:FINAL <> ($this:<root>.Outer.Inner<T of <root>.Outer>, x:T of <root>.Outer) returnType:kotlin.Unit
        $this: VALUE_PARAMETER name:<this> type:<root>.Outer.Inner<T of <root>.Outer>
        VALUE_PARAMETER name:x index:0 type:T of <root>.Outer
        BLOCK_BODY
      FUN name:foo visibility:public modality:FINAL <> ($this:<root>.Outer.Inner<T of <root>.Outer>, y:kotlin.String) returnType:kotlin.Unit
        $this: VALUE_PARAMETER name:<this> type:<root>.Outer.Inner<T of <root>.Outer>
        VALUE_PARAMETER name:y index:0 type:kotlin.String
        BLOCK_BODY
      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 [operator] declared in kotlin.Any
        $this: VALUE_PARAMETER name:<this> 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:<this> 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:<this> type: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 [operator] declared in kotlin.Any
      $this: VALUE_PARAMETER name:<this> 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:<this> 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:<this> type:kotlin.Any
  CLASS CLASS name:OuterDerived modality:FINAL visibility:public superTypes:[<root>.Outer<kotlin.String>]
    $this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.OuterDerived
    CONSTRUCTOR visibility:public <> () returnType:<root>.OuterDerived [primary]
      BLOCK_BODY
        DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in <root>.Outer'
          <T>: kotlin.String
        INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:OuterDerived modality:FINAL visibility:public superTypes:[<root>.Outer<kotlin.String>]'
    CLASS CLASS name:InnerDerived modality:FINAL visibility:public [inner] superTypes:[<root>.Outer.Inner<kotlin.String>]
      $this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.OuterDerived.InnerDerived
      CONSTRUCTOR visibility:public <> ($this:<root>.OuterDerived) returnType:<root>.OuterDerived.InnerDerived [primary]
        $outer: VALUE_PARAMETER name:<this> type:<root>.OuterDerived
        BLOCK_BODY
          DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in <root>.Outer.Inner'
            $this: GET_VAR '<this>: <root>.OuterDerived declared in <root>.OuterDerived.InnerDerived.<init>' type=<root>.OuterDerived origin=null
          INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:InnerDerived modality:FINAL visibility:public [inner] superTypes:[<root>.Outer.Inner<kotlin.String>]'
      FUN FAKE_OVERRIDE name:foo visibility:public modality:FINAL <> ($this:<root>.Outer.Inner<kotlin.String>, x:kotlin.String) returnType:kotlin.Unit [fake_override]
        overridden:
          public final fun foo (x: T of <root>.Outer): kotlin.Unit declared in <root>.Outer.Inner
        $this: VALUE_PARAMETER name:<this> type:<root>.Outer.Inner<kotlin.String>
        VALUE_PARAMETER name:x index:0 type:kotlin.String
      FUN FAKE_OVERRIDE name:foo visibility:public modality:FINAL <> ($this:<root>.Outer.Inner<kotlin.String>, y:kotlin.String) returnType:kotlin.Unit [fake_override]
        overridden:
          public final fun foo (y: kotlin.String): kotlin.Unit declared in <root>.Outer.Inner
        $this: VALUE_PARAMETER name:<this> type:<root>.Outer.Inner<kotlin.String>
        VALUE_PARAMETER name:y index:0 type:kotlin.String
      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 [fake_override,operator] declared in <root>.Outer.Inner
        $this: VALUE_PARAMETER name:<this> 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 [fake_override] declared in <root>.Outer.Inner
        $this: VALUE_PARAMETER name:<this> 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 [fake_override] declared in <root>.Outer.Inner
        $this: VALUE_PARAMETER name:<this> type: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 [fake_override,operator] declared in <root>.Outer
      $this: VALUE_PARAMETER name:<this> 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 [fake_override] declared in <root>.Outer
      $this: VALUE_PARAMETER name:<this> 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 [fake_override] declared in <root>.Outer
      $this: VALUE_PARAMETER name:<this> type:kotlin.Any
