JVM_IR KT-42020 special IdSignature for some fake override members

This commit is contained in:
Dmitry Petrov
2020-12-14 11:53:13 +03:00
parent 12cfba9ca9
commit b0f6461fa9
22 changed files with 1487 additions and 20 deletions
@@ -0,0 +1,474 @@
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?]
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<T of <root>.Base>, x: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<T of <root>.Base>
VALUE_PARAMETER name:x index:0 type:kotlin.String
FUN FAKE_OVERRIDE name:foo visibility:public modality:FINAL <> ($this:<root>.Base<T of <root>.Base>, x: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<T of <root>.Base>
VALUE_PARAMETER name:x index:0 type:kotlin.String
PROPERTY FAKE_OVERRIDE name:bar visibility:public modality:FINAL [fake_override,val]
FUN FAKE_OVERRIDE name:<get-bar> visibility:public modality:FINAL <> ($this:<root>.Base<T of <root>.Base>, $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<T of <root>.Base>
$receiver: VALUE_PARAMETER name:<this> type:kotlin.String
PROPERTY FAKE_OVERRIDE name:bar visibility:public modality:FINAL [fake_override,val]
FUN FAKE_OVERRIDE name:<get-bar> visibility:public modality:FINAL <> ($this:<root>.Base<T of <root>.Base>, $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<T of <root>.Base>
$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 [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: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<T of <root>.Base>, x: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<T of <root>.Base>
VALUE_PARAMETER name:x index:0 type:kotlin.String
FUN FAKE_OVERRIDE name:foo visibility:public modality:FINAL <> ($this:<root>.Base<T of <root>.Base>, x: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<T of <root>.Base>
VALUE_PARAMETER name:x index:0 type:kotlin.String
PROPERTY FAKE_OVERRIDE name:bar visibility:public modality:FINAL [fake_override,val]
FUN FAKE_OVERRIDE name:<get-bar> visibility:public modality:FINAL <> ($this:<root>.Base<T of <root>.Base>, $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<T of <root>.Base>
$receiver: VALUE_PARAMETER name:<this> type:kotlin.String
PROPERTY FAKE_OVERRIDE name:bar visibility:public modality:FINAL [fake_override,val]
FUN FAKE_OVERRIDE name:<get-bar> visibility:public modality:FINAL <> ($this:<root>.Base<T of <root>.Base>, $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<T of <root>.Base>
$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 [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 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 declared in <root>.Base' 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>.Derived' 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 declared in <root>.Base' 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?]
TYPE_PARAMETER name:Y index:1 variance: superTypes:[kotlin.Any?]
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<X of <root>.BaseXY, Y of <root>.BaseXY>, 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<X of <root>.BaseXY, Y of <root>.BaseXY>
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<X of <root>.BaseXY, Y of <root>.BaseXY>, 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<X of <root>.BaseXY, Y of <root>.BaseXY>
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 [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 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?]
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<T of <root>.outerFun.LocalBase>, 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<T of <root>.outerFun.LocalBase>
VALUE_PARAMETER name:x index:0 type:kotlin.String
FUN FAKE_OVERRIDE name:foo visibility:public modality:FINAL <> ($this:<root>.outerFun.LocalBase<T of <root>.outerFun.LocalBase>, 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<T of <root>.outerFun.LocalBase>
VALUE_PARAMETER name:y index:0 type:kotlin.String
PROPERTY FAKE_OVERRIDE name:bar visibility:public modality:FINAL [fake_override,val]
FUN FAKE_OVERRIDE name:<get-bar> visibility:public modality:FINAL <> ($this:<root>.outerFun.LocalBase<T of <root>.outerFun.LocalBase>, $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<T of <root>.outerFun.LocalBase>
$receiver: VALUE_PARAMETER name:<this> type:kotlin.String
PROPERTY FAKE_OVERRIDE name:bar visibility:public modality:FINAL [fake_override,val]
FUN FAKE_OVERRIDE name:<get-bar> visibility:public modality:FINAL <> ($this:<root>.outerFun.LocalBase<T of <root>.outerFun.LocalBase>, $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<T of <root>.outerFun.LocalBase>
$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 [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: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<T of <root>.outerFun.LocalBase>, 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<T of <root>.outerFun.LocalBase>
VALUE_PARAMETER name:x index:0 type:kotlin.String
FUN FAKE_OVERRIDE name:foo visibility:public modality:FINAL <> ($this:<root>.outerFun.LocalBase<T of <root>.outerFun.LocalBase>, 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<T of <root>.outerFun.LocalBase>
VALUE_PARAMETER name:y index:0 type:kotlin.String
PROPERTY FAKE_OVERRIDE name:bar visibility:public modality:FINAL [fake_override,val]
FUN FAKE_OVERRIDE name:<get-bar> visibility:public modality:FINAL <> ($this:<root>.outerFun.LocalBase<T of <root>.outerFun.LocalBase>, $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<T of <root>.outerFun.LocalBase>
$receiver: VALUE_PARAMETER name:<this> type:kotlin.String
PROPERTY FAKE_OVERRIDE name:bar visibility:public modality:FINAL [fake_override,val]
FUN FAKE_OVERRIDE name:<get-bar> visibility:public modality:FINAL <> ($this:<root>.outerFun.LocalBase<T of <root>.outerFun.LocalBase>, $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<T of <root>.outerFun.LocalBase>
$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 [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 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 declared in <root>.outerFun.LocalBase' 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.LocalDerived' 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 declared in <root>.outerFun.LocalBase' 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?]
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' 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<T of <root>.Outer>, x: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<T of <root>.Outer>
VALUE_PARAMETER name:x index:0 type:kotlin.String
FUN FAKE_OVERRIDE name:foo visibility:public modality:FINAL <> ($this:<root>.Outer.Inner<T of <root>.Outer>, x: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<T of <root>.Outer>
VALUE_PARAMETER name:x 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 [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
@@ -0,0 +1,67 @@
// IGNORE_BACKEND_FIR: ANY
// ^ TODO decide if we want to fix KT-42020 for FIR as well
open class Base<T> {
fun foo(x: T) {}
fun foo(y: String) {}
val T.bar get() = 1
val String.bar get() = 2
}
open class Derived : Base<String>()
class Derived2 : Derived()
fun test(b: Base<String>, d: Derived, d2: Derived2) {
b.foo(x = "")
b.foo(y = "")
d.foo(x = "")
d.foo(y = "")
d2.foo(x = "")
d2.foo(y = "")
}
open class BaseXY<X, Y> {
fun foo(x: X, y: String) {}
fun foo(x: String, y: Y) {}
}
class DerivedXY : BaseXY<String, String>()
fun outerFun() {
open class LocalBase<T> {
fun foo(x: T) {}
fun foo(y: String) {}
val T.bar get() = 1
val String.bar get() = 2
}
open class LocalDerived : LocalBase<String>()
class LocalDerived2 : LocalDerived()
fun test(b: LocalBase<String>, d: LocalDerived, d2: LocalDerived2) {
b.foo(x = "")
b.foo(y = "")
d.foo(x = "")
d.foo(y = "")
d2.foo(x = "")
d2.foo(y = "")
}
}
open class Outer<T> {
open inner class Inner {
fun foo(x: T) {}
fun foo(y: String) {}
}
}
class OuterDerived : Outer<String>() {
inner class InnerDerived : Inner()
}
@@ -0,0 +1,172 @@
open class Base<T : Any?> {
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
fun foo(x: T) {
}
fun foo(y: String) {
}
val T.bar: Int
get(): Int {
return 1
}
val String.bar: Int
get(): Int {
return 2
}
}
open class Derived : Base<String> {
constructor() /* primary */ {
super/*Base*/<String>()
/* <init>() */
}
}
class Derived2 : Derived {
constructor() /* primary */ {
super/*Derived*/()
/* <init>() */
}
}
fun test(b: Base<String>, d: Derived, d2: Derived2) {
b.foo(x = "")
b.foo(y = "")
d.foo(x = "")
d.foo(y = "")
d2.foo(x = "")
d2.foo(y = "")
}
open class BaseXY<X : Any?, Y : Any?> {
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
fun foo(x: X, y: String) {
}
fun foo(x: String, y: Y) {
}
}
class DerivedXY : BaseXY<String, String> {
constructor() /* primary */ {
super/*BaseXY*/<String, String>()
/* <init>() */
}
}
fun outerFun() {
local open class LocalBase<T : Any?> {
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
fun foo(x: T) {
}
fun foo(y: String) {
}
val T.bar: Int
get(): Int {
return 1
}
val String.bar: Int
get(): Int {
return 2
}
}
local open class LocalDerived : LocalBase<String> {
constructor() /* primary */ {
super/*LocalBase*/<String>()
/* <init>() */
}
}
local class LocalDerived2 : LocalDerived {
constructor() /* primary */ {
super/*LocalDerived*/()
/* <init>() */
}
}
local fun test(b: LocalBase<String>, d: LocalDerived, d2: LocalDerived2) {
b.foo(x = "")
b.foo(y = "")
d.foo(x = "")
d.foo(y = "")
d2.foo(x = "")
d2.foo(y = "")
}
}
open class Outer<T : Any?> {
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
open inner class Inner {
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
fun foo(x: T) {
}
fun foo(y: String) {
}
}
}
class OuterDerived : Outer<String> {
constructor() /* primary */ {
super/*Outer*/<String>()
/* <init>() */
}
inner class InnerDerived : Inner<String> {
constructor() /* primary */ {
<this>.super/*Inner*/()
/* <init>() */
}
}
}
@@ -0,0 +1,474 @@
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?]
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]
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]
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]
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]
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?]
TYPE_PARAMETER name:Y index:1 variance: superTypes:[kotlin.Any?]
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?]
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]
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]
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]
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]
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 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?]
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