[Test] KT-61360: add tests for the IrFakeOverrideBuilder

Add tests for fake overrides with focus on java interoperability

Co-authored-by: Aleksandra Arsenteva <aleksandra.arsenteva@jetbrains.com>
This commit is contained in:
anzhela.sukhanova
2024-01-19 18:22:17 +02:00
committed by Space Team
parent 30aae741a6
commit 82255d5ee8
853 changed files with 269404 additions and 0 deletions
@@ -0,0 +1,628 @@
Module: separate
FILE fqName:<root> fileName:/Test.kt
CLASS CLASS name:I modality:FINAL visibility:public superTypes:[<root>.J2]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.I
PROPERTY name:j1 visibility:internal modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:j1 type:kotlin.Int visibility:private [final]
EXPRESSION_BODY
CONST Int type=kotlin.Int value=11
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-j1> visibility:internal modality:FINAL <> ($this:<root>.I) returnType:kotlin.Int
correspondingProperty: PROPERTY name:j1 visibility:internal modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.I
BLOCK_BODY
RETURN type=kotlin.Nothing from='internal final fun <get-j1> (): kotlin.Int declared in <root>.I'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:j1 type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.I declared in <root>.I.<get-j1>' type=<root>.I origin=null
PROPERTY name:j2 visibility:internal modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:j2 type:kotlin.Int visibility:private [final]
EXPRESSION_BODY
CONST Int type=kotlin.Int value=22
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-j2> visibility:internal modality:FINAL <> ($this:<root>.I) returnType:kotlin.Int
correspondingProperty: PROPERTY name:j2 visibility:internal modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.I
BLOCK_BODY
RETURN type=kotlin.Nothing from='internal final fun <get-j2> (): kotlin.Int declared in <root>.I'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:j2 type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.I declared in <root>.I.<get-j2>' type=<root>.I origin=null
PROPERTY name:j3 visibility:internal modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:j3 type:kotlin.Int visibility:private [final]
EXPRESSION_BODY
CONST Int type=kotlin.Int value=33
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-j3> visibility:internal modality:FINAL <> ($this:<root>.I) returnType:kotlin.Int
correspondingProperty: PROPERTY name:j3 visibility:internal modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.I
BLOCK_BODY
RETURN type=kotlin.Nothing from='internal final fun <get-j3> (): kotlin.Int declared in <root>.I'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:j3 type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.I declared in <root>.I.<get-j3>' type=<root>.I origin=null
PROPERTY name:j4 visibility:internal modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:j4 type:kotlin.Int visibility:private [final]
EXPRESSION_BODY
CONST Int type=kotlin.Int value=44
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-j4> visibility:internal modality:FINAL <> ($this:<root>.I) returnType:kotlin.Int
correspondingProperty: PROPERTY name:j4 visibility:internal modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.I
BLOCK_BODY
RETURN type=kotlin.Nothing from='internal final fun <get-j4> (): kotlin.Int declared in <root>.I'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:j4 type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.I declared in <root>.I.<get-j4>' type=<root>.I origin=null
CONSTRUCTOR visibility:public <> () returnType:<root>.I [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.J2'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:I modality:FINAL visibility:public superTypes:[<root>.J2]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.J2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:funJ1 visibility:public modality:OPEN <> ($this:<root>.J2) returnType:kotlin.Unit [fake_override]
overridden:
public open fun funJ1 (): kotlin.Unit declared in <root>.J2
$this: VALUE_PARAMETER name:<this> type:<root>.J2
FUN FAKE_OVERRIDE name:funJ2 visibility:protected/*protected and package*/ modality:OPEN <> ($this:<root>.J2) returnType:kotlin.Unit [fake_override]
overridden:
protected/*protected and package*/ open fun funJ2 (): kotlin.Unit declared in <root>.J2
$this: VALUE_PARAMETER name:<this> type:<root>.J2
FUN FAKE_OVERRIDE name:funJ4 visibility:public/*package*/ modality:OPEN <> ($this:<root>.J2) returnType:kotlin.Unit [fake_override]
overridden:
public/*package*/ open fun funJ4 (): kotlin.Unit declared in <root>.J2
$this: VALUE_PARAMETER name:<this> type:<root>.J2
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 <root>.J2
$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 <root>.J2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
Module: main
FILE fqName:<root> fileName:/test.kt
CLASS CLASS name:A modality:FINAL visibility:public superTypes:[<root>.J]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.A
CONSTRUCTOR visibility:public <> () returnType:<root>.A [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.J'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:A modality:FINAL visibility:public superTypes:[<root>.J]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.J
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:funJ1 visibility:public modality:OPEN <> ($this:<root>.J) returnType:kotlin.Unit [fake_override]
overridden:
public open fun funJ1 (): kotlin.Unit declared in <root>.J
$this: VALUE_PARAMETER name:<this> type:<root>.J
FUN FAKE_OVERRIDE name:funJ2 visibility:protected/*protected and package*/ modality:OPEN <> ($this:<root>.J) returnType:kotlin.Unit [fake_override]
overridden:
protected/*protected and package*/ open fun funJ2 (): kotlin.Unit declared in <root>.J
$this: VALUE_PARAMETER name:<this> type:<root>.J
FUN FAKE_OVERRIDE name:funJ4 visibility:public/*package*/ modality:OPEN <> ($this:<root>.J) returnType:kotlin.Unit [fake_override]
overridden:
public/*package*/ open fun funJ4 (): kotlin.Unit declared in <root>.J
$this: VALUE_PARAMETER name:<this> type:<root>.J
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 <root>.J
$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 <root>.J
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:B modality:FINAL visibility:public superTypes:[<root>.J2]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.B
CONSTRUCTOR visibility:public <> () returnType:<root>.B [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.J2'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:B modality:FINAL visibility:public superTypes:[<root>.J2]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.J2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:funJ1 visibility:public modality:OPEN <> ($this:<root>.J2) returnType:kotlin.Unit [fake_override]
overridden:
public open fun funJ1 (): kotlin.Unit declared in <root>.J2
$this: VALUE_PARAMETER name:<this> type:<root>.J2
FUN FAKE_OVERRIDE name:funJ2 visibility:protected/*protected and package*/ modality:OPEN <> ($this:<root>.J2) returnType:kotlin.Unit [fake_override]
overridden:
protected/*protected and package*/ open fun funJ2 (): kotlin.Unit declared in <root>.J2
$this: VALUE_PARAMETER name:<this> type:<root>.J2
FUN FAKE_OVERRIDE name:funJ4 visibility:public/*package*/ modality:OPEN <> ($this:<root>.J2) returnType:kotlin.Unit [fake_override]
overridden:
public/*package*/ open fun funJ4 (): kotlin.Unit declared in <root>.J2
$this: VALUE_PARAMETER name:<this> type:<root>.J2
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 <root>.J2
$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 <root>.J2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:C modality:FINAL visibility:public superTypes:[<root>.J]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.C
CONSTRUCTOR visibility:public <> () returnType:<root>.C [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.J'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:C modality:FINAL visibility:public superTypes:[<root>.J]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.J
$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 <root>.J
$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 <root>.J
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:funJ1 visibility:public modality:OPEN <> ($this:<root>.C) returnType:kotlin.Unit
overridden:
public open fun funJ1 (): kotlin.Unit declared in <root>.J
$this: VALUE_PARAMETER name:<this> type:<root>.C
BLOCK_BODY
FUN name:funJ2 visibility:public modality:OPEN <> ($this:<root>.C) returnType:kotlin.Unit
overridden:
protected/*protected and package*/ open fun funJ2 (): kotlin.Unit declared in <root>.J
$this: VALUE_PARAMETER name:<this> type:<root>.C
BLOCK_BODY
FUN name:funJ4 visibility:internal modality:OPEN <> ($this:<root>.C) returnType:kotlin.Unit
overridden:
public/*package*/ open fun funJ4 (): kotlin.Unit declared in <root>.J
$this: VALUE_PARAMETER name:<this> type:<root>.C
BLOCK_BODY
CLASS CLASS name:D modality:FINAL visibility:public superTypes:[<root>.J2]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.D
CONSTRUCTOR visibility:public <> () returnType:<root>.D [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.J2'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:D modality:FINAL visibility:public superTypes:[<root>.J2]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.J2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:funJ4 visibility:public/*package*/ modality:OPEN <> ($this:<root>.J2) returnType:kotlin.Unit [fake_override]
overridden:
public/*package*/ open fun funJ4 (): kotlin.Unit declared in <root>.J2
$this: VALUE_PARAMETER name:<this> type:<root>.J2
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 <root>.J2
$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 <root>.J2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:funJ1 visibility:public modality:OPEN <> ($this:<root>.D) returnType:kotlin.Unit
overridden:
public open fun funJ1 (): kotlin.Unit declared in <root>.J2
$this: VALUE_PARAMETER name:<this> type:<root>.D
BLOCK_BODY
FUN name:funJ2 visibility:public modality:OPEN <> ($this:<root>.D) returnType:kotlin.Unit
overridden:
protected/*protected and package*/ open fun funJ2 (): kotlin.Unit declared in <root>.J2
$this: VALUE_PARAMETER name:<this> type:<root>.D
BLOCK_BODY
CLASS CLASS name:E modality:FINAL visibility:public superTypes:[<root>.J]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.E
PROPERTY name:j1 visibility:public modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:j1 type:kotlin.Int visibility:private [final]
EXPRESSION_BODY
CONST Int type=kotlin.Int value=100
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-j1> visibility:public modality:FINAL <> ($this:<root>.E) returnType:kotlin.Int
correspondingProperty: PROPERTY name:j1 visibility:public modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.E
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-j1> (): kotlin.Int declared in <root>.E'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:j1 type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.E declared in <root>.E.<get-j1>' type=<root>.E origin=null
PROPERTY name:j2 visibility:public modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:j2 type:kotlin.Int visibility:private [final]
EXPRESSION_BODY
CONST Int type=kotlin.Int value=200
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-j2> visibility:public modality:FINAL <> ($this:<root>.E) returnType:kotlin.Int
correspondingProperty: PROPERTY name:j2 visibility:public modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.E
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-j2> (): kotlin.Int declared in <root>.E'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:j2 type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.E declared in <root>.E.<get-j2>' type=<root>.E origin=null
PROPERTY name:j3 visibility:public modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:j3 type:kotlin.Int visibility:private [final]
EXPRESSION_BODY
CONST Int type=kotlin.Int value=300
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-j3> visibility:public modality:FINAL <> ($this:<root>.E) returnType:kotlin.Int
correspondingProperty: PROPERTY name:j3 visibility:public modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.E
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-j3> (): kotlin.Int declared in <root>.E'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:j3 type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.E declared in <root>.E.<get-j3>' type=<root>.E origin=null
PROPERTY name:j4 visibility:public modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:j4 type:kotlin.Int visibility:private [final]
EXPRESSION_BODY
CONST Int type=kotlin.Int value=400
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-j4> visibility:public modality:FINAL <> ($this:<root>.E) returnType:kotlin.Int
correspondingProperty: PROPERTY name:j4 visibility:public modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.E
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-j4> (): kotlin.Int declared in <root>.E'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:j4 type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.E declared in <root>.E.<get-j4>' type=<root>.E origin=null
CONSTRUCTOR visibility:public <> () returnType:<root>.E [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.J'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:E modality:FINAL visibility:public superTypes:[<root>.J]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.J
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:funJ1 visibility:public modality:OPEN <> ($this:<root>.J) returnType:kotlin.Unit [fake_override]
overridden:
public open fun funJ1 (): kotlin.Unit declared in <root>.J
$this: VALUE_PARAMETER name:<this> type:<root>.J
FUN FAKE_OVERRIDE name:funJ2 visibility:protected/*protected and package*/ modality:OPEN <> ($this:<root>.J) returnType:kotlin.Unit [fake_override]
overridden:
protected/*protected and package*/ open fun funJ2 (): kotlin.Unit declared in <root>.J
$this: VALUE_PARAMETER name:<this> type:<root>.J
FUN FAKE_OVERRIDE name:funJ4 visibility:public/*package*/ modality:OPEN <> ($this:<root>.J) returnType:kotlin.Unit [fake_override]
overridden:
public/*package*/ open fun funJ4 (): kotlin.Unit declared in <root>.J
$this: VALUE_PARAMETER name:<this> type:<root>.J
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 <root>.J
$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 <root>.J
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:F modality:OPEN visibility:public superTypes:[<root>.J]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.F
PROPERTY name:j1 visibility:protected modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:j1 type:kotlin.Int visibility:private [final]
EXPRESSION_BODY
CONST Int type=kotlin.Int value=100
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-j1> visibility:protected modality:FINAL <> ($this:<root>.F) returnType:kotlin.Int
correspondingProperty: PROPERTY name:j1 visibility:protected modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.F
BLOCK_BODY
RETURN type=kotlin.Nothing from='protected final fun <get-j1> (): kotlin.Int declared in <root>.F'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:j1 type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.F declared in <root>.F.<get-j1>' type=<root>.F origin=null
PROPERTY name:j2 visibility:protected modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:j2 type:kotlin.Int visibility:private [final]
EXPRESSION_BODY
CONST Int type=kotlin.Int value=200
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-j2> visibility:protected modality:FINAL <> ($this:<root>.F) returnType:kotlin.Int
correspondingProperty: PROPERTY name:j2 visibility:protected modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.F
BLOCK_BODY
RETURN type=kotlin.Nothing from='protected final fun <get-j2> (): kotlin.Int declared in <root>.F'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:j2 type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.F declared in <root>.F.<get-j2>' type=<root>.F origin=null
PROPERTY name:j3 visibility:protected modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:j3 type:kotlin.Int visibility:private [final]
EXPRESSION_BODY
CONST Int type=kotlin.Int value=300
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-j3> visibility:protected modality:FINAL <> ($this:<root>.F) returnType:kotlin.Int
correspondingProperty: PROPERTY name:j3 visibility:protected modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.F
BLOCK_BODY
RETURN type=kotlin.Nothing from='protected final fun <get-j3> (): kotlin.Int declared in <root>.F'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:j3 type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.F declared in <root>.F.<get-j3>' type=<root>.F origin=null
PROPERTY name:j4 visibility:protected modality:FINAL [var]
FIELD PROPERTY_BACKING_FIELD name:j4 type:kotlin.Int visibility:private
EXPRESSION_BODY
CONST Int type=kotlin.Int value=400
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-j4> visibility:protected modality:FINAL <> ($this:<root>.F) returnType:kotlin.Int
correspondingProperty: PROPERTY name:j4 visibility:protected modality:FINAL [var]
$this: VALUE_PARAMETER name:<this> type:<root>.F
BLOCK_BODY
RETURN type=kotlin.Nothing from='protected final fun <get-j4> (): kotlin.Int declared in <root>.F'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:j4 type:kotlin.Int visibility:private' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.F declared in <root>.F.<get-j4>' type=<root>.F origin=null
FUN DEFAULT_PROPERTY_ACCESSOR name:<set-j4> visibility:protected modality:FINAL <> ($this:<root>.F, <set-?>:kotlin.Int) returnType:kotlin.Unit
correspondingProperty: PROPERTY name:j4 visibility:protected modality:FINAL [var]
$this: VALUE_PARAMETER name:<this> type:<root>.F
VALUE_PARAMETER name:<set-?> index:0 type:kotlin.Int
BLOCK_BODY
SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:j4 type:kotlin.Int visibility:private' type=kotlin.Unit origin=null
receiver: GET_VAR '<this>: <root>.F declared in <root>.F.<set-j4>' type=<root>.F origin=null
value: GET_VAR '<set-?>: kotlin.Int declared in <root>.F.<set-j4>' type=kotlin.Int origin=null
CONSTRUCTOR visibility:public <> () returnType:<root>.F [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.J'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:F modality:OPEN visibility:public superTypes:[<root>.J]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.J
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:funJ1 visibility:public modality:OPEN <> ($this:<root>.J) returnType:kotlin.Unit [fake_override]
overridden:
public open fun funJ1 (): kotlin.Unit declared in <root>.J
$this: VALUE_PARAMETER name:<this> type:<root>.J
FUN FAKE_OVERRIDE name:funJ2 visibility:protected/*protected and package*/ modality:OPEN <> ($this:<root>.J) returnType:kotlin.Unit [fake_override]
overridden:
protected/*protected and package*/ open fun funJ2 (): kotlin.Unit declared in <root>.J
$this: VALUE_PARAMETER name:<this> type:<root>.J
FUN FAKE_OVERRIDE name:funJ4 visibility:public/*package*/ modality:OPEN <> ($this:<root>.J) returnType:kotlin.Unit [fake_override]
overridden:
public/*package*/ open fun funJ4 (): kotlin.Unit declared in <root>.J
$this: VALUE_PARAMETER name:<this> type:<root>.J
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 <root>.J
$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 <root>.J
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:G modality:FINAL visibility:public superTypes:[<root>.J]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.G
PROPERTY name:j1 visibility:internal modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:j1 type:kotlin.Int visibility:private [final]
EXPRESSION_BODY
CONST Int type=kotlin.Int value=100
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-j1> visibility:internal modality:FINAL <> ($this:<root>.G) returnType:kotlin.Int
correspondingProperty: PROPERTY name:j1 visibility:internal modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.G
BLOCK_BODY
RETURN type=kotlin.Nothing from='internal final fun <get-j1> (): kotlin.Int declared in <root>.G'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:j1 type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.G declared in <root>.G.<get-j1>' type=<root>.G origin=null
PROPERTY name:j2 visibility:internal modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:j2 type:kotlin.Int visibility:private [final]
EXPRESSION_BODY
CONST Int type=kotlin.Int value=200
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-j2> visibility:internal modality:FINAL <> ($this:<root>.G) returnType:kotlin.Int
correspondingProperty: PROPERTY name:j2 visibility:internal modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.G
BLOCK_BODY
RETURN type=kotlin.Nothing from='internal final fun <get-j2> (): kotlin.Int declared in <root>.G'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:j2 type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.G declared in <root>.G.<get-j2>' type=<root>.G origin=null
PROPERTY name:j3 visibility:internal modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:j3 type:kotlin.Int visibility:private [final]
EXPRESSION_BODY
CONST Int type=kotlin.Int value=300
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-j3> visibility:internal modality:FINAL <> ($this:<root>.G) returnType:kotlin.Int
correspondingProperty: PROPERTY name:j3 visibility:internal modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.G
BLOCK_BODY
RETURN type=kotlin.Nothing from='internal final fun <get-j3> (): kotlin.Int declared in <root>.G'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:j3 type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.G declared in <root>.G.<get-j3>' type=<root>.G origin=null
PROPERTY name:j4 visibility:internal modality:FINAL [var]
FIELD PROPERTY_BACKING_FIELD name:j4 type:kotlin.Int visibility:private
EXPRESSION_BODY
CONST Int type=kotlin.Int value=400
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-j4> visibility:internal modality:FINAL <> ($this:<root>.G) returnType:kotlin.Int
correspondingProperty: PROPERTY name:j4 visibility:internal modality:FINAL [var]
$this: VALUE_PARAMETER name:<this> type:<root>.G
BLOCK_BODY
RETURN type=kotlin.Nothing from='internal final fun <get-j4> (): kotlin.Int declared in <root>.G'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:j4 type:kotlin.Int visibility:private' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.G declared in <root>.G.<get-j4>' type=<root>.G origin=null
FUN DEFAULT_PROPERTY_ACCESSOR name:<set-j4> visibility:internal modality:FINAL <> ($this:<root>.G, <set-?>:kotlin.Int) returnType:kotlin.Unit
correspondingProperty: PROPERTY name:j4 visibility:internal modality:FINAL [var]
$this: VALUE_PARAMETER name:<this> type:<root>.G
VALUE_PARAMETER name:<set-?> index:0 type:kotlin.Int
BLOCK_BODY
SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:j4 type:kotlin.Int visibility:private' type=kotlin.Unit origin=null
receiver: GET_VAR '<this>: <root>.G declared in <root>.G.<set-j4>' type=<root>.G origin=null
value: GET_VAR '<set-?>: kotlin.Int declared in <root>.G.<set-j4>' type=kotlin.Int origin=null
CONSTRUCTOR visibility:public <> () returnType:<root>.G [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.J'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:G modality:FINAL visibility:public superTypes:[<root>.J]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.J
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:funJ1 visibility:public modality:OPEN <> ($this:<root>.J) returnType:kotlin.Unit [fake_override]
overridden:
public open fun funJ1 (): kotlin.Unit declared in <root>.J
$this: VALUE_PARAMETER name:<this> type:<root>.J
FUN FAKE_OVERRIDE name:funJ2 visibility:protected/*protected and package*/ modality:OPEN <> ($this:<root>.J) returnType:kotlin.Unit [fake_override]
overridden:
protected/*protected and package*/ open fun funJ2 (): kotlin.Unit declared in <root>.J
$this: VALUE_PARAMETER name:<this> type:<root>.J
FUN FAKE_OVERRIDE name:funJ4 visibility:public/*package*/ modality:OPEN <> ($this:<root>.J) returnType:kotlin.Unit [fake_override]
overridden:
public/*package*/ open fun funJ4 (): kotlin.Unit declared in <root>.J
$this: VALUE_PARAMETER name:<this> type:<root>.J
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 <root>.J
$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 <root>.J
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:H modality:FINAL visibility:public superTypes:[<root>.J]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.H
PROPERTY name:j1 visibility:private modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:j1 type:kotlin.Int visibility:private [final]
EXPRESSION_BODY
CONST Int type=kotlin.Int value=100
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-j1> visibility:private modality:FINAL <> ($this:<root>.H) returnType:kotlin.Int
correspondingProperty: PROPERTY name:j1 visibility:private modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.H
BLOCK_BODY
RETURN type=kotlin.Nothing from='private final fun <get-j1> (): kotlin.Int declared in <root>.H'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:j1 type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.H declared in <root>.H.<get-j1>' type=<root>.H origin=null
PROPERTY name:j2 visibility:private modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:j2 type:kotlin.Int visibility:private [final]
EXPRESSION_BODY
CONST Int type=kotlin.Int value=200
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-j2> visibility:private modality:FINAL <> ($this:<root>.H) returnType:kotlin.Int
correspondingProperty: PROPERTY name:j2 visibility:private modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.H
BLOCK_BODY
RETURN type=kotlin.Nothing from='private final fun <get-j2> (): kotlin.Int declared in <root>.H'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:j2 type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.H declared in <root>.H.<get-j2>' type=<root>.H origin=null
PROPERTY name:j3 visibility:private modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:j3 type:kotlin.Int visibility:private [final]
EXPRESSION_BODY
CONST Int type=kotlin.Int value=300
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-j3> visibility:private modality:FINAL <> ($this:<root>.H) returnType:kotlin.Int
correspondingProperty: PROPERTY name:j3 visibility:private modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.H
BLOCK_BODY
RETURN type=kotlin.Nothing from='private final fun <get-j3> (): kotlin.Int declared in <root>.H'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:j3 type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.H declared in <root>.H.<get-j3>' type=<root>.H origin=null
PROPERTY name:j4 visibility:private modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:j4 type:kotlin.Int visibility:private [final]
EXPRESSION_BODY
CONST Int type=kotlin.Int value=400
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-j4> visibility:private modality:FINAL <> ($this:<root>.H) returnType:kotlin.Int
correspondingProperty: PROPERTY name:j4 visibility:private modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.H
BLOCK_BODY
RETURN type=kotlin.Nothing from='private final fun <get-j4> (): kotlin.Int declared in <root>.H'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:j4 type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.H declared in <root>.H.<get-j4>' type=<root>.H origin=null
CONSTRUCTOR visibility:public <> () returnType:<root>.H [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.J'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:H modality:FINAL visibility:public superTypes:[<root>.J]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.J
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:funJ1 visibility:public modality:OPEN <> ($this:<root>.J) returnType:kotlin.Unit [fake_override]
overridden:
public open fun funJ1 (): kotlin.Unit declared in <root>.J
$this: VALUE_PARAMETER name:<this> type:<root>.J
FUN FAKE_OVERRIDE name:funJ2 visibility:protected/*protected and package*/ modality:OPEN <> ($this:<root>.J) returnType:kotlin.Unit [fake_override]
overridden:
protected/*protected and package*/ open fun funJ2 (): kotlin.Unit declared in <root>.J
$this: VALUE_PARAMETER name:<this> type:<root>.J
FUN FAKE_OVERRIDE name:funJ4 visibility:public/*package*/ modality:OPEN <> ($this:<root>.J) returnType:kotlin.Unit [fake_override]
overridden:
public/*package*/ open fun funJ4 (): kotlin.Unit declared in <root>.J
$this: VALUE_PARAMETER name:<this> type:<root>.J
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 <root>.J
$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 <root>.J
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:test visibility:public modality:FINAL <> (a:<root>.A, b:<root>.B, c:<root>.C, d:<root>.D, e:<root>.E, f:<root>.F, g:<root>.G, h:<root>.H, i:<root>.I) returnType:kotlin.Unit
VALUE_PARAMETER name:a index:0 type:<root>.A
VALUE_PARAMETER name:b index:1 type:<root>.B
VALUE_PARAMETER name:c index:2 type:<root>.C
VALUE_PARAMETER name:d index:3 type:<root>.D
VALUE_PARAMETER name:e index:4 type:<root>.E
VALUE_PARAMETER name:f index:5 type:<root>.F
VALUE_PARAMETER name:g index:6 type:<root>.G
VALUE_PARAMETER name:h index:7 type:<root>.H
VALUE_PARAMETER name:i index:8 type:<root>.I
BLOCK_BODY
SET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:j1 type:kotlin.Int visibility:public' type=kotlin.Unit origin=EQ
receiver: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
value: CONST Int type=kotlin.Int value=1
SET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:j2 type:kotlin.Int visibility:protected/*protected and package*/' type=kotlin.Unit origin=EQ
receiver: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
value: CONST Int type=kotlin.Int value=2
SET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:j4 type:kotlin.Int visibility:public/*package*/' type=kotlin.Unit origin=EQ
receiver: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
value: CONST Int type=kotlin.Int value=3
CALL 'public open fun funJ1 (): kotlin.Unit declared in <root>.A' type=kotlin.Unit origin=null
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
CALL 'protected/*protected and package*/ open fun funJ2 (): kotlin.Unit declared in <root>.A' type=kotlin.Unit origin=null
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
CALL 'public/*package*/ open fun funJ4 (): kotlin.Unit declared in <root>.A' type=kotlin.Unit origin=null
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
SET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:j1 type:kotlin.Int visibility:public' type=kotlin.Unit origin=EQ
receiver: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
value: CONST Int type=kotlin.Int value=1
CALL 'public open fun funJ1 (): kotlin.Unit declared in <root>.B' type=kotlin.Unit origin=null
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
SET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:j1 type:kotlin.Int visibility:public' type=kotlin.Unit origin=EQ
receiver: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
value: CONST Int type=kotlin.Int value=1
SET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:j2 type:kotlin.Int visibility:protected/*protected and package*/' type=kotlin.Unit origin=EQ
receiver: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
value: CONST Int type=kotlin.Int value=2
SET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:j4 type:kotlin.Int visibility:public/*package*/' type=kotlin.Unit origin=EQ
receiver: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
value: CONST Int type=kotlin.Int value=3
CALL 'public open fun funJ1 (): kotlin.Unit declared in <root>.C' type=kotlin.Unit origin=null
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
CALL 'public open fun funJ2 (): kotlin.Unit declared in <root>.C' type=kotlin.Unit origin=null
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
CALL 'internal open fun funJ4 (): kotlin.Unit declared in <root>.C' type=kotlin.Unit origin=null
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
SET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:j1 type:kotlin.Int visibility:public' type=kotlin.Unit origin=EQ
receiver: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
value: CONST Int type=kotlin.Int value=1
CALL 'public open fun funJ1 (): kotlin.Unit declared in <root>.D' type=kotlin.Unit origin=null
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
CALL 'public open fun funJ2 (): kotlin.Unit declared in <root>.D' type=kotlin.Unit origin=null
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public final fun <get-j1> (): kotlin.Int declared in <root>.E' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR 'e: <root>.E declared in <root>.test' type=<root>.E origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public final fun <get-j2> (): kotlin.Int declared in <root>.E' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR 'e: <root>.E declared in <root>.test' type=<root>.E origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public final fun <get-j3> (): kotlin.Int declared in <root>.E' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR 'e: <root>.E declared in <root>.test' type=<root>.E origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public final fun <get-j4> (): kotlin.Int declared in <root>.E' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR 'e: <root>.E declared in <root>.test' type=<root>.E origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:j1 type:kotlin.Int visibility:public' type=kotlin.Int origin=null
receiver: GET_VAR 'f: <root>.F declared in <root>.test' type=<root>.F origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:j2 type:kotlin.Int visibility:protected/*protected and package*/' type=kotlin.Int origin=null
receiver: GET_VAR 'f: <root>.F declared in <root>.test' type=<root>.F origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:j4 type:kotlin.Int visibility:public/*package*/' type=kotlin.Int origin=null
receiver: GET_VAR 'f: <root>.F declared in <root>.test' type=<root>.F origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'internal final fun <get-j1> (): kotlin.Int declared in <root>.G' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR 'g: <root>.G declared in <root>.test' type=<root>.G origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'internal final fun <get-j2> (): kotlin.Int declared in <root>.G' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR 'g: <root>.G declared in <root>.test' type=<root>.G origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'internal final fun <get-j3> (): kotlin.Int declared in <root>.G' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR 'g: <root>.G declared in <root>.test' type=<root>.G origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'internal final fun <get-j4> (): kotlin.Int declared in <root>.G' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR 'g: <root>.G declared in <root>.test' type=<root>.G origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:j1 type:kotlin.Int visibility:public' type=kotlin.Int origin=null
receiver: GET_VAR 'h: <root>.H declared in <root>.test' type=<root>.H origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:j2 type:kotlin.Int visibility:protected/*protected and package*/' type=kotlin.Int origin=null
receiver: GET_VAR 'h: <root>.H declared in <root>.test' type=<root>.H origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:j4 type:kotlin.Int visibility:public/*package*/' type=kotlin.Int origin=null
receiver: GET_VAR 'h: <root>.H declared in <root>.test' type=<root>.H origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:j1 type:kotlin.Int visibility:public' type=kotlin.Int origin=null
receiver: GET_VAR 'i: <root>.I declared in <root>.test' type=<root>.I origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:j2 type:kotlin.Int visibility:protected/*protected and package*/' type=kotlin.Int origin=null
receiver: GET_VAR 'i: <root>.I declared in <root>.test' type=<root>.I origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:j4 type:kotlin.Int visibility:public/*package*/' type=kotlin.Int origin=null
receiver: GET_VAR 'i: <root>.I declared in <root>.test' type=<root>.I origin=null
@@ -0,0 +1,220 @@
// MODULE: separate
// FILE: Test.kt
class I : J2 {
internal val j1: Int
field = 11
internal get
internal val j2: Int
field = 22
internal get
internal val j3: Int
field = 33
internal get
internal val j4: Int
field = 44
internal get
constructor() /* primary */ {
super/*J2*/()
/* <init>() */
}
}
// MODULE: main
// FILE: test.kt
class A : J {
constructor() /* primary */ {
super/*J*/()
/* <init>() */
}
}
class B : J2 {
constructor() /* primary */ {
super/*J2*/()
/* <init>() */
}
}
class C : J {
constructor() /* primary */ {
super/*J*/()
/* <init>() */
}
override fun funJ1() {
}
override fun funJ2() {
}
internal override fun funJ4() {
}
}
class D : J2 {
constructor() /* primary */ {
super/*J2*/()
/* <init>() */
}
override fun funJ1() {
}
override fun funJ2() {
}
}
class E : J {
val j1: Int
field = 100
get
val j2: Int
field = 200
get
val j3: Int
field = 300
get
val j4: Int
field = 400
get
constructor() /* primary */ {
super/*J*/()
/* <init>() */
}
}
open class F : J {
protected val j1: Int
field = 100
protected get
protected val j2: Int
field = 200
protected get
protected val j3: Int
field = 300
protected get
protected var j4: Int
field = 400
protected get
protected set
constructor() /* primary */ {
super/*J*/()
/* <init>() */
}
}
class G : J {
internal val j1: Int
field = 100
internal get
internal val j2: Int
field = 200
internal get
internal val j3: Int
field = 300
internal get
internal var j4: Int
field = 400
internal get
internal set
constructor() /* primary */ {
super/*J*/()
/* <init>() */
}
}
class H : J {
private val j1: Int
field = 100
private get
private val j2: Int
field = 200
private get
private val j3: Int
field = 300
private get
private val j4: Int
field = 400
private get
constructor() /* primary */ {
super/*J*/()
/* <init>() */
}
}
fun test(a: A, b: B, c: C, d: D, e: E, f: F, g: G, h: H, i: I) {
a.#j1 = 1
a.#j2 = 2
a.#j4 = 3
a.funJ1()
a.funJ2()
a.funJ4()
b.#j1 = 1
b.funJ1()
c.#j1 = 1
c.#j2 = 2
c.#j4 = 3
c.funJ1()
c.funJ2()
c.funJ4()
d.#j1 = 1
d.funJ1()
d.funJ2()
e.<get-j1>() /*~> Unit */
e.<get-j2>() /*~> Unit */
e.<get-j3>() /*~> Unit */
e.<get-j4>() /*~> Unit */
f.#j1 /*~> Unit */
f.#j2 /*~> Unit */
f.#j4 /*~> Unit */
g.<get-j1>() /*~> Unit */
g.<get-j2>() /*~> Unit */
g.<get-j3>() /*~> Unit */
g.<get-j4>() /*~> Unit */
h.#j1 /*~> Unit */
h.#j2 /*~> Unit */
h.#j4 /*~> Unit */
i.#j1 /*~> Unit */
i.#j2 /*~> Unit */
i.#j4 /*~> Unit */
}
@@ -0,0 +1,709 @@
Module: separate
FILE fqName:<root> fileName:/Test.kt
CLASS CLASS name:I modality:FINAL visibility:public superTypes:[<root>.J2]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.I
PROPERTY name:j1 visibility:internal modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:j1 type:kotlin.Int visibility:private [final]
EXPRESSION_BODY
CONST Int type=kotlin.Int value=11
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-j1> visibility:internal modality:FINAL <> ($this:<root>.I) returnType:kotlin.Int
correspondingProperty: PROPERTY name:j1 visibility:internal modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.I
BLOCK_BODY
RETURN type=kotlin.Nothing from='internal final fun <get-j1> (): kotlin.Int declared in <root>.I'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:j1 type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.I declared in <root>.I.<get-j1>' type=<root>.I origin=null
PROPERTY name:j2 visibility:internal modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:j2 type:kotlin.Int visibility:private [final]
EXPRESSION_BODY
CONST Int type=kotlin.Int value=22
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-j2> visibility:internal modality:FINAL <> ($this:<root>.I) returnType:kotlin.Int
correspondingProperty: PROPERTY name:j2 visibility:internal modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.I
BLOCK_BODY
RETURN type=kotlin.Nothing from='internal final fun <get-j2> (): kotlin.Int declared in <root>.I'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:j2 type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.I declared in <root>.I.<get-j2>' type=<root>.I origin=null
PROPERTY name:j3 visibility:internal modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:j3 type:kotlin.Int visibility:private [final]
EXPRESSION_BODY
CONST Int type=kotlin.Int value=33
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-j3> visibility:internal modality:FINAL <> ($this:<root>.I) returnType:kotlin.Int
correspondingProperty: PROPERTY name:j3 visibility:internal modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.I
BLOCK_BODY
RETURN type=kotlin.Nothing from='internal final fun <get-j3> (): kotlin.Int declared in <root>.I'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:j3 type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.I declared in <root>.I.<get-j3>' type=<root>.I origin=null
PROPERTY name:j4 visibility:internal modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:j4 type:kotlin.Int visibility:private [final]
EXPRESSION_BODY
CONST Int type=kotlin.Int value=44
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-j4> visibility:internal modality:FINAL <> ($this:<root>.I) returnType:kotlin.Int
correspondingProperty: PROPERTY name:j4 visibility:internal modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.I
BLOCK_BODY
RETURN type=kotlin.Nothing from='internal final fun <get-j4> (): kotlin.Int declared in <root>.I'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:j4 type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.I declared in <root>.I.<get-j4>' type=<root>.I origin=null
CONSTRUCTOR visibility:public <> () returnType:<root>.I [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.J2'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:I modality:FINAL visibility:public superTypes:[<root>.J2]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.J2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:funJ1 visibility:public modality:OPEN <> ($this:<root>.J2) returnType:kotlin.Unit [fake_override]
overridden:
public open fun funJ1 (): kotlin.Unit declared in <root>.J2
$this: VALUE_PARAMETER name:<this> type:<root>.J2
FUN FAKE_OVERRIDE name:funJ2 visibility:protected/*protected and package*/ modality:OPEN <> ($this:<root>.J2) returnType:kotlin.Unit [fake_override]
overridden:
protected/*protected and package*/ open fun funJ2 (): kotlin.Unit declared in <root>.J2
$this: VALUE_PARAMETER name:<this> type:<root>.J2
FUN FAKE_OVERRIDE name:funJ4 visibility:public/*package*/ modality:OPEN <> ($this:<root>.J2) returnType:kotlin.Unit [fake_override]
overridden:
public/*package*/ open fun funJ4 (): kotlin.Unit declared in <root>.J2
$this: VALUE_PARAMETER name:<this> type:<root>.J2
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 <root>.J2
$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 <root>.J2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
PROPERTY FAKE_OVERRIDE name:j1 visibility:public modality:FINAL [fake_override,var]
overridden:
public final j1: kotlin.Int
PROPERTY FAKE_OVERRIDE name:j2 visibility:protected/*protected and package*/ modality:FINAL [fake_override,var]
overridden:
protected/*protected and package*/ final j2: kotlin.Int
PROPERTY FAKE_OVERRIDE name:j4 visibility:public/*package*/ modality:FINAL [fake_override,var]
overridden:
public/*package*/ final j4: kotlin.Int
Module: main
FILE fqName:<root> fileName:/test.kt
CLASS CLASS name:A modality:FINAL visibility:public superTypes:[<root>.J]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.A
CONSTRUCTOR visibility:public <> () returnType:<root>.A [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.J'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:A modality:FINAL visibility:public superTypes:[<root>.J]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.J
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:funJ1 visibility:public modality:OPEN <> ($this:<root>.J) returnType:kotlin.Unit [fake_override]
overridden:
public open fun funJ1 (): kotlin.Unit declared in <root>.J
$this: VALUE_PARAMETER name:<this> type:<root>.J
FUN FAKE_OVERRIDE name:funJ2 visibility:protected/*protected and package*/ modality:OPEN <> ($this:<root>.J) returnType:kotlin.Unit [fake_override]
overridden:
protected/*protected and package*/ open fun funJ2 (): kotlin.Unit declared in <root>.J
$this: VALUE_PARAMETER name:<this> type:<root>.J
FUN FAKE_OVERRIDE name:funJ4 visibility:public/*package*/ modality:OPEN <> ($this:<root>.J) returnType:kotlin.Unit [fake_override]
overridden:
public/*package*/ open fun funJ4 (): kotlin.Unit declared in <root>.J
$this: VALUE_PARAMETER name:<this> type:<root>.J
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 <root>.J
$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 <root>.J
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
PROPERTY FAKE_OVERRIDE name:j1 visibility:public modality:FINAL [fake_override,var]
overridden:
public final j1: kotlin.Int
PROPERTY FAKE_OVERRIDE name:j2 visibility:protected/*protected and package*/ modality:FINAL [fake_override,var]
overridden:
protected/*protected and package*/ final j2: kotlin.Int
PROPERTY FAKE_OVERRIDE name:j4 visibility:public/*package*/ modality:FINAL [fake_override,var]
overridden:
public/*package*/ final j4: kotlin.Int
CLASS CLASS name:B modality:FINAL visibility:public superTypes:[<root>.J2]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.B
CONSTRUCTOR visibility:public <> () returnType:<root>.B [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.J2'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:B modality:FINAL visibility:public superTypes:[<root>.J2]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.J2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:funJ1 visibility:public modality:OPEN <> ($this:<root>.J2) returnType:kotlin.Unit [fake_override]
overridden:
public open fun funJ1 (): kotlin.Unit declared in <root>.J2
$this: VALUE_PARAMETER name:<this> type:<root>.J2
FUN FAKE_OVERRIDE name:funJ2 visibility:protected/*protected and package*/ modality:OPEN <> ($this:<root>.J2) returnType:kotlin.Unit [fake_override]
overridden:
protected/*protected and package*/ open fun funJ2 (): kotlin.Unit declared in <root>.J2
$this: VALUE_PARAMETER name:<this> type:<root>.J2
FUN FAKE_OVERRIDE name:funJ4 visibility:public/*package*/ modality:OPEN <> ($this:<root>.J2) returnType:kotlin.Unit [fake_override]
overridden:
public/*package*/ open fun funJ4 (): kotlin.Unit declared in <root>.J2
$this: VALUE_PARAMETER name:<this> type:<root>.J2
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 <root>.J2
$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 <root>.J2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
PROPERTY FAKE_OVERRIDE name:j1 visibility:public modality:FINAL [fake_override,var]
overridden:
public final j1: kotlin.Int
PROPERTY FAKE_OVERRIDE name:j2 visibility:protected/*protected and package*/ modality:FINAL [fake_override,var]
overridden:
protected/*protected and package*/ final j2: kotlin.Int
PROPERTY FAKE_OVERRIDE name:j4 visibility:public/*package*/ modality:FINAL [fake_override,var]
overridden:
public/*package*/ final j4: kotlin.Int
CLASS CLASS name:C modality:FINAL visibility:public superTypes:[<root>.J]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.C
CONSTRUCTOR visibility:public <> () returnType:<root>.C [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.J'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:C modality:FINAL visibility:public superTypes:[<root>.J]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.J
$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 <root>.J
$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 <root>.J
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:funJ1 visibility:public modality:OPEN <> ($this:<root>.C) returnType:kotlin.Unit
overridden:
public open fun funJ1 (): kotlin.Unit declared in <root>.J
$this: VALUE_PARAMETER name:<this> type:<root>.C
BLOCK_BODY
FUN name:funJ2 visibility:public modality:OPEN <> ($this:<root>.C) returnType:kotlin.Unit
overridden:
protected/*protected and package*/ open fun funJ2 (): kotlin.Unit declared in <root>.J
$this: VALUE_PARAMETER name:<this> type:<root>.C
BLOCK_BODY
FUN name:funJ4 visibility:internal modality:OPEN <> ($this:<root>.C) returnType:kotlin.Unit
overridden:
public/*package*/ open fun funJ4 (): kotlin.Unit declared in <root>.J
$this: VALUE_PARAMETER name:<this> type:<root>.C
BLOCK_BODY
PROPERTY FAKE_OVERRIDE name:j1 visibility:public modality:FINAL [fake_override,var]
overridden:
public final j1: kotlin.Int
PROPERTY FAKE_OVERRIDE name:j2 visibility:protected/*protected and package*/ modality:FINAL [fake_override,var]
overridden:
protected/*protected and package*/ final j2: kotlin.Int
PROPERTY FAKE_OVERRIDE name:j4 visibility:public/*package*/ modality:FINAL [fake_override,var]
overridden:
public/*package*/ final j4: kotlin.Int
CLASS CLASS name:D modality:FINAL visibility:public superTypes:[<root>.J2]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.D
CONSTRUCTOR visibility:public <> () returnType:<root>.D [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.J2'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:D modality:FINAL visibility:public superTypes:[<root>.J2]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.J2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:funJ4 visibility:public/*package*/ modality:OPEN <> ($this:<root>.J2) returnType:kotlin.Unit [fake_override]
overridden:
public/*package*/ open fun funJ4 (): kotlin.Unit declared in <root>.J2
$this: VALUE_PARAMETER name:<this> type:<root>.J2
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 <root>.J2
$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 <root>.J2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:funJ1 visibility:public modality:OPEN <> ($this:<root>.D) returnType:kotlin.Unit
overridden:
public open fun funJ1 (): kotlin.Unit declared in <root>.J2
$this: VALUE_PARAMETER name:<this> type:<root>.D
BLOCK_BODY
FUN name:funJ2 visibility:public modality:OPEN <> ($this:<root>.D) returnType:kotlin.Unit
overridden:
protected/*protected and package*/ open fun funJ2 (): kotlin.Unit declared in <root>.J2
$this: VALUE_PARAMETER name:<this> type:<root>.D
BLOCK_BODY
PROPERTY FAKE_OVERRIDE name:j1 visibility:public modality:FINAL [fake_override,var]
overridden:
public final j1: kotlin.Int
PROPERTY FAKE_OVERRIDE name:j2 visibility:protected/*protected and package*/ modality:FINAL [fake_override,var]
overridden:
protected/*protected and package*/ final j2: kotlin.Int
PROPERTY FAKE_OVERRIDE name:j4 visibility:public/*package*/ modality:FINAL [fake_override,var]
overridden:
public/*package*/ final j4: kotlin.Int
CLASS CLASS name:E modality:FINAL visibility:public superTypes:[<root>.J]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.E
PROPERTY name:j1 visibility:public modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:j1 type:kotlin.Int visibility:private [final]
EXPRESSION_BODY
CONST Int type=kotlin.Int value=100
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-j1> visibility:public modality:FINAL <> ($this:<root>.E) returnType:kotlin.Int
correspondingProperty: PROPERTY name:j1 visibility:public modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.E
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-j1> (): kotlin.Int declared in <root>.E'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:j1 type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.E declared in <root>.E.<get-j1>' type=<root>.E origin=null
PROPERTY name:j2 visibility:public modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:j2 type:kotlin.Int visibility:private [final]
EXPRESSION_BODY
CONST Int type=kotlin.Int value=200
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-j2> visibility:public modality:FINAL <> ($this:<root>.E) returnType:kotlin.Int
correspondingProperty: PROPERTY name:j2 visibility:public modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.E
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-j2> (): kotlin.Int declared in <root>.E'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:j2 type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.E declared in <root>.E.<get-j2>' type=<root>.E origin=null
PROPERTY name:j3 visibility:public modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:j3 type:kotlin.Int visibility:private [final]
EXPRESSION_BODY
CONST Int type=kotlin.Int value=300
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-j3> visibility:public modality:FINAL <> ($this:<root>.E) returnType:kotlin.Int
correspondingProperty: PROPERTY name:j3 visibility:public modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.E
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-j3> (): kotlin.Int declared in <root>.E'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:j3 type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.E declared in <root>.E.<get-j3>' type=<root>.E origin=null
PROPERTY name:j4 visibility:public modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:j4 type:kotlin.Int visibility:private [final]
EXPRESSION_BODY
CONST Int type=kotlin.Int value=400
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-j4> visibility:public modality:FINAL <> ($this:<root>.E) returnType:kotlin.Int
correspondingProperty: PROPERTY name:j4 visibility:public modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.E
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-j4> (): kotlin.Int declared in <root>.E'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:j4 type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.E declared in <root>.E.<get-j4>' type=<root>.E origin=null
CONSTRUCTOR visibility:public <> () returnType:<root>.E [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.J'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:E modality:FINAL visibility:public superTypes:[<root>.J]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.J
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:funJ1 visibility:public modality:OPEN <> ($this:<root>.J) returnType:kotlin.Unit [fake_override]
overridden:
public open fun funJ1 (): kotlin.Unit declared in <root>.J
$this: VALUE_PARAMETER name:<this> type:<root>.J
FUN FAKE_OVERRIDE name:funJ2 visibility:protected/*protected and package*/ modality:OPEN <> ($this:<root>.J) returnType:kotlin.Unit [fake_override]
overridden:
protected/*protected and package*/ open fun funJ2 (): kotlin.Unit declared in <root>.J
$this: VALUE_PARAMETER name:<this> type:<root>.J
FUN FAKE_OVERRIDE name:funJ4 visibility:public/*package*/ modality:OPEN <> ($this:<root>.J) returnType:kotlin.Unit [fake_override]
overridden:
public/*package*/ open fun funJ4 (): kotlin.Unit declared in <root>.J
$this: VALUE_PARAMETER name:<this> type:<root>.J
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 <root>.J
$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 <root>.J
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
PROPERTY FAKE_OVERRIDE name:j1 visibility:public modality:FINAL [fake_override,var]
overridden:
public final j1: kotlin.Int
PROPERTY FAKE_OVERRIDE name:j2 visibility:protected/*protected and package*/ modality:FINAL [fake_override,var]
overridden:
protected/*protected and package*/ final j2: kotlin.Int
PROPERTY FAKE_OVERRIDE name:j4 visibility:public/*package*/ modality:FINAL [fake_override,var]
overridden:
public/*package*/ final j4: kotlin.Int
CLASS CLASS name:F modality:OPEN visibility:public superTypes:[<root>.J]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.F
PROPERTY name:j1 visibility:protected modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:j1 type:kotlin.Int visibility:private [final]
EXPRESSION_BODY
CONST Int type=kotlin.Int value=100
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-j1> visibility:protected modality:FINAL <> ($this:<root>.F) returnType:kotlin.Int
correspondingProperty: PROPERTY name:j1 visibility:protected modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.F
BLOCK_BODY
RETURN type=kotlin.Nothing from='protected final fun <get-j1> (): kotlin.Int declared in <root>.F'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:j1 type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.F declared in <root>.F.<get-j1>' type=<root>.F origin=null
PROPERTY name:j2 visibility:protected modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:j2 type:kotlin.Int visibility:private [final]
EXPRESSION_BODY
CONST Int type=kotlin.Int value=200
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-j2> visibility:protected modality:FINAL <> ($this:<root>.F) returnType:kotlin.Int
correspondingProperty: PROPERTY name:j2 visibility:protected modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.F
BLOCK_BODY
RETURN type=kotlin.Nothing from='protected final fun <get-j2> (): kotlin.Int declared in <root>.F'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:j2 type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.F declared in <root>.F.<get-j2>' type=<root>.F origin=null
PROPERTY name:j3 visibility:protected modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:j3 type:kotlin.Int visibility:private [final]
EXPRESSION_BODY
CONST Int type=kotlin.Int value=300
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-j3> visibility:protected modality:FINAL <> ($this:<root>.F) returnType:kotlin.Int
correspondingProperty: PROPERTY name:j3 visibility:protected modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.F
BLOCK_BODY
RETURN type=kotlin.Nothing from='protected final fun <get-j3> (): kotlin.Int declared in <root>.F'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:j3 type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.F declared in <root>.F.<get-j3>' type=<root>.F origin=null
PROPERTY name:j4 visibility:protected modality:FINAL [var]
FIELD PROPERTY_BACKING_FIELD name:j4 type:kotlin.Int visibility:private
EXPRESSION_BODY
CONST Int type=kotlin.Int value=400
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-j4> visibility:protected modality:FINAL <> ($this:<root>.F) returnType:kotlin.Int
correspondingProperty: PROPERTY name:j4 visibility:protected modality:FINAL [var]
$this: VALUE_PARAMETER name:<this> type:<root>.F
BLOCK_BODY
RETURN type=kotlin.Nothing from='protected final fun <get-j4> (): kotlin.Int declared in <root>.F'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:j4 type:kotlin.Int visibility:private' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.F declared in <root>.F.<get-j4>' type=<root>.F origin=null
FUN DEFAULT_PROPERTY_ACCESSOR name:<set-j4> visibility:protected modality:FINAL <> ($this:<root>.F, <set-?>:kotlin.Int) returnType:kotlin.Unit
correspondingProperty: PROPERTY name:j4 visibility:protected modality:FINAL [var]
$this: VALUE_PARAMETER name:<this> type:<root>.F
VALUE_PARAMETER name:<set-?> index:0 type:kotlin.Int
BLOCK_BODY
SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:j4 type:kotlin.Int visibility:private' type=kotlin.Unit origin=null
receiver: GET_VAR '<this>: <root>.F declared in <root>.F.<set-j4>' type=<root>.F origin=null
value: GET_VAR '<set-?>: kotlin.Int declared in <root>.F.<set-j4>' type=kotlin.Int origin=null
CONSTRUCTOR visibility:public <> () returnType:<root>.F [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.J'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:F modality:OPEN visibility:public superTypes:[<root>.J]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.J
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:funJ1 visibility:public modality:OPEN <> ($this:<root>.J) returnType:kotlin.Unit [fake_override]
overridden:
public open fun funJ1 (): kotlin.Unit declared in <root>.J
$this: VALUE_PARAMETER name:<this> type:<root>.J
FUN FAKE_OVERRIDE name:funJ2 visibility:protected/*protected and package*/ modality:OPEN <> ($this:<root>.J) returnType:kotlin.Unit [fake_override]
overridden:
protected/*protected and package*/ open fun funJ2 (): kotlin.Unit declared in <root>.J
$this: VALUE_PARAMETER name:<this> type:<root>.J
FUN FAKE_OVERRIDE name:funJ4 visibility:public/*package*/ modality:OPEN <> ($this:<root>.J) returnType:kotlin.Unit [fake_override]
overridden:
public/*package*/ open fun funJ4 (): kotlin.Unit declared in <root>.J
$this: VALUE_PARAMETER name:<this> type:<root>.J
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 <root>.J
$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 <root>.J
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
PROPERTY FAKE_OVERRIDE name:j1 visibility:public modality:FINAL [fake_override,var]
overridden:
public final j1: kotlin.Int
PROPERTY FAKE_OVERRIDE name:j2 visibility:protected/*protected and package*/ modality:FINAL [fake_override,var]
overridden:
protected/*protected and package*/ final j2: kotlin.Int
PROPERTY FAKE_OVERRIDE name:j4 visibility:public/*package*/ modality:FINAL [fake_override,var]
overridden:
public/*package*/ final j4: kotlin.Int
CLASS CLASS name:G modality:FINAL visibility:public superTypes:[<root>.J]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.G
PROPERTY name:j1 visibility:internal modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:j1 type:kotlin.Int visibility:private [final]
EXPRESSION_BODY
CONST Int type=kotlin.Int value=100
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-j1> visibility:internal modality:FINAL <> ($this:<root>.G) returnType:kotlin.Int
correspondingProperty: PROPERTY name:j1 visibility:internal modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.G
BLOCK_BODY
RETURN type=kotlin.Nothing from='internal final fun <get-j1> (): kotlin.Int declared in <root>.G'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:j1 type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.G declared in <root>.G.<get-j1>' type=<root>.G origin=null
PROPERTY name:j2 visibility:internal modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:j2 type:kotlin.Int visibility:private [final]
EXPRESSION_BODY
CONST Int type=kotlin.Int value=200
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-j2> visibility:internal modality:FINAL <> ($this:<root>.G) returnType:kotlin.Int
correspondingProperty: PROPERTY name:j2 visibility:internal modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.G
BLOCK_BODY
RETURN type=kotlin.Nothing from='internal final fun <get-j2> (): kotlin.Int declared in <root>.G'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:j2 type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.G declared in <root>.G.<get-j2>' type=<root>.G origin=null
PROPERTY name:j3 visibility:internal modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:j3 type:kotlin.Int visibility:private [final]
EXPRESSION_BODY
CONST Int type=kotlin.Int value=300
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-j3> visibility:internal modality:FINAL <> ($this:<root>.G) returnType:kotlin.Int
correspondingProperty: PROPERTY name:j3 visibility:internal modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.G
BLOCK_BODY
RETURN type=kotlin.Nothing from='internal final fun <get-j3> (): kotlin.Int declared in <root>.G'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:j3 type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.G declared in <root>.G.<get-j3>' type=<root>.G origin=null
PROPERTY name:j4 visibility:internal modality:FINAL [var]
FIELD PROPERTY_BACKING_FIELD name:j4 type:kotlin.Int visibility:private
EXPRESSION_BODY
CONST Int type=kotlin.Int value=400
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-j4> visibility:internal modality:FINAL <> ($this:<root>.G) returnType:kotlin.Int
correspondingProperty: PROPERTY name:j4 visibility:internal modality:FINAL [var]
$this: VALUE_PARAMETER name:<this> type:<root>.G
BLOCK_BODY
RETURN type=kotlin.Nothing from='internal final fun <get-j4> (): kotlin.Int declared in <root>.G'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:j4 type:kotlin.Int visibility:private' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.G declared in <root>.G.<get-j4>' type=<root>.G origin=null
FUN DEFAULT_PROPERTY_ACCESSOR name:<set-j4> visibility:internal modality:FINAL <> ($this:<root>.G, <set-?>:kotlin.Int) returnType:kotlin.Unit
correspondingProperty: PROPERTY name:j4 visibility:internal modality:FINAL [var]
$this: VALUE_PARAMETER name:<this> type:<root>.G
VALUE_PARAMETER name:<set-?> index:0 type:kotlin.Int
BLOCK_BODY
SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:j4 type:kotlin.Int visibility:private' type=kotlin.Unit origin=null
receiver: GET_VAR '<this>: <root>.G declared in <root>.G.<set-j4>' type=<root>.G origin=null
value: GET_VAR '<set-?>: kotlin.Int declared in <root>.G.<set-j4>' type=kotlin.Int origin=null
CONSTRUCTOR visibility:public <> () returnType:<root>.G [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.J'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:G modality:FINAL visibility:public superTypes:[<root>.J]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.J
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:funJ1 visibility:public modality:OPEN <> ($this:<root>.J) returnType:kotlin.Unit [fake_override]
overridden:
public open fun funJ1 (): kotlin.Unit declared in <root>.J
$this: VALUE_PARAMETER name:<this> type:<root>.J
FUN FAKE_OVERRIDE name:funJ2 visibility:protected/*protected and package*/ modality:OPEN <> ($this:<root>.J) returnType:kotlin.Unit [fake_override]
overridden:
protected/*protected and package*/ open fun funJ2 (): kotlin.Unit declared in <root>.J
$this: VALUE_PARAMETER name:<this> type:<root>.J
FUN FAKE_OVERRIDE name:funJ4 visibility:public/*package*/ modality:OPEN <> ($this:<root>.J) returnType:kotlin.Unit [fake_override]
overridden:
public/*package*/ open fun funJ4 (): kotlin.Unit declared in <root>.J
$this: VALUE_PARAMETER name:<this> type:<root>.J
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 <root>.J
$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 <root>.J
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
PROPERTY FAKE_OVERRIDE name:j1 visibility:public modality:FINAL [fake_override,var]
overridden:
public final j1: kotlin.Int
PROPERTY FAKE_OVERRIDE name:j2 visibility:protected/*protected and package*/ modality:FINAL [fake_override,var]
overridden:
protected/*protected and package*/ final j2: kotlin.Int
PROPERTY FAKE_OVERRIDE name:j4 visibility:public/*package*/ modality:FINAL [fake_override,var]
overridden:
public/*package*/ final j4: kotlin.Int
CLASS CLASS name:H modality:FINAL visibility:public superTypes:[<root>.J]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.H
PROPERTY name:j1 visibility:private modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:j1 type:kotlin.Int visibility:private [final]
EXPRESSION_BODY
CONST Int type=kotlin.Int value=100
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-j1> visibility:private modality:FINAL <> ($this:<root>.H) returnType:kotlin.Int
correspondingProperty: PROPERTY name:j1 visibility:private modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.H
BLOCK_BODY
RETURN type=kotlin.Nothing from='private final fun <get-j1> (): kotlin.Int declared in <root>.H'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:j1 type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.H declared in <root>.H.<get-j1>' type=<root>.H origin=null
PROPERTY name:j2 visibility:private modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:j2 type:kotlin.Int visibility:private [final]
EXPRESSION_BODY
CONST Int type=kotlin.Int value=200
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-j2> visibility:private modality:FINAL <> ($this:<root>.H) returnType:kotlin.Int
correspondingProperty: PROPERTY name:j2 visibility:private modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.H
BLOCK_BODY
RETURN type=kotlin.Nothing from='private final fun <get-j2> (): kotlin.Int declared in <root>.H'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:j2 type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.H declared in <root>.H.<get-j2>' type=<root>.H origin=null
PROPERTY name:j3 visibility:private modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:j3 type:kotlin.Int visibility:private [final]
EXPRESSION_BODY
CONST Int type=kotlin.Int value=300
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-j3> visibility:private modality:FINAL <> ($this:<root>.H) returnType:kotlin.Int
correspondingProperty: PROPERTY name:j3 visibility:private modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.H
BLOCK_BODY
RETURN type=kotlin.Nothing from='private final fun <get-j3> (): kotlin.Int declared in <root>.H'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:j3 type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.H declared in <root>.H.<get-j3>' type=<root>.H origin=null
PROPERTY name:j4 visibility:private modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:j4 type:kotlin.Int visibility:private [final]
EXPRESSION_BODY
CONST Int type=kotlin.Int value=400
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-j4> visibility:private modality:FINAL <> ($this:<root>.H) returnType:kotlin.Int
correspondingProperty: PROPERTY name:j4 visibility:private modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.H
BLOCK_BODY
RETURN type=kotlin.Nothing from='private final fun <get-j4> (): kotlin.Int declared in <root>.H'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:j4 type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.H declared in <root>.H.<get-j4>' type=<root>.H origin=null
CONSTRUCTOR visibility:public <> () returnType:<root>.H [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.J'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:H modality:FINAL visibility:public superTypes:[<root>.J]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.J
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:funJ1 visibility:public modality:OPEN <> ($this:<root>.J) returnType:kotlin.Unit [fake_override]
overridden:
public open fun funJ1 (): kotlin.Unit declared in <root>.J
$this: VALUE_PARAMETER name:<this> type:<root>.J
FUN FAKE_OVERRIDE name:funJ2 visibility:protected/*protected and package*/ modality:OPEN <> ($this:<root>.J) returnType:kotlin.Unit [fake_override]
overridden:
protected/*protected and package*/ open fun funJ2 (): kotlin.Unit declared in <root>.J
$this: VALUE_PARAMETER name:<this> type:<root>.J
FUN FAKE_OVERRIDE name:funJ4 visibility:public/*package*/ modality:OPEN <> ($this:<root>.J) returnType:kotlin.Unit [fake_override]
overridden:
public/*package*/ open fun funJ4 (): kotlin.Unit declared in <root>.J
$this: VALUE_PARAMETER name:<this> type:<root>.J
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 <root>.J
$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 <root>.J
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
PROPERTY FAKE_OVERRIDE name:j1 visibility:public modality:FINAL [fake_override,var]
overridden:
public final j1: kotlin.Int
PROPERTY FAKE_OVERRIDE name:j2 visibility:protected/*protected and package*/ modality:FINAL [fake_override,var]
overridden:
protected/*protected and package*/ final j2: kotlin.Int
PROPERTY FAKE_OVERRIDE name:j4 visibility:public/*package*/ modality:FINAL [fake_override,var]
overridden:
public/*package*/ final j4: kotlin.Int
FUN name:test visibility:public modality:FINAL <> (a:<root>.A, b:<root>.B, c:<root>.C, d:<root>.D, e:<root>.E, f:<root>.F, g:<root>.G, h:<root>.H, i:<root>.I) returnType:kotlin.Unit
VALUE_PARAMETER name:a index:0 type:<root>.A
VALUE_PARAMETER name:b index:1 type:<root>.B
VALUE_PARAMETER name:c index:2 type:<root>.C
VALUE_PARAMETER name:d index:3 type:<root>.D
VALUE_PARAMETER name:e index:4 type:<root>.E
VALUE_PARAMETER name:f index:5 type:<root>.F
VALUE_PARAMETER name:g index:6 type:<root>.G
VALUE_PARAMETER name:h index:7 type:<root>.H
VALUE_PARAMETER name:i index:8 type:<root>.I
BLOCK_BODY
SET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:j1 type:kotlin.Int visibility:public' type=kotlin.Unit origin=EQ
receiver: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
value: CONST Int type=kotlin.Int value=1
SET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:j2 type:kotlin.Int visibility:protected/*protected and package*/' type=kotlin.Unit origin=EQ
receiver: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
value: CONST Int type=kotlin.Int value=2
SET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:j4 type:kotlin.Int visibility:public/*package*/' type=kotlin.Unit origin=EQ
receiver: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
value: CONST Int type=kotlin.Int value=3
CALL 'public open fun funJ1 (): kotlin.Unit declared in <root>.A' type=kotlin.Unit origin=null
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
CALL 'protected/*protected and package*/ open fun funJ2 (): kotlin.Unit declared in <root>.A' type=kotlin.Unit origin=null
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
CALL 'public/*package*/ open fun funJ4 (): kotlin.Unit declared in <root>.A' type=kotlin.Unit origin=null
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
SET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:j1 type:kotlin.Int visibility:public' type=kotlin.Unit origin=EQ
receiver: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
value: CONST Int type=kotlin.Int value=1
CALL 'public open fun funJ1 (): kotlin.Unit declared in <root>.B' type=kotlin.Unit origin=null
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
SET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:j1 type:kotlin.Int visibility:public' type=kotlin.Unit origin=EQ
receiver: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
value: CONST Int type=kotlin.Int value=1
SET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:j2 type:kotlin.Int visibility:protected/*protected and package*/' type=kotlin.Unit origin=EQ
receiver: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
value: CONST Int type=kotlin.Int value=2
SET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:j4 type:kotlin.Int visibility:public/*package*/' type=kotlin.Unit origin=EQ
receiver: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
value: CONST Int type=kotlin.Int value=3
CALL 'public open fun funJ1 (): kotlin.Unit declared in <root>.C' type=kotlin.Unit origin=null
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
CALL 'public open fun funJ2 (): kotlin.Unit declared in <root>.C' type=kotlin.Unit origin=null
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
CALL 'internal open fun funJ4 (): kotlin.Unit declared in <root>.C' type=kotlin.Unit origin=null
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
SET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:j1 type:kotlin.Int visibility:public' type=kotlin.Unit origin=EQ
receiver: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
value: CONST Int type=kotlin.Int value=1
CALL 'public open fun funJ1 (): kotlin.Unit declared in <root>.D' type=kotlin.Unit origin=null
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
CALL 'public open fun funJ2 (): kotlin.Unit declared in <root>.D' type=kotlin.Unit origin=null
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:j1 type:kotlin.Int visibility:public' type=kotlin.Int origin=null
receiver: GET_VAR 'e: <root>.E declared in <root>.test' type=<root>.E origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:j2 type:kotlin.Int visibility:protected/*protected and package*/' type=kotlin.Int origin=null
receiver: GET_VAR 'e: <root>.E declared in <root>.test' type=<root>.E origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public final fun <get-j3> (): kotlin.Int declared in <root>.E' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR 'e: <root>.E declared in <root>.test' type=<root>.E origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:j4 type:kotlin.Int visibility:public/*package*/' type=kotlin.Int origin=null
receiver: GET_VAR 'e: <root>.E declared in <root>.test' type=<root>.E origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:j1 type:kotlin.Int visibility:public' type=kotlin.Int origin=null
receiver: GET_VAR 'f: <root>.F declared in <root>.test' type=<root>.F origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:j2 type:kotlin.Int visibility:protected/*protected and package*/' type=kotlin.Int origin=null
receiver: GET_VAR 'f: <root>.F declared in <root>.test' type=<root>.F origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:j4 type:kotlin.Int visibility:public/*package*/' type=kotlin.Int origin=null
receiver: GET_VAR 'f: <root>.F declared in <root>.test' type=<root>.F origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:j1 type:kotlin.Int visibility:public' type=kotlin.Int origin=null
receiver: GET_VAR 'g: <root>.G declared in <root>.test' type=<root>.G origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:j2 type:kotlin.Int visibility:protected/*protected and package*/' type=kotlin.Int origin=null
receiver: GET_VAR 'g: <root>.G declared in <root>.test' type=<root>.G origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'internal final fun <get-j3> (): kotlin.Int declared in <root>.G' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR 'g: <root>.G declared in <root>.test' type=<root>.G origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:j4 type:kotlin.Int visibility:public/*package*/' type=kotlin.Int origin=null
receiver: GET_VAR 'g: <root>.G declared in <root>.test' type=<root>.G origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:j1 type:kotlin.Int visibility:public' type=kotlin.Int origin=null
receiver: GET_VAR 'h: <root>.H declared in <root>.test' type=<root>.H origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:j2 type:kotlin.Int visibility:protected/*protected and package*/' type=kotlin.Int origin=null
receiver: GET_VAR 'h: <root>.H declared in <root>.test' type=<root>.H origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:j4 type:kotlin.Int visibility:public/*package*/' type=kotlin.Int origin=null
receiver: GET_VAR 'h: <root>.H declared in <root>.test' type=<root>.H origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:j1 type:kotlin.Int visibility:public' type=kotlin.Int origin=null
receiver: GET_VAR 'i: <root>.I declared in <root>.test' type=<root>.I origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:j2 type:kotlin.Int visibility:protected/*protected and package*/' type=kotlin.Int origin=null
receiver: GET_VAR 'i: <root>.I declared in <root>.test' type=<root>.I origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:j4 type:kotlin.Int visibility:public/*package*/' type=kotlin.Int origin=null
receiver: GET_VAR 'i: <root>.I declared in <root>.test' type=<root>.I origin=null
@@ -0,0 +1,129 @@
// TARGET_BACKEND: JVM
// MODULE: separate
// FILE: J2.java
public class J2 {
public int j1 = 1;
protected int j2 = 2;
private int j3 = 3;
int j4 = 4;
public void funJ1() {}
protected void funJ2() {}
private void funJ3() {}
void funJ4() {}
}
// FILE: Test.kt
class I : J2() {
internal val j1 = 11
internal val j2 = 22
internal val j3 = 33
internal val j4 = 44
}
// MODULE: main(separate)
// FILE: J.java
public class J {
public int j1=12;
protected int j2=23;
private int j3=34;
int j4=45;
public void funJ1() {}
protected void funJ2() {}
private void funJ3() {}
void funJ4() {}
}
// FILE: test.kt
class A: J()
class B : J2()
class C : J() {
override fun funJ1() { }
public override fun funJ2() { }
internal override fun funJ4() { }
}
class D : J2() {
override fun funJ1() { }
public override fun funJ2() { }
}
class E: J() {
public val j1 = 100
public val j2 = 200
public val j3 = 300
public val j4 = 400
}
open class F : J() {
protected val j1 = 100
protected val j2 = 200
protected val j3 = 300
protected var j4 = 400
}
class G : J() {
internal val j1 = 100
internal val j2 = 200
internal val j3 = 300
internal var j4 = 400
}
class H : J() {
private val j1 = 100
private val j2 = 200
private val j3 = 300
private val j4 = 400
}
fun test(a: A, b: B, c: C, d: D, e: E, f: F, g: G, h: H, i: I) {
a.j1 = 1
a.j2 = 2
a.j4 = 3
a.funJ1()
a.funJ2()
a.funJ4()
b.j1 = 1
b.funJ1()
c.j1 = 1
c.j2 = 2
c.j4 = 3
c.funJ1()
c.funJ2()
c.funJ4()
d.j1 = 1
d.funJ1()
d.funJ2()
e.j1
e.j2
e.j3
e.j4
f.j1
f.j2
f.j4
g.j1
g.j2
g.j3
g.j4
h.j1
h.j2
h.j4
i.j1
i.j2
i.j4
}
@@ -0,0 +1,220 @@
// MODULE: separate
// FILE: Test.kt
class I : J2 {
internal val j1: Int
field = 11
internal get
internal val j2: Int
field = 22
internal get
internal val j3: Int
field = 33
internal get
internal val j4: Int
field = 44
internal get
constructor() /* primary */ {
super/*J2*/()
/* <init>() */
}
}
// MODULE: main
// FILE: test.kt
class A : J {
constructor() /* primary */ {
super/*J*/()
/* <init>() */
}
}
class B : J2 {
constructor() /* primary */ {
super/*J2*/()
/* <init>() */
}
}
class C : J {
constructor() /* primary */ {
super/*J*/()
/* <init>() */
}
override fun funJ1() {
}
override fun funJ2() {
}
internal override fun funJ4() {
}
}
class D : J2 {
constructor() /* primary */ {
super/*J2*/()
/* <init>() */
}
override fun funJ1() {
}
override fun funJ2() {
}
}
class E : J {
val j1: Int
field = 100
get
val j2: Int
field = 200
get
val j3: Int
field = 300
get
val j4: Int
field = 400
get
constructor() /* primary */ {
super/*J*/()
/* <init>() */
}
}
open class F : J {
protected val j1: Int
field = 100
protected get
protected val j2: Int
field = 200
protected get
protected val j3: Int
field = 300
protected get
protected var j4: Int
field = 400
protected get
protected set
constructor() /* primary */ {
super/*J*/()
/* <init>() */
}
}
class G : J {
internal val j1: Int
field = 100
internal get
internal val j2: Int
field = 200
internal get
internal val j3: Int
field = 300
internal get
internal var j4: Int
field = 400
internal get
internal set
constructor() /* primary */ {
super/*J*/()
/* <init>() */
}
}
class H : J {
private val j1: Int
field = 100
private get
private val j2: Int
field = 200
private get
private val j3: Int
field = 300
private get
private val j4: Int
field = 400
private get
constructor() /* primary */ {
super/*J*/()
/* <init>() */
}
}
fun test(a: A, b: B, c: C, d: D, e: E, f: F, g: G, h: H, i: I) {
a(super<A>).#j1 = 1
a(super<A>).#j2 = 2
a(super<A>).#j4 = 3
a.funJ1()
a.funJ2()
a.funJ4()
b(super<B>).#j1 = 1
b.funJ1()
c(super<C>).#j1 = 1
c(super<C>).#j2 = 2
c(super<C>).#j4 = 3
c.funJ1()
c.funJ2()
c.funJ4()
d(super<D>).#j1 = 1
d.funJ1()
d.funJ2()
e(super<E>).#j1 /*~> Unit */
e(super<E>).#j2 /*~> Unit */
e.<get-j3>() /*~> Unit */
e(super<E>).#j4 /*~> Unit */
f(super<F>).#j1 /*~> Unit */
f(super<F>).#j2 /*~> Unit */
f(super<F>).#j4 /*~> Unit */
g(super<G>).#j1 /*~> Unit */
g(super<G>).#j2 /*~> Unit */
g.<get-j3>() /*~> Unit */
g(super<G>).#j4 /*~> Unit */
h(super<H>).#j1 /*~> Unit */
h(super<H>).#j2 /*~> Unit */
h(super<H>).#j4 /*~> Unit */
i(super<I>).#j1 /*~> Unit */
i(super<I>).#j2 /*~> Unit */
i(super<I>).#j4 /*~> Unit */
}
@@ -0,0 +1,511 @@
// MODULE: separate
// FILE: Test.kt
// CHECK:
// Mangled name: I
// Public signature: /I|null[0]
class I : J2 {
// CHECK:
// Mangled name: I{}j1
// Public signature: /I.j1|-928676043469958746[0]
// Public signature debug description: {}j1
internal val j1: Int
// CHECK JVM_IR:
// Mangled name: I#<get-j1>(){}kotlin.Int
// Public signature: /I.j1.<get-j1>|6087532728828337697[0]
// Public signature debug description: <get-j1>(){}kotlin.Int
internal get
// CHECK:
// Mangled name: I{}j2
// Public signature: /I.j2|-2140420436483753491[0]
// Public signature debug description: {}j2
internal val j2: Int
// CHECK JVM_IR:
// Mangled name: I#<get-j2>(){}kotlin.Int
// Public signature: /I.j2.<get-j2>|4162516175041800910[0]
// Public signature debug description: <get-j2>(){}kotlin.Int
internal get
// CHECK:
// Mangled name: I{}j3
// Public signature: /I.j3|2185908363147527217[0]
// Public signature debug description: {}j3
internal val j3: Int
// CHECK JVM_IR:
// Mangled name: I#<get-j3>(){}kotlin.Int
// Public signature: /I.j3.<get-j3>|3827766923255029220[0]
// Public signature debug description: <get-j3>(){}kotlin.Int
internal get
// CHECK:
// Mangled name: I{}j4
// Public signature: /I.j4|-8411170540719817799[0]
// Public signature debug description: {}j4
internal val j4: Int
// CHECK JVM_IR:
// Mangled name: I#<get-j4>(){}kotlin.Int
// Public signature: /I.j4.<get-j4>|6634477083645281651[0]
// Public signature debug description: <get-j4>(){}kotlin.Int
internal get
// CHECK:
// Mangled name: I#<init>(){}
// Public signature: /I.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: I#funJ1(){}
// Public signature: /I.funJ1|4805019183111937798[0]
// Public signature debug description: funJ1(){}
/* fake */ override fun funJ1(): Unit
// CHECK:
// Mangled name: I#funJ2(){}
// Public signature: /I.funJ2|1015642222742993127[0]
// Public signature debug description: funJ2(){}
protected_and_package /* fake */ override fun funJ2(): Unit
// CHECK:
// Mangled name: I#funJ4(){}
// Public signature: /I.funJ4|1072240279403770455[0]
// Public signature debug description: funJ4(){}
package /* fake */ override fun funJ4(): Unit
}
// MODULE: main
// FILE: test.kt
// CHECK:
// Mangled name: A
// Public signature: /A|null[0]
class A : J {
// CHECK:
// Mangled name: A#<init>(){}
// Public signature: /A.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: A#funJ1(){}
// Public signature: /A.funJ1|4805019183111937798[0]
// Public signature debug description: funJ1(){}
/* fake */ override fun funJ1(): Unit
// CHECK:
// Mangled name: A#funJ2(){}
// Public signature: /A.funJ2|1015642222742993127[0]
// Public signature debug description: funJ2(){}
protected_and_package /* fake */ override fun funJ2(): Unit
// CHECK:
// Mangled name: A#funJ4(){}
// Public signature: /A.funJ4|1072240279403770455[0]
// Public signature debug description: funJ4(){}
package /* fake */ override fun funJ4(): Unit
}
// CHECK:
// Mangled name: B
// Public signature: /B|null[0]
class B : J2 {
// CHECK:
// Mangled name: B#<init>(){}
// Public signature: /B.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: B#funJ1(){}
// Public signature: /B.funJ1|4805019183111937798[0]
// Public signature debug description: funJ1(){}
/* fake */ override fun funJ1(): Unit
// CHECK:
// Mangled name: B#funJ2(){}
// Public signature: /B.funJ2|1015642222742993127[0]
// Public signature debug description: funJ2(){}
protected_and_package /* fake */ override fun funJ2(): Unit
// CHECK:
// Mangled name: B#funJ4(){}
// Public signature: /B.funJ4|1072240279403770455[0]
// Public signature debug description: funJ4(){}
package /* fake */ override fun funJ4(): Unit
}
// CHECK:
// Mangled name: C
// Public signature: /C|null[0]
class C : J {
// CHECK:
// Mangled name: C#<init>(){}
// Public signature: /C.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: C#funJ1(){}
// Public signature: /C.funJ1|4805019183111937798[0]
// Public signature debug description: funJ1(){}
override fun funJ1(): Unit
// CHECK:
// Mangled name: C#funJ2(){}
// Public signature: /C.funJ2|1015642222742993127[0]
// Public signature debug description: funJ2(){}
override fun funJ2(): Unit
// CHECK:
// Mangled name: C#funJ4(){}
// Public signature: /C.funJ4|1072240279403770455[0]
// Public signature debug description: funJ4(){}
internal override fun funJ4(): Unit
}
// CHECK:
// Mangled name: D
// Public signature: /D|null[0]
class D : J2 {
// CHECK:
// Mangled name: D#<init>(){}
// Public signature: /D.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: D#funJ4(){}
// Public signature: /D.funJ4|1072240279403770455[0]
// Public signature debug description: funJ4(){}
package /* fake */ override fun funJ4(): Unit
// CHECK:
// Mangled name: D#funJ1(){}
// Public signature: /D.funJ1|4805019183111937798[0]
// Public signature debug description: funJ1(){}
override fun funJ1(): Unit
// CHECK:
// Mangled name: D#funJ2(){}
// Public signature: /D.funJ2|1015642222742993127[0]
// Public signature debug description: funJ2(){}
override fun funJ2(): Unit
}
// CHECK:
// Mangled name: E
// Public signature: /E|null[0]
class E : J {
// CHECK:
// Mangled name: E{}j1
// Public signature: /E.j1|-928676043469958746[0]
// Public signature debug description: {}j1
val j1: Int
// CHECK JVM_IR:
// Mangled name: E#<get-j1>(){}kotlin.Int
// Public signature: /E.j1.<get-j1>|6087532728828337697[0]
// Public signature debug description: <get-j1>(){}kotlin.Int
get
// CHECK:
// Mangled name: E{}j2
// Public signature: /E.j2|-2140420436483753491[0]
// Public signature debug description: {}j2
val j2: Int
// CHECK JVM_IR:
// Mangled name: E#<get-j2>(){}kotlin.Int
// Public signature: /E.j2.<get-j2>|4162516175041800910[0]
// Public signature debug description: <get-j2>(){}kotlin.Int
get
// CHECK:
// Mangled name: E{}j3
// Public signature: /E.j3|2185908363147527217[0]
// Public signature debug description: {}j3
val j3: Int
// CHECK JVM_IR:
// Mangled name: E#<get-j3>(){}kotlin.Int
// Public signature: /E.j3.<get-j3>|3827766923255029220[0]
// Public signature debug description: <get-j3>(){}kotlin.Int
get
// CHECK:
// Mangled name: E{}j4
// Public signature: /E.j4|-8411170540719817799[0]
// Public signature debug description: {}j4
val j4: Int
// CHECK JVM_IR:
// Mangled name: E#<get-j4>(){}kotlin.Int
// Public signature: /E.j4.<get-j4>|6634477083645281651[0]
// Public signature debug description: <get-j4>(){}kotlin.Int
get
// CHECK:
// Mangled name: E#<init>(){}
// Public signature: /E.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: E#funJ1(){}
// Public signature: /E.funJ1|4805019183111937798[0]
// Public signature debug description: funJ1(){}
/* fake */ override fun funJ1(): Unit
// CHECK:
// Mangled name: E#funJ2(){}
// Public signature: /E.funJ2|1015642222742993127[0]
// Public signature debug description: funJ2(){}
protected_and_package /* fake */ override fun funJ2(): Unit
// CHECK:
// Mangled name: E#funJ4(){}
// Public signature: /E.funJ4|1072240279403770455[0]
// Public signature debug description: funJ4(){}
package /* fake */ override fun funJ4(): Unit
}
// CHECK:
// Mangled name: F
// Public signature: /F|null[0]
open class F : J {
// CHECK:
// Mangled name: F{}j1
// Public signature: /F.j1|-928676043469958746[0]
// Public signature debug description: {}j1
protected val j1: Int
// CHECK JVM_IR:
// Mangled name: F#<get-j1>(){}kotlin.Int
// Public signature: /F.j1.<get-j1>|6087532728828337697[0]
// Public signature debug description: <get-j1>(){}kotlin.Int
protected get
// CHECK:
// Mangled name: F{}j2
// Public signature: /F.j2|-2140420436483753491[0]
// Public signature debug description: {}j2
protected val j2: Int
// CHECK JVM_IR:
// Mangled name: F#<get-j2>(){}kotlin.Int
// Public signature: /F.j2.<get-j2>|4162516175041800910[0]
// Public signature debug description: <get-j2>(){}kotlin.Int
protected get
// CHECK:
// Mangled name: F{}j3
// Public signature: /F.j3|2185908363147527217[0]
// Public signature debug description: {}j3
protected val j3: Int
// CHECK JVM_IR:
// Mangled name: F#<get-j3>(){}kotlin.Int
// Public signature: /F.j3.<get-j3>|3827766923255029220[0]
// Public signature debug description: <get-j3>(){}kotlin.Int
protected get
// CHECK:
// Mangled name: F{}j4
// Public signature: /F.j4|-8411170540719817799[0]
// Public signature debug description: {}j4
protected var j4: Int
// CHECK JVM_IR:
// Mangled name: F#<get-j4>(){}kotlin.Int
// Public signature: /F.j4.<get-j4>|6634477083645281651[0]
// Public signature debug description: <get-j4>(){}kotlin.Int
protected get
// CHECK:
// Mangled name: F#<set-j4>(kotlin.Int){}
// Public signature: /F.j4.<set-j4>|8664647862219023612[0]
// Public signature debug description: <set-j4>(kotlin.Int){}
protected set
// CHECK:
// Mangled name: F#<init>(){}
// Public signature: /F.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: F#funJ1(){}
// Public signature: /F.funJ1|4805019183111937798[0]
// Public signature debug description: funJ1(){}
/* fake */ override fun funJ1(): Unit
// CHECK:
// Mangled name: F#funJ2(){}
// Public signature: /F.funJ2|1015642222742993127[0]
// Public signature debug description: funJ2(){}
protected_and_package /* fake */ override fun funJ2(): Unit
// CHECK:
// Mangled name: F#funJ4(){}
// Public signature: /F.funJ4|1072240279403770455[0]
// Public signature debug description: funJ4(){}
package /* fake */ override fun funJ4(): Unit
}
// CHECK:
// Mangled name: G
// Public signature: /G|null[0]
class G : J {
// CHECK:
// Mangled name: G{}j1
// Public signature: /G.j1|-928676043469958746[0]
// Public signature debug description: {}j1
internal val j1: Int
// CHECK JVM_IR:
// Mangled name: G#<get-j1>(){}kotlin.Int
// Public signature: /G.j1.<get-j1>|6087532728828337697[0]
// Public signature debug description: <get-j1>(){}kotlin.Int
internal get
// CHECK:
// Mangled name: G{}j2
// Public signature: /G.j2|-2140420436483753491[0]
// Public signature debug description: {}j2
internal val j2: Int
// CHECK JVM_IR:
// Mangled name: G#<get-j2>(){}kotlin.Int
// Public signature: /G.j2.<get-j2>|4162516175041800910[0]
// Public signature debug description: <get-j2>(){}kotlin.Int
internal get
// CHECK:
// Mangled name: G{}j3
// Public signature: /G.j3|2185908363147527217[0]
// Public signature debug description: {}j3
internal val j3: Int
// CHECK JVM_IR:
// Mangled name: G#<get-j3>(){}kotlin.Int
// Public signature: /G.j3.<get-j3>|3827766923255029220[0]
// Public signature debug description: <get-j3>(){}kotlin.Int
internal get
// CHECK:
// Mangled name: G{}j4
// Public signature: /G.j4|-8411170540719817799[0]
// Public signature debug description: {}j4
internal var j4: Int
// CHECK JVM_IR:
// Mangled name: G#<get-j4>(){}kotlin.Int
// Public signature: /G.j4.<get-j4>|6634477083645281651[0]
// Public signature debug description: <get-j4>(){}kotlin.Int
internal get
// CHECK:
// Mangled name: G#<set-j4>(kotlin.Int){}
// Public signature: /G.j4.<set-j4>|8664647862219023612[0]
// Public signature debug description: <set-j4>(kotlin.Int){}
internal set
// CHECK:
// Mangled name: G#<init>(){}
// Public signature: /G.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: G#funJ1(){}
// Public signature: /G.funJ1|4805019183111937798[0]
// Public signature debug description: funJ1(){}
/* fake */ override fun funJ1(): Unit
// CHECK:
// Mangled name: G#funJ2(){}
// Public signature: /G.funJ2|1015642222742993127[0]
// Public signature debug description: funJ2(){}
protected_and_package /* fake */ override fun funJ2(): Unit
// CHECK:
// Mangled name: G#funJ4(){}
// Public signature: /G.funJ4|1072240279403770455[0]
// Public signature debug description: funJ4(){}
package /* fake */ override fun funJ4(): Unit
}
// CHECK:
// Mangled name: H
// Public signature: /H|null[0]
class H : J {
// CHECK:
// Mangled name: H{}j1
// Public signature: /H.j1|-928676043469958746[0]
// Public signature debug description: {}j1
private val j1: Int
// CHECK JVM_IR:
// Mangled name: H#<get-j1>(){}kotlin.Int
// Public signature: /H.j1.<get-j1>|6087532728828337697[0]
// Public signature debug description: <get-j1>(){}kotlin.Int
private get
// CHECK:
// Mangled name: H{}j2
// Public signature: /H.j2|-2140420436483753491[0]
// Public signature debug description: {}j2
private val j2: Int
// CHECK JVM_IR:
// Mangled name: H#<get-j2>(){}kotlin.Int
// Public signature: /H.j2.<get-j2>|4162516175041800910[0]
// Public signature debug description: <get-j2>(){}kotlin.Int
private get
// CHECK:
// Mangled name: H{}j3
// Public signature: /H.j3|2185908363147527217[0]
// Public signature debug description: {}j3
private val j3: Int
// CHECK JVM_IR:
// Mangled name: H#<get-j3>(){}kotlin.Int
// Public signature: /H.j3.<get-j3>|3827766923255029220[0]
// Public signature debug description: <get-j3>(){}kotlin.Int
private get
// CHECK:
// Mangled name: H{}j4
// Public signature: /H.j4|-8411170540719817799[0]
// Public signature debug description: {}j4
private val j4: Int
// CHECK JVM_IR:
// Mangled name: H#<get-j4>(){}kotlin.Int
// Public signature: /H.j4.<get-j4>|6634477083645281651[0]
// Public signature debug description: <get-j4>(){}kotlin.Int
private get
// CHECK:
// Mangled name: H#<init>(){}
// Public signature: /H.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: H#funJ1(){}
// Public signature: /H.funJ1|4805019183111937798[0]
// Public signature debug description: funJ1(){}
/* fake */ override fun funJ1(): Unit
// CHECK:
// Mangled name: H#funJ2(){}
// Public signature: /H.funJ2|1015642222742993127[0]
// Public signature debug description: funJ2(){}
protected_and_package /* fake */ override fun funJ2(): Unit
// CHECK:
// Mangled name: H#funJ4(){}
// Public signature: /H.funJ4|1072240279403770455[0]
// Public signature debug description: funJ4(){}
package /* fake */ override fun funJ4(): Unit
}
// CHECK:
// Mangled name: #test(A;B;C;D;E;F;G;H;I){}
// Public signature: /test|-1897371180652527268[0]
// Public signature debug description: test(A;B;C;D;E;F;G;H;I){}
fun test(a: A, b: B, c: C, d: D, e: E, f: F, g: G, h: H, i: I): Unit
@@ -0,0 +1,416 @@
FILE fqName:<root> fileName:/test.kt
CLASS CLASS name:A modality:FINAL visibility:public superTypes:[<root>.Java5]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.A
CONSTRUCTOR visibility:public <> () returnType:<root>.A [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java5'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:A modality:FINAL visibility:public superTypes:[<root>.Java5]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java5
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:public modality:OPEN <> ($this:<root>.Java5) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (): kotlin.Unit declared in <root>.Java5
$this: VALUE_PARAMETER name:<this> type:<root>.Java5
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 <root>.Java5
$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 <root>.Java5
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:B modality:FINAL visibility:public superTypes:[<root>.Java6]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.B
CONSTRUCTOR visibility:public <> () returnType:<root>.B [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java6'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:B modality:FINAL visibility:public superTypes:[<root>.Java6]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java6
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:public modality:OPEN <> ($this:<root>.Java6) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (): kotlin.Unit declared in <root>.Java6
$this: VALUE_PARAMETER name:<this> type:<root>.Java6
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 <root>.Java6
$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 <root>.Java6
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:C modality:FINAL visibility:public superTypes:[<root>.Java7]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.C
CONSTRUCTOR visibility:public <> () returnType:<root>.C [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java7'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:C modality:FINAL visibility:public superTypes:[<root>.Java7]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java7
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:public modality:OPEN <> ($this:<root>.Java7) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (): kotlin.Unit declared in <root>.Java7
$this: VALUE_PARAMETER name:<this> type:<root>.Java7
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 <root>.Java7
$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 <root>.Java7
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:D modality:FINAL visibility:public superTypes:[<root>.Java8]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.D
CONSTRUCTOR visibility:public <> () returnType:<root>.D [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java8'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:D modality:FINAL visibility:public superTypes:[<root>.Java8]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java8
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:public modality:OPEN <> ($this:<root>.Java8) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (): kotlin.Unit declared in <root>.Java8
$this: VALUE_PARAMETER name:<this> type:<root>.Java8
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 <root>.Java8
$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 <root>.Java8
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:E modality:FINAL visibility:public superTypes:[<root>.Java9]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.E
CONSTRUCTOR visibility:public <> () returnType:<root>.E [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java9'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:E modality:FINAL visibility:public superTypes:[<root>.Java9]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java9
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:protected/*protected and package*/ modality:OPEN <> ($this:<root>.Java9) returnType:kotlin.Unit [fake_override]
overridden:
protected/*protected and package*/ open fun foo (): kotlin.Unit declared in <root>.Java9
$this: VALUE_PARAMETER name:<this> type:<root>.Java9
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 <root>.Java9
$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 <root>.Java9
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:F modality:FINAL visibility:public superTypes:[<root>.Java10]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.F
CONSTRUCTOR visibility:public <> () returnType:<root>.F [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java10'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:F modality:FINAL visibility:public superTypes:[<root>.Java10]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java10
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:protected/*protected and package*/ modality:OPEN <> ($this:<root>.Java10) returnType:kotlin.Unit [fake_override]
overridden:
protected/*protected and package*/ open fun foo (): kotlin.Unit declared in <root>.Java10
$this: VALUE_PARAMETER name:<this> type:<root>.Java10
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 <root>.Java10
$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 <root>.Java10
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:G modality:FINAL visibility:public superTypes:[<root>.Java11]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.G
CONSTRUCTOR visibility:public <> () returnType:<root>.G [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java11'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:G modality:FINAL visibility:public superTypes:[<root>.Java11]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java11
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:public/*package*/ modality:OPEN <> ($this:<root>.Java11) returnType:kotlin.Unit [fake_override]
overridden:
public/*package*/ open fun foo (): kotlin.Unit declared in <root>.Java11
$this: VALUE_PARAMETER name:<this> type:<root>.Java11
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 <root>.Java11
$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 <root>.Java11
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:H modality:FINAL visibility:public superTypes:[<root>.Java5]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.H
CONSTRUCTOR visibility:public <> () returnType:<root>.H [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java5'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:H modality:FINAL visibility:public superTypes:[<root>.Java5]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java5
$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 <root>.Java5
$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 <root>.Java5
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.H) returnType:kotlin.Unit
overridden:
public open fun foo (): kotlin.Unit declared in <root>.Java5
$this: VALUE_PARAMETER name:<this> type:<root>.H
BLOCK_BODY
CLASS CLASS name:I modality:FINAL visibility:public superTypes:[<root>.Java6]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.I
CONSTRUCTOR visibility:public <> () returnType:<root>.I [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java6'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:I modality:FINAL visibility:public superTypes:[<root>.Java6]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java6
$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 <root>.Java6
$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 <root>.Java6
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.I) returnType:kotlin.Unit
overridden:
public open fun foo (): kotlin.Unit declared in <root>.Java6
$this: VALUE_PARAMETER name:<this> type:<root>.I
BLOCK_BODY
CLASS CLASS name:J modality:FINAL visibility:public superTypes:[<root>.Java7]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.J
CONSTRUCTOR visibility:public <> () returnType:<root>.J [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java7'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:J modality:FINAL visibility:public superTypes:[<root>.Java7]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java7
$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 <root>.Java7
$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 <root>.Java7
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.J) returnType:kotlin.Unit
overridden:
public open fun foo (): kotlin.Unit declared in <root>.Java7
$this: VALUE_PARAMETER name:<this> type:<root>.J
BLOCK_BODY
CLASS CLASS name:K modality:FINAL visibility:public superTypes:[<root>.Java8]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.K
CONSTRUCTOR visibility:public <> () returnType:<root>.K [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java8'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:K modality:FINAL visibility:public superTypes:[<root>.Java8]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java8
$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 <root>.Java8
$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 <root>.Java8
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.K) returnType:kotlin.Unit
overridden:
public open fun foo (): kotlin.Unit declared in <root>.Java8
$this: VALUE_PARAMETER name:<this> type:<root>.K
BLOCK_BODY
CLASS CLASS name:L modality:FINAL visibility:public superTypes:[<root>.Java9]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.L
CONSTRUCTOR visibility:public <> () returnType:<root>.L [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java9'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:L modality:FINAL visibility:public superTypes:[<root>.Java9]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java9
$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 <root>.Java9
$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 <root>.Java9
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.L) returnType:kotlin.Unit
overridden:
protected/*protected and package*/ open fun foo (): kotlin.Unit declared in <root>.Java9
$this: VALUE_PARAMETER name:<this> type:<root>.L
BLOCK_BODY
CLASS CLASS name:M modality:FINAL visibility:public superTypes:[<root>.Java10]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.M
CONSTRUCTOR visibility:public <> () returnType:<root>.M [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java10'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:M modality:FINAL visibility:public superTypes:[<root>.Java10]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java10
$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 <root>.Java10
$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 <root>.Java10
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.M) returnType:kotlin.Unit
overridden:
protected/*protected and package*/ open fun foo (): kotlin.Unit declared in <root>.Java10
$this: VALUE_PARAMETER name:<this> type:<root>.M
BLOCK_BODY
CLASS CLASS name:N modality:FINAL visibility:public superTypes:[<root>.Java11]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.N
CONSTRUCTOR visibility:public <> () returnType:<root>.N [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java11'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:N modality:FINAL visibility:public superTypes:[<root>.Java11]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java11
$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 <root>.Java11
$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 <root>.Java11
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:internal modality:OPEN <> ($this:<root>.N) returnType:kotlin.Unit
overridden:
public/*package*/ open fun foo (): kotlin.Unit declared in <root>.Java11
$this: VALUE_PARAMETER name:<this> type:<root>.N
BLOCK_BODY
FUN name:test visibility:public modality:FINAL <> (a:<root>.A, b:<root>.B, c:<root>.C, d:<root>.D, e:<root>.E, f:<root>.F, g:<root>.G, h:<root>.H, i:<root>.I, j:<root>.J, k:<root>.K, l:<root>.L, m:<root>.M, n:<root>.N) returnType:kotlin.Unit
VALUE_PARAMETER name:a index:0 type:<root>.A
VALUE_PARAMETER name:b index:1 type:<root>.B
VALUE_PARAMETER name:c index:2 type:<root>.C
VALUE_PARAMETER name:d index:3 type:<root>.D
VALUE_PARAMETER name:e index:4 type:<root>.E
VALUE_PARAMETER name:f index:5 type:<root>.F
VALUE_PARAMETER name:g index:6 type:<root>.G
VALUE_PARAMETER name:h index:7 type:<root>.H
VALUE_PARAMETER name:i index:8 type:<root>.I
VALUE_PARAMETER name:j index:9 type:<root>.J
VALUE_PARAMETER name:k index:10 type:<root>.K
VALUE_PARAMETER name:l index:11 type:<root>.L
VALUE_PARAMETER name:m index:12 type:<root>.M
VALUE_PARAMETER name:n index:13 type:<root>.N
BLOCK_BODY
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:a type:kotlin.Int visibility:public' type=kotlin.Int origin=null
receiver: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
CALL 'public open fun foo (): kotlin.Unit declared in <root>.A' type=kotlin.Unit origin=null
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:a type:kotlin.Int visibility:public' type=kotlin.Int origin=null
receiver: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
CALL 'public open fun foo (): kotlin.Unit declared in <root>.B' type=kotlin.Unit origin=null
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:a type:kotlin.Int visibility:public' type=kotlin.Int origin=null
receiver: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
CALL 'public open fun foo (): kotlin.Unit declared in <root>.C' type=kotlin.Unit origin=null
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:a type:kotlin.Int visibility:public' type=kotlin.Int origin=null
receiver: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
CALL 'public open fun foo (): kotlin.Unit declared in <root>.D' type=kotlin.Unit origin=null
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:a type:kotlin.Int visibility:protected/*protected and package*/' type=kotlin.Int origin=null
receiver: GET_VAR 'e: <root>.E declared in <root>.test' type=<root>.E origin=null
CALL 'protected/*protected and package*/ open fun foo (): kotlin.Unit declared in <root>.E' type=kotlin.Unit origin=null
$this: GET_VAR 'e: <root>.E declared in <root>.test' type=<root>.E origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:a type:kotlin.Int visibility:protected/*protected and package*/' type=kotlin.Int origin=null
receiver: GET_VAR 'f: <root>.F declared in <root>.test' type=<root>.F origin=null
CALL 'protected/*protected and package*/ open fun foo (): kotlin.Unit declared in <root>.F' type=kotlin.Unit origin=null
$this: GET_VAR 'f: <root>.F declared in <root>.test' type=<root>.F origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:a type:kotlin.Int visibility:public/*package*/' type=kotlin.Int origin=null
receiver: GET_VAR 'g: <root>.G declared in <root>.test' type=<root>.G origin=null
CALL 'public/*package*/ open fun foo (): kotlin.Unit declared in <root>.G' type=kotlin.Unit origin=null
$this: GET_VAR 'g: <root>.G declared in <root>.test' type=<root>.G origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:a type:kotlin.Int visibility:public' type=kotlin.Int origin=null
receiver: GET_VAR 'h: <root>.H declared in <root>.test' type=<root>.H origin=null
CALL 'public open fun foo (): kotlin.Unit declared in <root>.H' type=kotlin.Unit origin=null
$this: GET_VAR 'h: <root>.H declared in <root>.test' type=<root>.H origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:a type:kotlin.Int visibility:public' type=kotlin.Int origin=null
receiver: GET_VAR 'i: <root>.I declared in <root>.test' type=<root>.I origin=null
CALL 'public open fun foo (): kotlin.Unit declared in <root>.I' type=kotlin.Unit origin=null
$this: GET_VAR 'i: <root>.I declared in <root>.test' type=<root>.I origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:a type:kotlin.Int visibility:public' type=kotlin.Int origin=null
receiver: GET_VAR 'j: <root>.J declared in <root>.test' type=<root>.J origin=null
CALL 'public open fun foo (): kotlin.Unit declared in <root>.J' type=kotlin.Unit origin=null
$this: GET_VAR 'j: <root>.J declared in <root>.test' type=<root>.J origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:a type:kotlin.Int visibility:public' type=kotlin.Int origin=null
receiver: GET_VAR 'k: <root>.K declared in <root>.test' type=<root>.K origin=null
CALL 'public open fun foo (): kotlin.Unit declared in <root>.K' type=kotlin.Unit origin=null
$this: GET_VAR 'k: <root>.K declared in <root>.test' type=<root>.K origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:a type:kotlin.Int visibility:protected/*protected and package*/' type=kotlin.Int origin=null
receiver: GET_VAR 'l: <root>.L declared in <root>.test' type=<root>.L origin=null
CALL 'public open fun foo (): kotlin.Unit declared in <root>.L' type=kotlin.Unit origin=null
$this: GET_VAR 'l: <root>.L declared in <root>.test' type=<root>.L origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:a type:kotlin.Int visibility:protected/*protected and package*/' type=kotlin.Int origin=null
receiver: GET_VAR 'm: <root>.M declared in <root>.test' type=<root>.M origin=null
CALL 'public open fun foo (): kotlin.Unit declared in <root>.M' type=kotlin.Unit origin=null
$this: GET_VAR 'm: <root>.M declared in <root>.test' type=<root>.M origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:a type:kotlin.Int visibility:public/*package*/' type=kotlin.Int origin=null
receiver: GET_VAR 'n: <root>.N declared in <root>.test' type=<root>.N origin=null
CALL 'internal open fun foo (): kotlin.Unit declared in <root>.N' type=kotlin.Unit origin=null
$this: GET_VAR 'n: <root>.N declared in <root>.test' type=<root>.N origin=null
@@ -0,0 +1,177 @@
class A : Java5 {
constructor() /* primary */ {
super/*Java5*/()
/* <init>() */
}
}
class B : Java6 {
constructor() /* primary */ {
super/*Java6*/()
/* <init>() */
}
}
class C : Java7 {
constructor() /* primary */ {
super/*Java7*/()
/* <init>() */
}
}
class D : Java8 {
constructor() /* primary */ {
super/*Java8*/()
/* <init>() */
}
}
class E : Java9 {
constructor() /* primary */ {
super/*Java9*/()
/* <init>() */
}
}
class F : Java10 {
constructor() /* primary */ {
super/*Java10*/()
/* <init>() */
}
}
class G : Java11 {
constructor() /* primary */ {
super/*Java11*/()
/* <init>() */
}
}
class H : Java5 {
constructor() /* primary */ {
super/*Java5*/()
/* <init>() */
}
override fun foo() {
}
}
class I : Java6 {
constructor() /* primary */ {
super/*Java6*/()
/* <init>() */
}
override fun foo() {
}
}
class J : Java7 {
constructor() /* primary */ {
super/*Java7*/()
/* <init>() */
}
override fun foo() {
}
}
class K : Java8 {
constructor() /* primary */ {
super/*Java8*/()
/* <init>() */
}
override fun foo() {
}
}
class L : Java9 {
constructor() /* primary */ {
super/*Java9*/()
/* <init>() */
}
override fun foo() {
}
}
class M : Java10 {
constructor() /* primary */ {
super/*Java10*/()
/* <init>() */
}
override fun foo() {
}
}
class N : Java11 {
constructor() /* primary */ {
super/*Java11*/()
/* <init>() */
}
internal override fun foo() {
}
}
fun test(a: A, b: B, c: C, d: D, e: E, f: F, g: G, h: H, i: I, j: J, k: K, l: L, m: M, n: N) {
a.#a /*~> Unit */
a.foo()
b.#a /*~> Unit */
b.foo()
c.#a /*~> Unit */
c.foo()
d.#a /*~> Unit */
d.foo()
e.#a /*~> Unit */
e.foo()
f.#a /*~> Unit */
f.foo()
g.#a /*~> Unit */
g.foo()
h.#a /*~> Unit */
h.foo()
i.#a /*~> Unit */
i.foo()
j.#a /*~> Unit */
j.foo()
k.#a /*~> Unit */
k.foo()
l.#a /*~> Unit */
l.foo()
m.#a /*~> Unit */
m.foo()
n.#a /*~> Unit */
n.foo()
}
@@ -0,0 +1,458 @@
FILE fqName:<root> fileName:/test.kt
CLASS CLASS name:A modality:FINAL visibility:public superTypes:[<root>.Java5]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.A
CONSTRUCTOR visibility:public <> () returnType:<root>.A [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java5'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:A modality:FINAL visibility:public superTypes:[<root>.Java5]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java5
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:public modality:OPEN <> ($this:<root>.Java5) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (): kotlin.Unit declared in <root>.Java5
$this: VALUE_PARAMETER name:<this> type:<root>.Java5
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 <root>.Java5
$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 <root>.Java5
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
PROPERTY FAKE_OVERRIDE name:a visibility:public modality:FINAL [fake_override,var]
overridden:
public final a: kotlin.Int
CLASS CLASS name:B modality:FINAL visibility:public superTypes:[<root>.Java6]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.B
CONSTRUCTOR visibility:public <> () returnType:<root>.B [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java6'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:B modality:FINAL visibility:public superTypes:[<root>.Java6]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java6
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:public modality:OPEN <> ($this:<root>.Java6) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (): kotlin.Unit declared in <root>.Java6
$this: VALUE_PARAMETER name:<this> type:<root>.Java6
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 <root>.Java6
$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 <root>.Java6
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
PROPERTY FAKE_OVERRIDE name:a visibility:public modality:FINAL [fake_override,var]
overridden:
public final a: kotlin.Int
CLASS CLASS name:C modality:FINAL visibility:public superTypes:[<root>.Java7]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.C
CONSTRUCTOR visibility:public <> () returnType:<root>.C [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java7'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:C modality:FINAL visibility:public superTypes:[<root>.Java7]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java7
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:public modality:OPEN <> ($this:<root>.Java7) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (): kotlin.Unit declared in <root>.Java7
$this: VALUE_PARAMETER name:<this> type:<root>.Java7
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 <root>.Java7
$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 <root>.Java7
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
PROPERTY FAKE_OVERRIDE name:a visibility:public modality:FINAL [fake_override,var]
overridden:
public final a: kotlin.Int
CLASS CLASS name:D modality:FINAL visibility:public superTypes:[<root>.Java8]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.D
CONSTRUCTOR visibility:public <> () returnType:<root>.D [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java8'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:D modality:FINAL visibility:public superTypes:[<root>.Java8]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java8
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:public modality:OPEN <> ($this:<root>.Java8) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (): kotlin.Unit declared in <root>.Java8
$this: VALUE_PARAMETER name:<this> type:<root>.Java8
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 <root>.Java8
$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 <root>.Java8
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
PROPERTY FAKE_OVERRIDE name:a visibility:public modality:FINAL [fake_override,var]
overridden:
public final a: kotlin.Int
CLASS CLASS name:E modality:FINAL visibility:public superTypes:[<root>.Java9]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.E
CONSTRUCTOR visibility:public <> () returnType:<root>.E [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java9'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:E modality:FINAL visibility:public superTypes:[<root>.Java9]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java9
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:protected/*protected and package*/ modality:OPEN <> ($this:<root>.Java9) returnType:kotlin.Unit [fake_override]
overridden:
protected/*protected and package*/ open fun foo (): kotlin.Unit declared in <root>.Java9
$this: VALUE_PARAMETER name:<this> type:<root>.Java9
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 <root>.Java9
$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 <root>.Java9
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
PROPERTY FAKE_OVERRIDE name:a visibility:protected/*protected and package*/ modality:FINAL [fake_override,var]
overridden:
protected/*protected and package*/ final a: kotlin.Int
CLASS CLASS name:F modality:FINAL visibility:public superTypes:[<root>.Java10]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.F
CONSTRUCTOR visibility:public <> () returnType:<root>.F [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java10'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:F modality:FINAL visibility:public superTypes:[<root>.Java10]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java10
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:protected/*protected and package*/ modality:OPEN <> ($this:<root>.Java10) returnType:kotlin.Unit [fake_override]
overridden:
protected/*protected and package*/ open fun foo (): kotlin.Unit declared in <root>.Java10
$this: VALUE_PARAMETER name:<this> type:<root>.Java10
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 <root>.Java10
$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 <root>.Java10
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
PROPERTY FAKE_OVERRIDE name:a visibility:protected/*protected and package*/ modality:FINAL [fake_override,var]
overridden:
protected/*protected and package*/ final a: kotlin.Int
CLASS CLASS name:G modality:FINAL visibility:public superTypes:[<root>.Java11]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.G
CONSTRUCTOR visibility:public <> () returnType:<root>.G [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java11'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:G modality:FINAL visibility:public superTypes:[<root>.Java11]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java11
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:public/*package*/ modality:OPEN <> ($this:<root>.Java11) returnType:kotlin.Unit [fake_override]
overridden:
public/*package*/ open fun foo (): kotlin.Unit declared in <root>.Java11
$this: VALUE_PARAMETER name:<this> type:<root>.Java11
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 <root>.Java11
$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 <root>.Java11
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
PROPERTY FAKE_OVERRIDE name:a visibility:public/*package*/ modality:FINAL [fake_override,var]
overridden:
public/*package*/ final a: kotlin.Int
CLASS CLASS name:H modality:FINAL visibility:public superTypes:[<root>.Java5]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.H
CONSTRUCTOR visibility:public <> () returnType:<root>.H [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java5'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:H modality:FINAL visibility:public superTypes:[<root>.Java5]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java5
$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 <root>.Java5
$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 <root>.Java5
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.H) returnType:kotlin.Unit
overridden:
public open fun foo (): kotlin.Unit declared in <root>.Java5
$this: VALUE_PARAMETER name:<this> type:<root>.H
BLOCK_BODY
PROPERTY FAKE_OVERRIDE name:a visibility:public modality:FINAL [fake_override,var]
overridden:
public final a: kotlin.Int
CLASS CLASS name:I modality:FINAL visibility:public superTypes:[<root>.Java6]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.I
CONSTRUCTOR visibility:public <> () returnType:<root>.I [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java6'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:I modality:FINAL visibility:public superTypes:[<root>.Java6]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java6
$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 <root>.Java6
$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 <root>.Java6
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.I) returnType:kotlin.Unit
overridden:
public open fun foo (): kotlin.Unit declared in <root>.Java6
$this: VALUE_PARAMETER name:<this> type:<root>.I
BLOCK_BODY
PROPERTY FAKE_OVERRIDE name:a visibility:public modality:FINAL [fake_override,var]
overridden:
public final a: kotlin.Int
CLASS CLASS name:J modality:FINAL visibility:public superTypes:[<root>.Java7]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.J
CONSTRUCTOR visibility:public <> () returnType:<root>.J [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java7'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:J modality:FINAL visibility:public superTypes:[<root>.Java7]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java7
$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 <root>.Java7
$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 <root>.Java7
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.J) returnType:kotlin.Unit
overridden:
public open fun foo (): kotlin.Unit declared in <root>.Java7
$this: VALUE_PARAMETER name:<this> type:<root>.J
BLOCK_BODY
PROPERTY FAKE_OVERRIDE name:a visibility:public modality:FINAL [fake_override,var]
overridden:
public final a: kotlin.Int
CLASS CLASS name:K modality:FINAL visibility:public superTypes:[<root>.Java8]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.K
CONSTRUCTOR visibility:public <> () returnType:<root>.K [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java8'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:K modality:FINAL visibility:public superTypes:[<root>.Java8]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java8
$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 <root>.Java8
$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 <root>.Java8
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.K) returnType:kotlin.Unit
overridden:
public open fun foo (): kotlin.Unit declared in <root>.Java8
$this: VALUE_PARAMETER name:<this> type:<root>.K
BLOCK_BODY
PROPERTY FAKE_OVERRIDE name:a visibility:public modality:FINAL [fake_override,var]
overridden:
public final a: kotlin.Int
CLASS CLASS name:L modality:FINAL visibility:public superTypes:[<root>.Java9]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.L
CONSTRUCTOR visibility:public <> () returnType:<root>.L [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java9'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:L modality:FINAL visibility:public superTypes:[<root>.Java9]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java9
$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 <root>.Java9
$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 <root>.Java9
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.L) returnType:kotlin.Unit
overridden:
protected/*protected and package*/ open fun foo (): kotlin.Unit declared in <root>.Java9
$this: VALUE_PARAMETER name:<this> type:<root>.L
BLOCK_BODY
PROPERTY FAKE_OVERRIDE name:a visibility:protected/*protected and package*/ modality:FINAL [fake_override,var]
overridden:
protected/*protected and package*/ final a: kotlin.Int
CLASS CLASS name:M modality:FINAL visibility:public superTypes:[<root>.Java10]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.M
CONSTRUCTOR visibility:public <> () returnType:<root>.M [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java10'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:M modality:FINAL visibility:public superTypes:[<root>.Java10]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java10
$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 <root>.Java10
$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 <root>.Java10
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.M) returnType:kotlin.Unit
overridden:
protected/*protected and package*/ open fun foo (): kotlin.Unit declared in <root>.Java10
$this: VALUE_PARAMETER name:<this> type:<root>.M
BLOCK_BODY
PROPERTY FAKE_OVERRIDE name:a visibility:protected/*protected and package*/ modality:FINAL [fake_override,var]
overridden:
protected/*protected and package*/ final a: kotlin.Int
CLASS CLASS name:N modality:FINAL visibility:public superTypes:[<root>.Java11]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.N
CONSTRUCTOR visibility:public <> () returnType:<root>.N [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java11'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:N modality:FINAL visibility:public superTypes:[<root>.Java11]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java11
$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 <root>.Java11
$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 <root>.Java11
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:internal modality:OPEN <> ($this:<root>.N) returnType:kotlin.Unit
overridden:
public/*package*/ open fun foo (): kotlin.Unit declared in <root>.Java11
$this: VALUE_PARAMETER name:<this> type:<root>.N
BLOCK_BODY
PROPERTY FAKE_OVERRIDE name:a visibility:public/*package*/ modality:FINAL [fake_override,var]
overridden:
public/*package*/ final a: kotlin.Int
FUN name:test visibility:public modality:FINAL <> (a:<root>.A, b:<root>.B, c:<root>.C, d:<root>.D, e:<root>.E, f:<root>.F, g:<root>.G, h:<root>.H, i:<root>.I, j:<root>.J, k:<root>.K, l:<root>.L, m:<root>.M, n:<root>.N) returnType:kotlin.Unit
VALUE_PARAMETER name:a index:0 type:<root>.A
VALUE_PARAMETER name:b index:1 type:<root>.B
VALUE_PARAMETER name:c index:2 type:<root>.C
VALUE_PARAMETER name:d index:3 type:<root>.D
VALUE_PARAMETER name:e index:4 type:<root>.E
VALUE_PARAMETER name:f index:5 type:<root>.F
VALUE_PARAMETER name:g index:6 type:<root>.G
VALUE_PARAMETER name:h index:7 type:<root>.H
VALUE_PARAMETER name:i index:8 type:<root>.I
VALUE_PARAMETER name:j index:9 type:<root>.J
VALUE_PARAMETER name:k index:10 type:<root>.K
VALUE_PARAMETER name:l index:11 type:<root>.L
VALUE_PARAMETER name:m index:12 type:<root>.M
VALUE_PARAMETER name:n index:13 type:<root>.N
BLOCK_BODY
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:a type:kotlin.Int visibility:public' type=kotlin.Int origin=null
receiver: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
CALL 'public open fun foo (): kotlin.Unit declared in <root>.A' type=kotlin.Unit origin=null
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:a type:kotlin.Int visibility:public' type=kotlin.Int origin=null
receiver: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
CALL 'public open fun foo (): kotlin.Unit declared in <root>.B' type=kotlin.Unit origin=null
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:a type:kotlin.Int visibility:public' type=kotlin.Int origin=null
receiver: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
CALL 'public open fun foo (): kotlin.Unit declared in <root>.C' type=kotlin.Unit origin=null
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:a type:kotlin.Int visibility:public' type=kotlin.Int origin=null
receiver: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
CALL 'public open fun foo (): kotlin.Unit declared in <root>.D' type=kotlin.Unit origin=null
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:a type:kotlin.Int visibility:protected/*protected and package*/' type=kotlin.Int origin=null
receiver: GET_VAR 'e: <root>.E declared in <root>.test' type=<root>.E origin=null
CALL 'protected/*protected and package*/ open fun foo (): kotlin.Unit declared in <root>.E' type=kotlin.Unit origin=null
$this: GET_VAR 'e: <root>.E declared in <root>.test' type=<root>.E origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:a type:kotlin.Int visibility:protected/*protected and package*/' type=kotlin.Int origin=null
receiver: GET_VAR 'f: <root>.F declared in <root>.test' type=<root>.F origin=null
CALL 'protected/*protected and package*/ open fun foo (): kotlin.Unit declared in <root>.F' type=kotlin.Unit origin=null
$this: GET_VAR 'f: <root>.F declared in <root>.test' type=<root>.F origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:a type:kotlin.Int visibility:public/*package*/' type=kotlin.Int origin=null
receiver: GET_VAR 'g: <root>.G declared in <root>.test' type=<root>.G origin=null
CALL 'public/*package*/ open fun foo (): kotlin.Unit declared in <root>.G' type=kotlin.Unit origin=null
$this: GET_VAR 'g: <root>.G declared in <root>.test' type=<root>.G origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:a type:kotlin.Int visibility:public' type=kotlin.Int origin=null
receiver: GET_VAR 'h: <root>.H declared in <root>.test' type=<root>.H origin=null
CALL 'public open fun foo (): kotlin.Unit declared in <root>.H' type=kotlin.Unit origin=null
$this: GET_VAR 'h: <root>.H declared in <root>.test' type=<root>.H origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:a type:kotlin.Int visibility:public' type=kotlin.Int origin=null
receiver: GET_VAR 'i: <root>.I declared in <root>.test' type=<root>.I origin=null
CALL 'public open fun foo (): kotlin.Unit declared in <root>.I' type=kotlin.Unit origin=null
$this: GET_VAR 'i: <root>.I declared in <root>.test' type=<root>.I origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:a type:kotlin.Int visibility:public' type=kotlin.Int origin=null
receiver: GET_VAR 'j: <root>.J declared in <root>.test' type=<root>.J origin=null
CALL 'public open fun foo (): kotlin.Unit declared in <root>.J' type=kotlin.Unit origin=null
$this: GET_VAR 'j: <root>.J declared in <root>.test' type=<root>.J origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:a type:kotlin.Int visibility:public' type=kotlin.Int origin=null
receiver: GET_VAR 'k: <root>.K declared in <root>.test' type=<root>.K origin=null
CALL 'public open fun foo (): kotlin.Unit declared in <root>.K' type=kotlin.Unit origin=null
$this: GET_VAR 'k: <root>.K declared in <root>.test' type=<root>.K origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:a type:kotlin.Int visibility:protected/*protected and package*/' type=kotlin.Int origin=null
receiver: GET_VAR 'l: <root>.L declared in <root>.test' type=<root>.L origin=null
CALL 'public open fun foo (): kotlin.Unit declared in <root>.L' type=kotlin.Unit origin=null
$this: GET_VAR 'l: <root>.L declared in <root>.test' type=<root>.L origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:a type:kotlin.Int visibility:protected/*protected and package*/' type=kotlin.Int origin=null
receiver: GET_VAR 'm: <root>.M declared in <root>.test' type=<root>.M origin=null
CALL 'public open fun foo (): kotlin.Unit declared in <root>.M' type=kotlin.Unit origin=null
$this: GET_VAR 'm: <root>.M declared in <root>.test' type=<root>.M origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:a type:kotlin.Int visibility:public/*package*/' type=kotlin.Int origin=null
receiver: GET_VAR 'n: <root>.N declared in <root>.test' type=<root>.N origin=null
CALL 'internal open fun foo (): kotlin.Unit declared in <root>.N' type=kotlin.Unit origin=null
$this: GET_VAR 'n: <root>.N declared in <root>.test' type=<root>.N origin=null
@@ -0,0 +1,154 @@
// TARGET_BACKEND: JVM
// FILE: Java1.java
public class Java1 {
public int a = 1;
public void foo(){}
}
// FILE: Java2.java
public class Java2 {
protected int a = 2;
protected void foo(){}
}
// FILE: Java3.java
public class Java3 {
private int a = 3;
private void foo(){}
}
// FILE: Java4.java
public class Java4 {
int a = 4;
void foo(){}
}
// FILE: Java5.java
public class Java5 extends Java1 {
public int a = 5;
public void foo(){}
}
// FILE: Java6.java
public class Java6 extends Java2 {
public int a = 6;
public void foo() {}
}
// FILE: Java7.java
public class Java7 extends Java3 {
public int a = 7;
public void foo() {}
}
// FILE: Java8.java
public class Java8 extends Java4 {
public int a = 8;
public void foo(){}
}
// FILE: Java9.java
public class Java9 extends Java3 {
protected int a = 9;
protected void foo(){}
}
// FILE: Java10.java
public class Java10 extends Java4 {
protected int a = 10;
protected void foo(){}
}
// FILE: Java11.java
public class Java11 extends Java3 {
int a = 11;
void foo(){}
}
// FILE: test.kt
class A : Java5() // (public + public)
class B : Java6() // (public + protected)
class C : Java7() // (public + private)
class D : Java8() // (public + default)
class E : Java9() // (protected + private)
class F : Java10() // (protected + default)
class G : Java11() // (default + private)
class H: Java5() {
override fun foo() {}
}
class I : Java6() {
override fun foo() {}
}
class J : Java7() {
override fun foo() {}
}
class K: Java8() {
override fun foo() {}
}
class L: Java9() {
public override fun foo() {}
}
class M : Java10() {
public override fun foo() {}
}
class N : Java11() {
internal override fun foo() {}
}
fun test(a:A, b: B, c: C, d: D, e: E, f: F, g: G, h: H, i: I, j: J, k: K, l: L, m: M, n: N){
a.a
a.foo()
b.a
b.foo()
c.a
c.foo()
d.a
d.foo()
e.a
e.foo()
f.a
f.foo()
g.a
g.foo()
h.a
h.foo()
i.a
i.foo()
j.a
j.foo()
k.a
k.foo()
l.a
l.foo()
m.a
m.foo()
n.a
n.foo()
}
@@ -0,0 +1,177 @@
class A : Java5 {
constructor() /* primary */ {
super/*Java5*/()
/* <init>() */
}
}
class B : Java6 {
constructor() /* primary */ {
super/*Java6*/()
/* <init>() */
}
}
class C : Java7 {
constructor() /* primary */ {
super/*Java7*/()
/* <init>() */
}
}
class D : Java8 {
constructor() /* primary */ {
super/*Java8*/()
/* <init>() */
}
}
class E : Java9 {
constructor() /* primary */ {
super/*Java9*/()
/* <init>() */
}
}
class F : Java10 {
constructor() /* primary */ {
super/*Java10*/()
/* <init>() */
}
}
class G : Java11 {
constructor() /* primary */ {
super/*Java11*/()
/* <init>() */
}
}
class H : Java5 {
constructor() /* primary */ {
super/*Java5*/()
/* <init>() */
}
override fun foo() {
}
}
class I : Java6 {
constructor() /* primary */ {
super/*Java6*/()
/* <init>() */
}
override fun foo() {
}
}
class J : Java7 {
constructor() /* primary */ {
super/*Java7*/()
/* <init>() */
}
override fun foo() {
}
}
class K : Java8 {
constructor() /* primary */ {
super/*Java8*/()
/* <init>() */
}
override fun foo() {
}
}
class L : Java9 {
constructor() /* primary */ {
super/*Java9*/()
/* <init>() */
}
override fun foo() {
}
}
class M : Java10 {
constructor() /* primary */ {
super/*Java10*/()
/* <init>() */
}
override fun foo() {
}
}
class N : Java11 {
constructor() /* primary */ {
super/*Java11*/()
/* <init>() */
}
internal override fun foo() {
}
}
fun test(a: A, b: B, c: C, d: D, e: E, f: F, g: G, h: H, i: I, j: J, k: K, l: L, m: M, n: N) {
a(super<A>).#a /*~> Unit */
a.foo()
b(super<B>).#a /*~> Unit */
b.foo()
c(super<C>).#a /*~> Unit */
c.foo()
d(super<D>).#a /*~> Unit */
d.foo()
e(super<E>).#a /*~> Unit */
e.foo()
f(super<F>).#a /*~> Unit */
f.foo()
g(super<G>).#a /*~> Unit */
g.foo()
h(super<H>).#a /*~> Unit */
h.foo()
i(super<I>).#a /*~> Unit */
i.foo()
j(super<J>).#a /*~> Unit */
j.foo()
k(super<K>).#a /*~> Unit */
k.foo()
l(super<L>).#a /*~> Unit */
l.foo()
m(super<M>).#a /*~> Unit */
m.foo()
n(super<N>).#a /*~> Unit */
n.foo()
}
@@ -0,0 +1,257 @@
// CHECK:
// Mangled name: A
// Public signature: /A|null[0]
class A : Java5 {
// CHECK:
// Mangled name: A#<init>(){}
// Public signature: /A.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: A#foo(){}
// Public signature: /A.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
/* fake */ override fun foo(): Unit
}
// CHECK:
// Mangled name: B
// Public signature: /B|null[0]
class B : Java6 {
// CHECK:
// Mangled name: B#<init>(){}
// Public signature: /B.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: B#foo(){}
// Public signature: /B.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
/* fake */ override fun foo(): Unit
}
// CHECK:
// Mangled name: C
// Public signature: /C|null[0]
class C : Java7 {
// CHECK:
// Mangled name: C#<init>(){}
// Public signature: /C.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: C#foo(){}
// Public signature: /C.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
/* fake */ override fun foo(): Unit
}
// CHECK:
// Mangled name: D
// Public signature: /D|null[0]
class D : Java8 {
// CHECK:
// Mangled name: D#<init>(){}
// Public signature: /D.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: D#foo(){}
// Public signature: /D.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
/* fake */ override fun foo(): Unit
}
// CHECK:
// Mangled name: E
// Public signature: /E|null[0]
class E : Java9 {
// CHECK:
// Mangled name: E#<init>(){}
// Public signature: /E.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: E#foo(){}
// Public signature: /E.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
protected_and_package /* fake */ override fun foo(): Unit
}
// CHECK:
// Mangled name: F
// Public signature: /F|null[0]
class F : Java10 {
// CHECK:
// Mangled name: F#<init>(){}
// Public signature: /F.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: F#foo(){}
// Public signature: /F.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
protected_and_package /* fake */ override fun foo(): Unit
}
// CHECK:
// Mangled name: G
// Public signature: /G|null[0]
class G : Java11 {
// CHECK:
// Mangled name: G#<init>(){}
// Public signature: /G.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: G#foo(){}
// Public signature: /G.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
package /* fake */ override fun foo(): Unit
}
// CHECK:
// Mangled name: H
// Public signature: /H|null[0]
class H : Java5 {
// CHECK:
// Mangled name: H#<init>(){}
// Public signature: /H.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: H#foo(){}
// Public signature: /H.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
override fun foo(): Unit
}
// CHECK:
// Mangled name: I
// Public signature: /I|null[0]
class I : Java6 {
// CHECK:
// Mangled name: I#<init>(){}
// Public signature: /I.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: I#foo(){}
// Public signature: /I.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
override fun foo(): Unit
}
// CHECK:
// Mangled name: J
// Public signature: /J|null[0]
class J : Java7 {
// CHECK:
// Mangled name: J#<init>(){}
// Public signature: /J.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: J#foo(){}
// Public signature: /J.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
override fun foo(): Unit
}
// CHECK:
// Mangled name: K
// Public signature: /K|null[0]
class K : Java8 {
// CHECK:
// Mangled name: K#<init>(){}
// Public signature: /K.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: K#foo(){}
// Public signature: /K.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
override fun foo(): Unit
}
// CHECK:
// Mangled name: L
// Public signature: /L|null[0]
class L : Java9 {
// CHECK:
// Mangled name: L#<init>(){}
// Public signature: /L.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: L#foo(){}
// Public signature: /L.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
override fun foo(): Unit
}
// CHECK:
// Mangled name: M
// Public signature: /M|null[0]
class M : Java10 {
// CHECK:
// Mangled name: M#<init>(){}
// Public signature: /M.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: M#foo(){}
// Public signature: /M.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
override fun foo(): Unit
}
// CHECK:
// Mangled name: N
// Public signature: /N|null[0]
class N : Java11 {
// CHECK:
// Mangled name: N#<init>(){}
// Public signature: /N.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: N#foo(){}
// Public signature: /N.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
internal override fun foo(): Unit
}
// CHECK:
// Mangled name: #test(A;B;C;D;E;F;G;H;I;J;K;L;M;N){}
// Public signature: /test|7668676700290094940[0]
// Public signature debug description: test(A;B;C;D;E;F;G;H;I;J;K;L;M;N){}
fun test(a: A, b: B, c: C, d: D, e: E, f: F, g: G, h: H, i: I, j: J, k: K, l: L, m: M, n: N): Unit
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,472 @@
class A : Java1 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
}
class AA : Java15 {
constructor() /* primary */ {
super/*Java15*/()
/* <init>() */
}
protected override fun foo() {
}
}
class B : Java1 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
override fun foo() {
}
}
class BB : Java16 {
constructor() /* primary */ {
super/*Java16*/()
/* <init>() */
}
}
class C : Java2 {
constructor() /* primary */ {
super/*Java2*/()
/* <init>() */
}
}
class CC : Java17 {
constructor() /* primary */ {
super/*Java17*/()
/* <init>() */
}
}
class D : Java2 {
val a: Int
field = 55
get
constructor() /* primary */ {
super/*Java2*/()
/* <init>() */
}
fun foo() {
}
}
class DD : Java17 {
constructor() /* primary */ {
super/*Java17*/()
/* <init>() */
}
internal override fun foo() {
}
}
open class DefaultVisibility {
open val a: Int
field = 4
open get
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
open fun foo() {
}
}
class E : Java3 {
constructor() /* primary */ {
super/*Java3*/()
/* <init>() */
}
}
class F : Java3 {
constructor() /* primary */ {
super/*Java3*/()
/* <init>() */
}
override fun foo() {
}
override val a: Int
override get(): Int {
return 55
}
}
class G : Java4 {
constructor() /* primary */ {
super/*Java4*/()
/* <init>() */
}
}
class H : Java4 {
constructor() /* primary */ {
super/*Java4*/()
/* <init>() */
}
override fun foo() {
}
override val a: Int
override get(): Int {
return 55
}
}
class I : Java5 {
constructor() /* primary */ {
super/*Java5*/()
/* <init>() */
}
}
open class InternalVisibility {
internal open val a: Int
field = 4
internal open get
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
internal open fun foo() {
}
}
class J : Java6 {
constructor() /* primary */ {
super/*Java6*/()
/* <init>() */
}
}
class K : Java6 {
constructor() /* primary */ {
super/*Java6*/()
/* <init>() */
}
override fun foo() {
}
override val a: Int
override get(): Int {
return 55
}
}
class L : Java7 {
constructor() /* primary */ {
super/*Java7*/()
/* <init>() */
}
}
class M : Java8 {
constructor() /* primary */ {
super/*Java8*/()
/* <init>() */
}
}
class N : Java8 {
constructor() /* primary */ {
super/*Java8*/()
/* <init>() */
}
override fun foo() {
}
protected override val a: Int
protected override get(): Int {
return 55
}
}
class O : Java9 {
constructor() /* primary */ {
super/*Java9*/()
/* <init>() */
}
}
class P : Java9 {
constructor() /* primary */ {
super/*Java9*/()
/* <init>() */
}
override fun foo() {
}
}
open class PrivateVisibility {
private val a: Int
field = 2
private get
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
private fun foo() {
}
}
open class ProtectedVisibility {
protected open val a: Int
field = 3
protected open get
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
protected open fun foo() {
}
}
open class PublicVisibility {
open val a: Int
field = 1
open get
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
open fun foo() {
}
}
class Q : Java10 {
constructor() /* primary */ {
super/*Java10*/()
/* <init>() */
}
}
class R : Java10 {
constructor() /* primary */ {
super/*Java10*/()
/* <init>() */
}
override fun foo() {
}
override val a: Int
override get(): Int {
return 55
}
}
class S : Java11 {
constructor() /* primary */ {
super/*Java11*/()
/* <init>() */
}
}
class T : Java11 {
constructor() /* primary */ {
super/*Java11*/()
/* <init>() */
}
override fun foo() {
}
protected override val a: Int
protected override get(): Int {
return 55
}
}
class U : Java12 {
constructor() /* primary */ {
super/*Java12*/()
/* <init>() */
}
}
class V : Java12 {
constructor() /* primary */ {
super/*Java12*/()
/* <init>() */
}
override fun foo() {
}
}
class W : Java13 {
constructor() /* primary */ {
super/*Java13*/()
/* <init>() */
}
}
class X : Java13 {
constructor() /* primary */ {
super/*Java13*/()
/* <init>() */
}
override fun foo() {
}
}
class Y : Java14 {
constructor() /* primary */ {
super/*Java14*/()
/* <init>() */
}
}
class Z : Java15 {
constructor() /* primary */ {
super/*Java15*/()
/* <init>() */
}
}
fun test(a: A, b: B, d: D, f: F, g: G, h: H, j: J, k: K, l: L, m: M, n: N, o: O, p: P, q: Q, r: R, s: S, t: T, u: U, v: V, w: W, x: X, aa: AA, cc: CC, dd: DD) {
a.<get-a>() /*~> Unit */
a.foo()
b.<get-a>() /*~> Unit */
b.foo()
d.<get-a>() /*~> Unit */
d.foo()
f.<get-a>() /*~> Unit */
f.foo()
g.<get-a>() /*~> Unit */
g.foo()
h.<get-a>() /*~> Unit */
h.foo()
j.#a /*~> Unit */
j.foo()
k.<get-a>() /*~> Unit */
k.foo()
l.#a /*~> Unit */
l.foo()
m.#a /*~> Unit */
m.foo()
n.#a /*~> Unit */
n.foo()
o.#a /*~> Unit */
o.foo()
p.#a /*~> Unit */
p.foo()
q.#a /*~> Unit */
q.foo()
r.<get-a>() /*~> Unit */
r.foo()
s.#a /*~> Unit */
s.foo()
t.#a /*~> Unit */
t.foo()
u.#a /*~> Unit */
u.foo()
v.#a /*~> Unit */
v.foo()
w.#a /*~> Unit */
w.foo()
x.#a /*~> Unit */
x.foo()
aa.#a /*~> Unit */
cc.#a /*~> Unit */
cc.foo()
dd.#a /*~> Unit */
dd.foo()
}
@@ -0,0 +1,914 @@
// CHECK:
// Mangled name: A
// Public signature: /A|null[0]
class A : Java1 {
// CHECK:
// Mangled name: A#<init>(){}
// Public signature: /A.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: A#foo(){}
// Public signature: /A.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
/* fake */ override fun foo(): Unit
// CHECK:
// Mangled name: A{}a
// Public signature: /A.a|-1200697420457237799[0]
// Public signature debug description: {}a
/* fake */ override val a: Int
// CHECK JVM_IR:
// Mangled name: A#<get-a>(){}kotlin.Int
// Public signature: /A.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
/* fake */ override get(): Int
}
// CHECK:
// Mangled name: AA
// Public signature: /AA|null[0]
class AA : Java15 {
// CHECK:
// Mangled name: AA#<init>(){}
// Public signature: /AA.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: AA#foo(){}
// Public signature: /AA.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
protected override fun foo(): Unit
}
// CHECK:
// Mangled name: B
// Public signature: /B|null[0]
class B : Java1 {
// CHECK:
// Mangled name: B#<init>(){}
// Public signature: /B.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: B#foo(){}
// Public signature: /B.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
override fun foo(): Unit
// CHECK:
// Mangled name: B{}a
// Public signature: /B.a|-1200697420457237799[0]
// Public signature debug description: {}a
/* fake */ override val a: Int
// CHECK JVM_IR:
// Mangled name: B#<get-a>(){}kotlin.Int
// Public signature: /B.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
/* fake */ override get(): Int
}
// CHECK:
// Mangled name: BB
// Public signature: /BB|null[0]
class BB : Java16 {
// CHECK:
// Mangled name: BB#<init>(){}
// Public signature: /BB.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: BB{}a
// Public signature: /BB.a|-1200697420457237799[0]
// Public signature debug description: {}a
internal /* fake */ override val a: Int
// CHECK JVM_IR:
// Mangled name: BB#<get-a>(){}kotlin.Int
// Public signature: /BB.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
internal /* fake */ override get(): Int
}
// CHECK:
// Mangled name: C
// Public signature: /C|null[0]
class C : Java2 {
// CHECK:
// Mangled name: C#<init>(){}
// Public signature: /C.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
}
// CHECK:
// Mangled name: CC
// Public signature: /CC|null[0]
class CC : Java17 {
// CHECK:
// Mangled name: CC#<init>(){}
// Public signature: /CC.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: CC#foo(){}
// Public signature: /CC.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
package /* fake */ override fun foo(): Unit
// CHECK:
// Mangled name: CC{}a
// Public signature: /CC.a|-1200697420457237799[0]
// Public signature debug description: {}a
internal /* fake */ override val a: Int
// CHECK JVM_IR:
// Mangled name: CC#<get-a>(){}kotlin.Int
// Public signature: /CC.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
internal /* fake */ override get(): Int
}
// CHECK:
// Mangled name: D
// Public signature: /D|null[0]
class D : Java2 {
// CHECK:
// Mangled name: D{}a
// Public signature: /D.a|-1200697420457237799[0]
// Public signature debug description: {}a
val a: Int
// CHECK JVM_IR:
// Mangled name: D#<get-a>(){}kotlin.Int
// Public signature: /D.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
get
// CHECK:
// Mangled name: D#<init>(){}
// Public signature: /D.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: D#foo(){}
// Public signature: /D.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
fun foo(): Unit
}
// CHECK:
// Mangled name: DD
// Public signature: /DD|null[0]
class DD : Java17 {
// CHECK:
// Mangled name: DD#<init>(){}
// Public signature: /DD.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: DD#foo(){}
// Public signature: /DD.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
internal override fun foo(): Unit
// CHECK:
// Mangled name: DD{}a
// Public signature: /DD.a|-1200697420457237799[0]
// Public signature debug description: {}a
internal /* fake */ override val a: Int
// CHECK JVM_IR:
// Mangled name: DD#<get-a>(){}kotlin.Int
// Public signature: /DD.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
internal /* fake */ override get(): Int
}
// CHECK:
// Mangled name: DefaultVisibility
// Public signature: /DefaultVisibility|null[0]
open class DefaultVisibility {
// CHECK:
// Mangled name: DefaultVisibility{}a
// Public signature: /DefaultVisibility.a|-1200697420457237799[0]
// Public signature debug description: {}a
open val a: Int
// CHECK JVM_IR:
// Mangled name: DefaultVisibility#<get-a>(){}kotlin.Int
// Public signature: /DefaultVisibility.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
open get
// CHECK:
// Mangled name: DefaultVisibility#<init>(){}
// Public signature: /DefaultVisibility.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: DefaultVisibility#foo(){}
// Public signature: /DefaultVisibility.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
open fun foo(): Unit
}
// CHECK:
// Mangled name: E
// Public signature: /E|null[0]
class E : Java3 {
// CHECK:
// Mangled name: E#<init>(){}
// Public signature: /E.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: E#foo(){}
// Public signature: /E.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
protected /* fake */ override fun foo(): Unit
// CHECK:
// Mangled name: E{}a
// Public signature: /E.a|-1200697420457237799[0]
// Public signature debug description: {}a
protected /* fake */ override val a: Int
// CHECK JVM_IR:
// Mangled name: E#<get-a>(){}kotlin.Int
// Public signature: /E.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
protected /* fake */ override get(): Int
}
// CHECK:
// Mangled name: F
// Public signature: /F|null[0]
class F : Java3 {
// CHECK:
// Mangled name: F#<init>(){}
// Public signature: /F.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: F#foo(){}
// Public signature: /F.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
override fun foo(): Unit
// CHECK:
// Mangled name: F{}a
// Public signature: /F.a|-1200697420457237799[0]
// Public signature debug description: {}a
override val a: Int
// CHECK JVM_IR:
// Mangled name: F#<get-a>(){}kotlin.Int
// Public signature: /F.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
override get(): Int
}
// CHECK:
// Mangled name: G
// Public signature: /G|null[0]
class G : Java4 {
// CHECK:
// Mangled name: G#<init>(){}
// Public signature: /G.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: G#foo(){}
// Public signature: /G.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
/* fake */ override fun foo(): Unit
// CHECK:
// Mangled name: G{}a
// Public signature: /G.a|-1200697420457237799[0]
// Public signature debug description: {}a
/* fake */ override val a: Int
// CHECK JVM_IR:
// Mangled name: G#<get-a>(){}kotlin.Int
// Public signature: /G.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
/* fake */ override get(): Int
}
// CHECK:
// Mangled name: H
// Public signature: /H|null[0]
class H : Java4 {
// CHECK:
// Mangled name: H#<init>(){}
// Public signature: /H.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: H#foo(){}
// Public signature: /H.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
override fun foo(): Unit
// CHECK:
// Mangled name: H{}a
// Public signature: /H.a|-1200697420457237799[0]
// Public signature debug description: {}a
override val a: Int
// CHECK JVM_IR:
// Mangled name: H#<get-a>(){}kotlin.Int
// Public signature: /H.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
override get(): Int
}
// CHECK:
// Mangled name: I
// Public signature: /I|null[0]
class I : Java5 {
// CHECK:
// Mangled name: I#<init>(){}
// Public signature: /I.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: I#foo(){}
// Public signature: /I.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
internal /* fake */ override fun foo(): Unit
// CHECK:
// Mangled name: I{}a
// Public signature: /I.a|-1200697420457237799[0]
// Public signature debug description: {}a
internal /* fake */ override val a: Int
// CHECK JVM_IR:
// Mangled name: I#<get-a>(){}kotlin.Int
// Public signature: /I.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
internal /* fake */ override get(): Int
}
// CHECK:
// Mangled name: InternalVisibility
// Public signature: /InternalVisibility|null[0]
open class InternalVisibility {
// CHECK:
// Mangled name: InternalVisibility{}a
// Public signature: /InternalVisibility.a|-1200697420457237799[0]
// Public signature debug description: {}a
internal open val a: Int
// CHECK JVM_IR:
// Mangled name: InternalVisibility#<get-a>(){}kotlin.Int
// Public signature: /InternalVisibility.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
internal open get
// CHECK:
// Mangled name: InternalVisibility#<init>(){}
// Public signature: /InternalVisibility.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: InternalVisibility#foo(){}
// Public signature: /InternalVisibility.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
internal open fun foo(): Unit
}
// CHECK:
// Mangled name: J
// Public signature: /J|null[0]
class J : Java6 {
// CHECK:
// Mangled name: J#<init>(){}
// Public signature: /J.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: J#foo(){}
// Public signature: /J.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
/* fake */ override fun foo(): Unit
// CHECK:
// Mangled name: J{}a
// Public signature: /J.a|-1200697420457237799[0]
// Public signature debug description: {}a
/* fake */ override val a: Int
// CHECK JVM_IR:
// Mangled name: J#<get-a>(){}kotlin.Int
// Public signature: /J.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
/* fake */ override get(): Int
}
// CHECK:
// Mangled name: K
// Public signature: /K|null[0]
class K : Java6 {
// CHECK:
// Mangled name: K#<init>(){}
// Public signature: /K.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: K#foo(){}
// Public signature: /K.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
override fun foo(): Unit
// CHECK:
// Mangled name: K{}a
// Public signature: /K.a|-1200697420457237799[0]
// Public signature debug description: {}a
override val a: Int
// CHECK JVM_IR:
// Mangled name: K#<get-a>(){}kotlin.Int
// Public signature: /K.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
override get(): Int
}
// CHECK:
// Mangled name: L
// Public signature: /L|null[0]
class L : Java7 {
// CHECK:
// Mangled name: L#<init>(){}
// Public signature: /L.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: L#foo(){}
// Public signature: /L.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
/* fake */ override fun foo(): Unit
// CHECK:
// Mangled name: L{}a
// Public signature: /L.a|-1200697420457237799[0]
// Public signature debug description: {}a
internal /* fake */ override val a: Int
// CHECK JVM_IR:
// Mangled name: L#<get-a>(){}kotlin.Int
// Public signature: /L.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
internal /* fake */ override get(): Int
}
// CHECK:
// Mangled name: M
// Public signature: /M|null[0]
class M : Java8 {
// CHECK:
// Mangled name: M#<init>(){}
// Public signature: /M.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: M#foo(){}
// Public signature: /M.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
/* fake */ override fun foo(): Unit
// CHECK:
// Mangled name: M{}a
// Public signature: /M.a|-1200697420457237799[0]
// Public signature debug description: {}a
protected /* fake */ override val a: Int
// CHECK JVM_IR:
// Mangled name: M#<get-a>(){}kotlin.Int
// Public signature: /M.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
protected /* fake */ override get(): Int
}
// CHECK:
// Mangled name: N
// Public signature: /N|null[0]
class N : Java8 {
// CHECK:
// Mangled name: N#<init>(){}
// Public signature: /N.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: N#foo(){}
// Public signature: /N.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
override fun foo(): Unit
// CHECK:
// Mangled name: N{}a
// Public signature: /N.a|-1200697420457237799[0]
// Public signature debug description: {}a
protected override val a: Int
// CHECK JVM_IR:
// Mangled name: N#<get-a>(){}kotlin.Int
// Public signature: /N.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
protected override get(): Int
}
// CHECK:
// Mangled name: O
// Public signature: /O|null[0]
class O : Java9 {
// CHECK:
// Mangled name: O#<init>(){}
// Public signature: /O.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: O#foo(){}
// Public signature: /O.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
/* fake */ override fun foo(): Unit
}
// CHECK:
// Mangled name: P
// Public signature: /P|null[0]
class P : Java9 {
// CHECK:
// Mangled name: P#<init>(){}
// Public signature: /P.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: P#foo(){}
// Public signature: /P.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
override fun foo(): Unit
}
// CHECK:
// Mangled name: PrivateVisibility
// Public signature: /PrivateVisibility|null[0]
open class PrivateVisibility {
// CHECK:
// Mangled name: PrivateVisibility{}a
// Public signature: /PrivateVisibility.a|-1200697420457237799[0]
// Public signature debug description: {}a
private val a: Int
// CHECK JVM_IR:
// Mangled name: PrivateVisibility#<get-a>(){}kotlin.Int
// Public signature: /PrivateVisibility.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
private get
// CHECK:
// Mangled name: PrivateVisibility#<init>(){}
// Public signature: /PrivateVisibility.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: PrivateVisibility#foo(){}
// Public signature: /PrivateVisibility.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
private fun foo(): Unit
}
// CHECK:
// Mangled name: ProtectedVisibility
// Public signature: /ProtectedVisibility|null[0]
open class ProtectedVisibility {
// CHECK:
// Mangled name: ProtectedVisibility{}a
// Public signature: /ProtectedVisibility.a|-1200697420457237799[0]
// Public signature debug description: {}a
protected open val a: Int
// CHECK JVM_IR:
// Mangled name: ProtectedVisibility#<get-a>(){}kotlin.Int
// Public signature: /ProtectedVisibility.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
protected open get
// CHECK:
// Mangled name: ProtectedVisibility#<init>(){}
// Public signature: /ProtectedVisibility.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: ProtectedVisibility#foo(){}
// Public signature: /ProtectedVisibility.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
protected open fun foo(): Unit
}
// CHECK:
// Mangled name: PublicVisibility
// Public signature: /PublicVisibility|null[0]
open class PublicVisibility {
// CHECK:
// Mangled name: PublicVisibility{}a
// Public signature: /PublicVisibility.a|-1200697420457237799[0]
// Public signature debug description: {}a
open val a: Int
// CHECK JVM_IR:
// Mangled name: PublicVisibility#<get-a>(){}kotlin.Int
// Public signature: /PublicVisibility.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
open get
// CHECK:
// Mangled name: PublicVisibility#<init>(){}
// Public signature: /PublicVisibility.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: PublicVisibility#foo(){}
// Public signature: /PublicVisibility.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
open fun foo(): Unit
}
// CHECK:
// Mangled name: Q
// Public signature: /Q|null[0]
class Q : Java10 {
// CHECK:
// Mangled name: Q#<init>(){}
// Public signature: /Q.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: Q#foo(){}
// Public signature: /Q.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
/* fake */ override fun foo(): Unit
// CHECK:
// Mangled name: Q{}a
// Public signature: /Q.a|-1200697420457237799[0]
// Public signature debug description: {}a
/* fake */ override val a: Int
// CHECK JVM_IR:
// Mangled name: Q#<get-a>(){}kotlin.Int
// Public signature: /Q.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
/* fake */ override get(): Int
}
// CHECK:
// Mangled name: R
// Public signature: /R|null[0]
class R : Java10 {
// CHECK:
// Mangled name: R#<init>(){}
// Public signature: /R.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: R#foo(){}
// Public signature: /R.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
override fun foo(): Unit
// CHECK:
// Mangled name: R{}a
// Public signature: /R.a|-1200697420457237799[0]
// Public signature debug description: {}a
override val a: Int
// CHECK JVM_IR:
// Mangled name: R#<get-a>(){}kotlin.Int
// Public signature: /R.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
override get(): Int
}
// CHECK:
// Mangled name: S
// Public signature: /S|null[0]
class S : Java11 {
// CHECK:
// Mangled name: S#<init>(){}
// Public signature: /S.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: S#foo(){}
// Public signature: /S.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
protected_and_package /* fake */ override fun foo(): Unit
// CHECK:
// Mangled name: S{}a
// Public signature: /S.a|-1200697420457237799[0]
// Public signature debug description: {}a
protected /* fake */ override val a: Int
// CHECK JVM_IR:
// Mangled name: S#<get-a>(){}kotlin.Int
// Public signature: /S.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
protected /* fake */ override get(): Int
}
// CHECK:
// Mangled name: T
// Public signature: /T|null[0]
class T : Java11 {
// CHECK:
// Mangled name: T#<init>(){}
// Public signature: /T.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: T#foo(){}
// Public signature: /T.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
override fun foo(): Unit
// CHECK:
// Mangled name: T{}a
// Public signature: /T.a|-1200697420457237799[0]
// Public signature debug description: {}a
protected override val a: Int
// CHECK JVM_IR:
// Mangled name: T#<get-a>(){}kotlin.Int
// Public signature: /T.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
protected override get(): Int
}
// CHECK:
// Mangled name: U
// Public signature: /U|null[0]
class U : Java12 {
// CHECK:
// Mangled name: U#<init>(){}
// Public signature: /U.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: U#foo(){}
// Public signature: /U.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
protected_and_package /* fake */ override fun foo(): Unit
// CHECK:
// Mangled name: U{}a
// Public signature: /U.a|-1200697420457237799[0]
// Public signature debug description: {}a
internal /* fake */ override val a: Int
// CHECK JVM_IR:
// Mangled name: U#<get-a>(){}kotlin.Int
// Public signature: /U.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
internal /* fake */ override get(): Int
}
// CHECK:
// Mangled name: V
// Public signature: /V|null[0]
class V : Java12 {
// CHECK:
// Mangled name: V#<init>(){}
// Public signature: /V.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: V#foo(){}
// Public signature: /V.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
override fun foo(): Unit
// CHECK:
// Mangled name: V{}a
// Public signature: /V.a|-1200697420457237799[0]
// Public signature debug description: {}a
internal /* fake */ override val a: Int
// CHECK JVM_IR:
// Mangled name: V#<get-a>(){}kotlin.Int
// Public signature: /V.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
internal /* fake */ override get(): Int
}
// CHECK:
// Mangled name: W
// Public signature: /W|null[0]
class W : Java13 {
// CHECK:
// Mangled name: W#<init>(){}
// Public signature: /W.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: W#foo(){}
// Public signature: /W.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
protected_and_package /* fake */ override fun foo(): Unit
}
// CHECK:
// Mangled name: X
// Public signature: /X|null[0]
class X : Java13 {
// CHECK:
// Mangled name: X#<init>(){}
// Public signature: /X.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: X#foo(){}
// Public signature: /X.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
override fun foo(): Unit
}
// CHECK:
// Mangled name: Y
// Public signature: /Y|null[0]
class Y : Java14 {
// CHECK:
// Mangled name: Y#<init>(){}
// Public signature: /Y.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
}
// CHECK:
// Mangled name: Z
// Public signature: /Z|null[0]
class Z : Java15 {
// CHECK:
// Mangled name: Z#<init>(){}
// Public signature: /Z.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: Z#foo(){}
// Public signature: /Z.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
package /* fake */ override fun foo(): Unit
}
// CHECK:
// Mangled name: #test(A;B;D;F;G;H;J;K;L;M;N;O;P;Q;R;S;T;U;V;W;X;AA;CC;DD){}
// Public signature: /test|851908710130652868[0]
// Public signature debug description: test(A;B;D;F;G;H;J;K;L;M;N;O;P;Q;R;S;T;U;V;W;X;AA;CC;DD){}
fun test(a: A, b: B, d: D, f: F, g: G, h: H, j: J, k: K, l: L, m: M, n: N, o: O, p: P, q: Q, r: R, s: S, t: T, u: U, v: V, w: W, x: X, aa: AA, cc: CC, dd: DD): Unit
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,268 @@
// TARGET_BACKEND: JVM
// SEPARATE_SIGNATURE_DUMP_FOR_K2
// ^ ISSUE: KT-65679
// FILE: Java1.java
public class Java1 extends PublicVisibility { }
// FILE: Java2.java
public class Java2 extends PrivateVisibility { }
// FILE: Java3.java
public class Java3 extends ProtectedVisibility { }
// FILE: Java4.java
public class Java4 extends DefaultVisibility { }
// FILE: Java5.java
public class Java5 extends InternalVisibility { }
// FILE: Java6.java
public class Java6 extends PublicVisibility {
public int a = 5;
public void foo(){}
}
// FILE: Java7.java
public class Java7 extends InternalVisibility {
public int a = 7;
public void foo(){}
}
// FILE: Java8.java
public class Java8 extends ProtectedVisibility {
public int a = 8;
public void foo() {}
}
// FILE: Java9.java
public class Java9 extends PrivateVisibility {
public int a = 9;
public void foo() {}
}
// FILE: Java10.java
public class Java10 extends DefaultVisibility {
public int a = 10;
public void foo() {}
}
// FILE: Java11.java
public class Java11 extends ProtectedVisibility {
protected int a = 11;
protected void foo() {}
}
// FILE: Java12.java
public class Java12 extends InternalVisibility {
protected int a = 12;
protected void foo() {}
}
// FILE: Java13.java
public class Java13 extends PrivateVisibility {
protected int a = 13;
protected void foo() {}
}
// FILE: Java14.java
public class Java14 extends PrivateVisibility {
private int a = 14;
private void foo() {}
}
// FILE: Java15.java
public class Java15 extends PrivateVisibility {
int a = 15;
void foo() {}
}
// FILE: Java16.java
public class Java16 extends InternalVisibility {
private int a = 16;
private void foo() {}
}
// FILE: Java17.java
public class Java17 extends InternalVisibility {
int a = 17;
void foo(){}
}
// FILE: test.kt
class A : Java1() //public
class B : Java1() {
override fun foo() {}
}
class C : Java2() //private
class D : Java2() {
fun foo() { }
val a: Int = 55
}
class E : Java3() //protected
class F : Java3() {
public override fun foo() {}
public override val a: Int
get() = 55
}
class G : Java4() //default
class H : Java4() {
override fun foo() {}
override val a: Int
get() = 55
}
class I : Java5() // internal
class J : Java6() //public + public
class K : Java6() {
override fun foo() {}
override val a: Int
get() = 55
}
class L : Java7() //public + internal
class M : Java8() //public + protected
class N : Java8() {
public override fun foo() {}
override val a: Int
get() = 55
}
class O : Java9() //public + private
class P : Java9() {
public override fun foo() {}
}
class Q : Java10() //public + default
class R : Java10() {
public override fun foo() {}
override val a: Int
get() = 55
}
class S : Java11() //protected + protected
class T : Java11() {
public override fun foo() {}
override val a: Int
get() = 55
}
class U : Java12() //protected + internal
class V : Java12() {
public override fun foo() {}
}
class W : Java13() //protected + private
class X : Java13() {
public override fun foo() {}
}
class Y : Java14() //private + private
class Z : Java15() //private + default
class AA : Java15() {
protected override fun foo() {}
}
class BB : Java16() //private + internal
class CC : Java17() //default + internal
class DD : Java17() {
internal override fun foo() {}
}
open class PublicVisibility {
public open val a: Int = 1
public open fun foo() {}
}
open class PrivateVisibility {
private val a: Int = 2
private fun foo() { }
}
open class ProtectedVisibility {
protected open val a: Int = 3
protected open fun foo() { }
}
open class InternalVisibility {
internal open val a: Int = 4
internal open fun foo() { }
}
open class DefaultVisibility {
open val a: Int = 4
open fun foo() { }
}
fun test(
a: A, b: B, d: D, f: F, g: G, h: H, j: J, k: K, l: L, m: M, n: N, o: O, p: P,
q: Q, r: R, s: S, t: T, u: U, v: V, w: W, x: X, aa: AA, cc: CC, dd: DD
) {
a.a
a.foo()
b.a
b.foo()
d.a
d.foo()
f.a
f.foo()
g.a
g.foo()
h.a
h.foo()
j.a
j.foo()
k.a
k.foo()
l.a
l.foo()
m.a
m.foo()
n.a
n.foo()
o.a
o.foo()
p.a
p.foo()
q.a
q.foo()
r.a
r.foo()
s.a
s.foo()
t.a
t.foo()
u.a
u.foo()
v.a
v.foo()
w.a
w.foo()
x.a
x.foo()
aa.a
cc.a
cc.foo()
dd.a
dd.foo()
}
@@ -0,0 +1,472 @@
class A : Java1 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
}
class AA : Java15 {
constructor() /* primary */ {
super/*Java15*/()
/* <init>() */
}
protected override fun foo() {
}
}
class B : Java1 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
override fun foo() {
}
}
class BB : Java16 {
constructor() /* primary */ {
super/*Java16*/()
/* <init>() */
}
}
class C : Java2 {
constructor() /* primary */ {
super/*Java2*/()
/* <init>() */
}
}
class CC : Java17 {
constructor() /* primary */ {
super/*Java17*/()
/* <init>() */
}
}
class D : Java2 {
val a: Int
field = 55
get
constructor() /* primary */ {
super/*Java2*/()
/* <init>() */
}
fun foo() {
}
}
class DD : Java17 {
constructor() /* primary */ {
super/*Java17*/()
/* <init>() */
}
internal override fun foo() {
}
}
open class DefaultVisibility {
open val a: Int
field = 4
open get
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
open fun foo() {
}
}
class E : Java3 {
constructor() /* primary */ {
super/*Java3*/()
/* <init>() */
}
}
class F : Java3 {
constructor() /* primary */ {
super/*Java3*/()
/* <init>() */
}
override fun foo() {
}
override val a: Int
override get(): Int {
return 55
}
}
class G : Java4 {
constructor() /* primary */ {
super/*Java4*/()
/* <init>() */
}
}
class H : Java4 {
constructor() /* primary */ {
super/*Java4*/()
/* <init>() */
}
override fun foo() {
}
override val a: Int
override get(): Int {
return 55
}
}
class I : Java5 {
constructor() /* primary */ {
super/*Java5*/()
/* <init>() */
}
}
open class InternalVisibility {
internal open val a: Int
field = 4
internal open get
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
internal open fun foo() {
}
}
class J : Java6 {
constructor() /* primary */ {
super/*Java6*/()
/* <init>() */
}
}
class K : Java6 {
constructor() /* primary */ {
super/*Java6*/()
/* <init>() */
}
override fun foo() {
}
override val a: Int
override get(): Int {
return 55
}
}
class L : Java7 {
constructor() /* primary */ {
super/*Java7*/()
/* <init>() */
}
}
class M : Java8 {
constructor() /* primary */ {
super/*Java8*/()
/* <init>() */
}
}
class N : Java8 {
constructor() /* primary */ {
super/*Java8*/()
/* <init>() */
}
override fun foo() {
}
protected override val a: Int
protected override get(): Int {
return 55
}
}
class O : Java9 {
constructor() /* primary */ {
super/*Java9*/()
/* <init>() */
}
}
class P : Java9 {
constructor() /* primary */ {
super/*Java9*/()
/* <init>() */
}
override fun foo() {
}
}
open class PrivateVisibility {
private val a: Int
field = 2
private get
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
private fun foo() {
}
}
open class ProtectedVisibility {
protected open val a: Int
field = 3
protected open get
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
protected open fun foo() {
}
}
open class PublicVisibility {
open val a: Int
field = 1
open get
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
open fun foo() {
}
}
class Q : Java10 {
constructor() /* primary */ {
super/*Java10*/()
/* <init>() */
}
}
class R : Java10 {
constructor() /* primary */ {
super/*Java10*/()
/* <init>() */
}
override fun foo() {
}
override val a: Int
override get(): Int {
return 55
}
}
class S : Java11 {
constructor() /* primary */ {
super/*Java11*/()
/* <init>() */
}
}
class T : Java11 {
constructor() /* primary */ {
super/*Java11*/()
/* <init>() */
}
override fun foo() {
}
protected override val a: Int
protected override get(): Int {
return 55
}
}
class U : Java12 {
constructor() /* primary */ {
super/*Java12*/()
/* <init>() */
}
}
class V : Java12 {
constructor() /* primary */ {
super/*Java12*/()
/* <init>() */
}
override fun foo() {
}
}
class W : Java13 {
constructor() /* primary */ {
super/*Java13*/()
/* <init>() */
}
}
class X : Java13 {
constructor() /* primary */ {
super/*Java13*/()
/* <init>() */
}
override fun foo() {
}
}
class Y : Java14 {
constructor() /* primary */ {
super/*Java14*/()
/* <init>() */
}
}
class Z : Java15 {
constructor() /* primary */ {
super/*Java15*/()
/* <init>() */
}
}
fun test(a: A, b: B, d: D, f: F, g: G, h: H, j: J, k: K, l: L, m: M, n: N, o: O, p: P, q: Q, r: R, s: S, t: T, u: U, v: V, w: W, x: X, aa: AA, cc: CC, dd: DD) {
a.<get-a>() /*~> Unit */
a.foo()
b.<get-a>() /*~> Unit */
b.foo()
d.<get-a>() /*~> Unit */
d.foo()
f.<get-a>() /*~> Unit */
f.foo()
g.<get-a>() /*~> Unit */
g.foo()
h.<get-a>() /*~> Unit */
h.foo()
j(super<J>).#a /*~> Unit */
j.foo()
k(super<K>).#a /*~> Unit */
k.foo()
l(super<L>).#a /*~> Unit */
l.foo()
m(super<M>).#a /*~> Unit */
m.foo()
n(super<N>).#a /*~> Unit */
n.foo()
o(super<O>).#a /*~> Unit */
o.foo()
p(super<P>).#a /*~> Unit */
p.foo()
q(super<Q>).#a /*~> Unit */
q.foo()
r(super<R>).#a /*~> Unit */
r.foo()
s(super<S>).#a /*~> Unit */
s.foo()
t(super<T>).#a /*~> Unit */
t.foo()
u(super<U>).#a /*~> Unit */
u.foo()
v(super<V>).#a /*~> Unit */
v.foo()
w(super<W>).#a /*~> Unit */
w.foo()
x(super<X>).#a /*~> Unit */
x.foo()
aa(super<AA>).#a /*~> Unit */
cc(super<CC>).#a /*~> Unit */
cc.foo()
dd(super<DD>).#a /*~> Unit */
dd.foo()
}
@@ -0,0 +1,831 @@
// CHECK:
// Mangled name: A
// Public signature: /A|null[0]
class A : Java1 {
// CHECK:
// Mangled name: A#<init>(){}
// Public signature: /A.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: A#foo(){}
// Public signature: /A.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
/* fake */ override fun foo(): Unit
// CHECK:
// Mangled name: A{}a
// Public signature: /A.a|-1200697420457237799[0]
// Public signature debug description: {}a
/* fake */ override val a: Int
// CHECK JVM_IR:
// Mangled name: A#<get-a>(){}kotlin.Int
// Public signature: /A.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
/* fake */ override get(): Int
}
// CHECK:
// Mangled name: AA
// Public signature: /AA|null[0]
class AA : Java15 {
// CHECK:
// Mangled name: AA#<init>(){}
// Public signature: /AA.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: AA#foo(){}
// Public signature: /AA.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
protected override fun foo(): Unit
}
// CHECK:
// Mangled name: B
// Public signature: /B|null[0]
class B : Java1 {
// CHECK:
// Mangled name: B#<init>(){}
// Public signature: /B.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: B#foo(){}
// Public signature: /B.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
override fun foo(): Unit
// CHECK:
// Mangled name: B{}a
// Public signature: /B.a|-1200697420457237799[0]
// Public signature debug description: {}a
/* fake */ override val a: Int
// CHECK JVM_IR:
// Mangled name: B#<get-a>(){}kotlin.Int
// Public signature: /B.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
/* fake */ override get(): Int
}
// CHECK:
// Mangled name: BB
// Public signature: /BB|null[0]
class BB : Java16 {
// CHECK:
// Mangled name: BB#<init>(){}
// Public signature: /BB.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
}
// CHECK:
// Mangled name: C
// Public signature: /C|null[0]
class C : Java2 {
// CHECK:
// Mangled name: C#<init>(){}
// Public signature: /C.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
}
// CHECK:
// Mangled name: CC
// Public signature: /CC|null[0]
class CC : Java17 {
// CHECK:
// Mangled name: CC#<init>(){}
// Public signature: /CC.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: CC#foo(){}
// Public signature: /CC.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
package /* fake */ override fun foo(): Unit
}
// CHECK:
// Mangled name: D
// Public signature: /D|null[0]
class D : Java2 {
// CHECK:
// Mangled name: D{}a
// Public signature: /D.a|-1200697420457237799[0]
// Public signature debug description: {}a
val a: Int
// CHECK JVM_IR:
// Mangled name: D#<get-a>(){}kotlin.Int
// Public signature: /D.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
get
// CHECK:
// Mangled name: D#<init>(){}
// Public signature: /D.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: D#foo(){}
// Public signature: /D.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
fun foo(): Unit
}
// CHECK:
// Mangled name: DD
// Public signature: /DD|null[0]
class DD : Java17 {
// CHECK:
// Mangled name: DD#<init>(){}
// Public signature: /DD.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: DD#foo(){}
// Public signature: /DD.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
internal override fun foo(): Unit
}
// CHECK:
// Mangled name: DefaultVisibility
// Public signature: /DefaultVisibility|null[0]
open class DefaultVisibility {
// CHECK:
// Mangled name: DefaultVisibility{}a
// Public signature: /DefaultVisibility.a|-1200697420457237799[0]
// Public signature debug description: {}a
open val a: Int
// CHECK JVM_IR:
// Mangled name: DefaultVisibility#<get-a>(){}kotlin.Int
// Public signature: /DefaultVisibility.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
open get
// CHECK:
// Mangled name: DefaultVisibility#<init>(){}
// Public signature: /DefaultVisibility.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: DefaultVisibility#foo(){}
// Public signature: /DefaultVisibility.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
open fun foo(): Unit
}
// CHECK:
// Mangled name: E
// Public signature: /E|null[0]
class E : Java3 {
// CHECK:
// Mangled name: E#<init>(){}
// Public signature: /E.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: E#foo(){}
// Public signature: /E.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
protected /* fake */ override fun foo(): Unit
// CHECK:
// Mangled name: E{}a
// Public signature: /E.a|-1200697420457237799[0]
// Public signature debug description: {}a
protected /* fake */ override val a: Int
// CHECK JVM_IR:
// Mangled name: E#<get-a>(){}kotlin.Int
// Public signature: /E.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
protected /* fake */ override get(): Int
}
// CHECK:
// Mangled name: F
// Public signature: /F|null[0]
class F : Java3 {
// CHECK:
// Mangled name: F#<init>(){}
// Public signature: /F.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: F#foo(){}
// Public signature: /F.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
override fun foo(): Unit
// CHECK:
// Mangled name: F{}a
// Public signature: /F.a|-1200697420457237799[0]
// Public signature debug description: {}a
override val a: Int
// CHECK JVM_IR:
// Mangled name: F#<get-a>(){}kotlin.Int
// Public signature: /F.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
override get(): Int
}
// CHECK:
// Mangled name: G
// Public signature: /G|null[0]
class G : Java4 {
// CHECK:
// Mangled name: G#<init>(){}
// Public signature: /G.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: G#foo(){}
// Public signature: /G.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
/* fake */ override fun foo(): Unit
// CHECK:
// Mangled name: G{}a
// Public signature: /G.a|-1200697420457237799[0]
// Public signature debug description: {}a
/* fake */ override val a: Int
// CHECK JVM_IR:
// Mangled name: G#<get-a>(){}kotlin.Int
// Public signature: /G.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
/* fake */ override get(): Int
}
// CHECK:
// Mangled name: H
// Public signature: /H|null[0]
class H : Java4 {
// CHECK:
// Mangled name: H#<init>(){}
// Public signature: /H.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: H#foo(){}
// Public signature: /H.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
override fun foo(): Unit
// CHECK:
// Mangled name: H{}a
// Public signature: /H.a|-1200697420457237799[0]
// Public signature debug description: {}a
override val a: Int
// CHECK JVM_IR:
// Mangled name: H#<get-a>(){}kotlin.Int
// Public signature: /H.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
override get(): Int
}
// CHECK:
// Mangled name: I
// Public signature: /I|null[0]
class I : Java5 {
// CHECK:
// Mangled name: I#<init>(){}
// Public signature: /I.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
}
// CHECK:
// Mangled name: InternalVisibility
// Public signature: /InternalVisibility|null[0]
open class InternalVisibility {
// CHECK:
// Mangled name: InternalVisibility{}a
// Public signature: /InternalVisibility.a|-1200697420457237799[0]
// Public signature debug description: {}a
internal open val a: Int
// CHECK JVM_IR:
// Mangled name: InternalVisibility#<get-a>(){}kotlin.Int
// Public signature: /InternalVisibility.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
internal open get
// CHECK:
// Mangled name: InternalVisibility#<init>(){}
// Public signature: /InternalVisibility.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: InternalVisibility#foo(){}
// Public signature: /InternalVisibility.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
internal open fun foo(): Unit
}
// CHECK:
// Mangled name: J
// Public signature: /J|null[0]
class J : Java6 {
// CHECK:
// Mangled name: J#<init>(){}
// Public signature: /J.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: J#foo(){}
// Public signature: /J.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
/* fake */ override fun foo(): Unit
// CHECK:
// Mangled name: J{}a
// Public signature: /J.a|-1200697420457237799[0]
// Public signature debug description: {}a
/* fake */ override val a: Int
// CHECK JVM_IR:
// Mangled name: J#<get-a>(){}kotlin.Int
// Public signature: /J.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
/* fake */ override get(): Int
}
// CHECK:
// Mangled name: K
// Public signature: /K|null[0]
class K : Java6 {
// CHECK:
// Mangled name: K#<init>(){}
// Public signature: /K.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: K#foo(){}
// Public signature: /K.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
override fun foo(): Unit
// CHECK:
// Mangled name: K{}a
// Public signature: /K.a|-1200697420457237799[0]
// Public signature debug description: {}a
override val a: Int
// CHECK JVM_IR:
// Mangled name: K#<get-a>(){}kotlin.Int
// Public signature: /K.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
override get(): Int
}
// CHECK:
// Mangled name: L
// Public signature: /L|null[0]
class L : Java7 {
// CHECK:
// Mangled name: L#<init>(){}
// Public signature: /L.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: L#foo(){}
// Public signature: /L.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
/* fake */ override fun foo(): Unit
}
// CHECK:
// Mangled name: M
// Public signature: /M|null[0]
class M : Java8 {
// CHECK:
// Mangled name: M#<init>(){}
// Public signature: /M.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: M#foo(){}
// Public signature: /M.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
/* fake */ override fun foo(): Unit
// CHECK:
// Mangled name: M{}a
// Public signature: /M.a|-1200697420457237799[0]
// Public signature debug description: {}a
protected /* fake */ override val a: Int
// CHECK JVM_IR:
// Mangled name: M#<get-a>(){}kotlin.Int
// Public signature: /M.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
protected /* fake */ override get(): Int
}
// CHECK:
// Mangled name: N
// Public signature: /N|null[0]
class N : Java8 {
// CHECK:
// Mangled name: N#<init>(){}
// Public signature: /N.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: N#foo(){}
// Public signature: /N.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
override fun foo(): Unit
// CHECK:
// Mangled name: N{}a
// Public signature: /N.a|-1200697420457237799[0]
// Public signature debug description: {}a
protected override val a: Int
// CHECK JVM_IR:
// Mangled name: N#<get-a>(){}kotlin.Int
// Public signature: /N.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
protected override get(): Int
}
// CHECK:
// Mangled name: O
// Public signature: /O|null[0]
class O : Java9 {
// CHECK:
// Mangled name: O#<init>(){}
// Public signature: /O.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: O#foo(){}
// Public signature: /O.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
/* fake */ override fun foo(): Unit
}
// CHECK:
// Mangled name: P
// Public signature: /P|null[0]
class P : Java9 {
// CHECK:
// Mangled name: P#<init>(){}
// Public signature: /P.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: P#foo(){}
// Public signature: /P.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
override fun foo(): Unit
}
// CHECK:
// Mangled name: PrivateVisibility
// Public signature: /PrivateVisibility|null[0]
open class PrivateVisibility {
// CHECK:
// Mangled name: PrivateVisibility{}a
// Public signature: /PrivateVisibility.a|-1200697420457237799[0]
// Public signature debug description: {}a
private val a: Int
// CHECK JVM_IR:
// Mangled name: PrivateVisibility#<get-a>(){}kotlin.Int
// Public signature: /PrivateVisibility.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
private get
// CHECK:
// Mangled name: PrivateVisibility#<init>(){}
// Public signature: /PrivateVisibility.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: PrivateVisibility#foo(){}
// Public signature: /PrivateVisibility.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
private fun foo(): Unit
}
// CHECK:
// Mangled name: ProtectedVisibility
// Public signature: /ProtectedVisibility|null[0]
open class ProtectedVisibility {
// CHECK:
// Mangled name: ProtectedVisibility{}a
// Public signature: /ProtectedVisibility.a|-1200697420457237799[0]
// Public signature debug description: {}a
protected open val a: Int
// CHECK JVM_IR:
// Mangled name: ProtectedVisibility#<get-a>(){}kotlin.Int
// Public signature: /ProtectedVisibility.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
protected open get
// CHECK:
// Mangled name: ProtectedVisibility#<init>(){}
// Public signature: /ProtectedVisibility.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: ProtectedVisibility#foo(){}
// Public signature: /ProtectedVisibility.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
protected open fun foo(): Unit
}
// CHECK:
// Mangled name: PublicVisibility
// Public signature: /PublicVisibility|null[0]
open class PublicVisibility {
// CHECK:
// Mangled name: PublicVisibility{}a
// Public signature: /PublicVisibility.a|-1200697420457237799[0]
// Public signature debug description: {}a
open val a: Int
// CHECK JVM_IR:
// Mangled name: PublicVisibility#<get-a>(){}kotlin.Int
// Public signature: /PublicVisibility.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
open get
// CHECK:
// Mangled name: PublicVisibility#<init>(){}
// Public signature: /PublicVisibility.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: PublicVisibility#foo(){}
// Public signature: /PublicVisibility.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
open fun foo(): Unit
}
// CHECK:
// Mangled name: Q
// Public signature: /Q|null[0]
class Q : Java10 {
// CHECK:
// Mangled name: Q#<init>(){}
// Public signature: /Q.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: Q#foo(){}
// Public signature: /Q.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
/* fake */ override fun foo(): Unit
// CHECK:
// Mangled name: Q{}a
// Public signature: /Q.a|-1200697420457237799[0]
// Public signature debug description: {}a
/* fake */ override val a: Int
// CHECK JVM_IR:
// Mangled name: Q#<get-a>(){}kotlin.Int
// Public signature: /Q.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
/* fake */ override get(): Int
}
// CHECK:
// Mangled name: R
// Public signature: /R|null[0]
class R : Java10 {
// CHECK:
// Mangled name: R#<init>(){}
// Public signature: /R.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: R#foo(){}
// Public signature: /R.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
override fun foo(): Unit
// CHECK:
// Mangled name: R{}a
// Public signature: /R.a|-1200697420457237799[0]
// Public signature debug description: {}a
override val a: Int
// CHECK JVM_IR:
// Mangled name: R#<get-a>(){}kotlin.Int
// Public signature: /R.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
override get(): Int
}
// CHECK:
// Mangled name: S
// Public signature: /S|null[0]
class S : Java11 {
// CHECK:
// Mangled name: S#<init>(){}
// Public signature: /S.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: S#foo(){}
// Public signature: /S.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
protected_and_package /* fake */ override fun foo(): Unit
// CHECK:
// Mangled name: S{}a
// Public signature: /S.a|-1200697420457237799[0]
// Public signature debug description: {}a
protected /* fake */ override val a: Int
// CHECK JVM_IR:
// Mangled name: S#<get-a>(){}kotlin.Int
// Public signature: /S.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
protected /* fake */ override get(): Int
}
// CHECK:
// Mangled name: T
// Public signature: /T|null[0]
class T : Java11 {
// CHECK:
// Mangled name: T#<init>(){}
// Public signature: /T.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: T#foo(){}
// Public signature: /T.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
override fun foo(): Unit
// CHECK:
// Mangled name: T{}a
// Public signature: /T.a|-1200697420457237799[0]
// Public signature debug description: {}a
protected override val a: Int
// CHECK JVM_IR:
// Mangled name: T#<get-a>(){}kotlin.Int
// Public signature: /T.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
protected override get(): Int
}
// CHECK:
// Mangled name: U
// Public signature: /U|null[0]
class U : Java12 {
// CHECK:
// Mangled name: U#<init>(){}
// Public signature: /U.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: U#foo(){}
// Public signature: /U.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
protected_and_package /* fake */ override fun foo(): Unit
}
// CHECK:
// Mangled name: V
// Public signature: /V|null[0]
class V : Java12 {
// CHECK:
// Mangled name: V#<init>(){}
// Public signature: /V.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: V#foo(){}
// Public signature: /V.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
override fun foo(): Unit
}
// CHECK:
// Mangled name: W
// Public signature: /W|null[0]
class W : Java13 {
// CHECK:
// Mangled name: W#<init>(){}
// Public signature: /W.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: W#foo(){}
// Public signature: /W.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
protected_and_package /* fake */ override fun foo(): Unit
}
// CHECK:
// Mangled name: X
// Public signature: /X|null[0]
class X : Java13 {
// CHECK:
// Mangled name: X#<init>(){}
// Public signature: /X.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: X#foo(){}
// Public signature: /X.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
override fun foo(): Unit
}
// CHECK:
// Mangled name: Y
// Public signature: /Y|null[0]
class Y : Java14 {
// CHECK:
// Mangled name: Y#<init>(){}
// Public signature: /Y.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
}
// CHECK:
// Mangled name: Z
// Public signature: /Z|null[0]
class Z : Java15 {
// CHECK:
// Mangled name: Z#<init>(){}
// Public signature: /Z.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: Z#foo(){}
// Public signature: /Z.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
package /* fake */ override fun foo(): Unit
}
// CHECK:
// Mangled name: #test(A;B;D;F;G;H;J;K;L;M;N;O;P;Q;R;S;T;U;V;W;X;AA;CC;DD){}
// Public signature: /test|851908710130652868[0]
// Public signature debug description: test(A;B;D;F;G;H;J;K;L;M;N;O;P;Q;R;S;T;U;V;W;X;AA;CC;DD){}
fun test(a: A, b: B, d: D, f: F, g: G, h: H, j: J, k: K, l: L, m: M, n: N, o: O, p: P, q: Q, r: R, s: S, t: T, u: U, v: V, w: W, x: X, aa: AA, cc: CC, dd: DD): Unit
@@ -0,0 +1,408 @@
Module: separate
Module: main
FILE fqName:<root> fileName:/test.kt
CLASS CLASS name:A modality:FINAL visibility:public superTypes:[<root>.Java2]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.A
CONSTRUCTOR visibility:public <> () returnType:<root>.A [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java2'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:A modality:FINAL visibility:public superTypes:[<root>.Java2]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:public modality:OPEN <> ($this:<root>.Java1) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (): kotlin.Unit declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
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 <root>.Java2
$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 <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:B modality:FINAL visibility:public superTypes:[<root>.Java2]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.B
PROPERTY name:a visibility:public modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.Int visibility:private [final]
EXPRESSION_BODY
CONST Int type=kotlin.Int value=3
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-a> visibility:public modality:FINAL <> ($this:<root>.B) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a visibility:public modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.B
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-a> (): kotlin.Int declared in <root>.B'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.B declared in <root>.B.<get-a>' type=<root>.B origin=null
CONSTRUCTOR visibility:public <> () returnType:<root>.B [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java2'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:B modality:FINAL visibility:public superTypes:[<root>.Java2]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java2
$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 <root>.Java2
$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 <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.B) returnType:kotlin.Unit
overridden:
public open fun foo (): kotlin.Unit declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.B
BLOCK_BODY
CLASS CLASS name:C modality:FINAL visibility:public superTypes:[<root>.Java4]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.C
CONSTRUCTOR visibility:public <> () returnType:<root>.C [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java4'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:C modality:FINAL visibility:public superTypes:[<root>.Java4]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java4
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:protected/*protected and package*/ modality:OPEN <> ($this:<root>.Java3) returnType:kotlin.Unit [fake_override]
overridden:
protected/*protected and package*/ open fun foo (): kotlin.Unit declared in <root>.Java4
$this: VALUE_PARAMETER name:<this> type:<root>.Java3
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 <root>.Java4
$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 <root>.Java4
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:D modality:FINAL visibility:public superTypes:[<root>.Java4]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.D
PROPERTY name:a visibility:public modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.Int visibility:private [final]
EXPRESSION_BODY
CONST Int type=kotlin.Int value=3
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-a> visibility:public modality:FINAL <> ($this:<root>.D) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a visibility:public modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.D
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-a> (): kotlin.Int declared in <root>.D'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.D declared in <root>.D.<get-a>' type=<root>.D origin=null
CONSTRUCTOR visibility:public <> () returnType:<root>.D [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java4'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:D modality:FINAL visibility:public superTypes:[<root>.Java4]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java4
$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 <root>.Java4
$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 <root>.Java4
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.D) returnType:kotlin.Unit
overridden:
protected/*protected and package*/ open fun foo (): kotlin.Unit declared in <root>.Java4
$this: VALUE_PARAMETER name:<this> type:<root>.D
BLOCK_BODY
CLASS CLASS name:E modality:FINAL visibility:public superTypes:[<root>.Java6]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.E
CONSTRUCTOR visibility:public <> () returnType:<root>.E [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java6'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:E modality:FINAL visibility:public superTypes:[<root>.Java6]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java6
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:public/*package*/ modality:OPEN <> ($this:<root>.Java5) returnType:kotlin.Unit [fake_override]
overridden:
public/*package*/ open fun foo (): kotlin.Unit declared in <root>.Java6
$this: VALUE_PARAMETER name:<this> type:<root>.Java5
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 <root>.Java6
$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 <root>.Java6
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:F modality:FINAL visibility:public superTypes:[<root>.Java6]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.F
PROPERTY name:a visibility:public modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.Int visibility:private [final]
EXPRESSION_BODY
CONST Int type=kotlin.Int value=3
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-a> visibility:public modality:FINAL <> ($this:<root>.F) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a visibility:public modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.F
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-a> (): kotlin.Int declared in <root>.F'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.F declared in <root>.F.<get-a>' type=<root>.F origin=null
CONSTRUCTOR visibility:public <> () returnType:<root>.F [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java6'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:F modality:FINAL visibility:public superTypes:[<root>.Java6]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java6
$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 <root>.Java6
$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 <root>.Java6
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.F) returnType:kotlin.Unit
overridden:
public/*package*/ open fun foo (): kotlin.Unit declared in <root>.Java6
$this: VALUE_PARAMETER name:<this> type:<root>.F
BLOCK_BODY
CLASS CLASS name:G modality:FINAL visibility:public superTypes:[<root>.Java7]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.G
CONSTRUCTOR visibility:public <> () returnType:<root>.G [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java7'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:G modality:FINAL visibility:public superTypes:[<root>.Java7]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java7
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:protected/*protected and package*/ modality:OPEN <> ($this:<root>.JavaSeparate1) returnType:kotlin.Unit [fake_override]
overridden:
protected/*protected and package*/ open fun foo (): kotlin.Unit declared in <root>.Java7
$this: VALUE_PARAMETER name:<this> type:<root>.JavaSeparate1
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 <root>.Java7
$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 <root>.Java7
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:H modality:FINAL visibility:public superTypes:[<root>.Java7]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.H
PROPERTY name:a visibility:public modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.Int visibility:private [final]
EXPRESSION_BODY
CONST Int type=kotlin.Int value=3
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-a> visibility:public modality:FINAL <> ($this:<root>.H) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a visibility:public modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.H
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-a> (): kotlin.Int declared in <root>.H'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.H declared in <root>.H.<get-a>' type=<root>.H origin=null
CONSTRUCTOR visibility:public <> () returnType:<root>.H [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java7'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:H modality:FINAL visibility:public superTypes:[<root>.Java7]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java7
$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 <root>.Java7
$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 <root>.Java7
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.H) returnType:kotlin.Unit
overridden:
protected/*protected and package*/ open fun foo (): kotlin.Unit declared in <root>.Java7
$this: VALUE_PARAMETER name:<this> type:<root>.H
BLOCK_BODY
CLASS CLASS name:I modality:FINAL visibility:public superTypes:[<root>.Java8]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.I
CONSTRUCTOR visibility:public <> () returnType:<root>.I [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java8'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:I modality:FINAL visibility:public superTypes:[<root>.Java8]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java8
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:public/*package*/ modality:OPEN <> ($this:<root>.JavaSeparate2) returnType:kotlin.Unit [fake_override]
overridden:
public/*package*/ open fun foo (): kotlin.Unit declared in <root>.Java8
$this: VALUE_PARAMETER name:<this> type:<root>.JavaSeparate2
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 <root>.Java8
$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 <root>.Java8
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:KotlinClass modality:OPEN visibility:public superTypes:[<root>.Java1]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.KotlinClass
CONSTRUCTOR visibility:public <> () returnType:<root>.KotlinClass [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java1'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:KotlinClass modality:OPEN visibility:public superTypes:[<root>.Java1]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:public modality:OPEN <> ($this:<root>.Java1) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (): kotlin.Unit declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
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 <root>.Java1
$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 <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:KotlinClass2 modality:OPEN visibility:public superTypes:[<root>.Java3]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.KotlinClass2
CONSTRUCTOR visibility:public <> () returnType:<root>.KotlinClass2 [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java3'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:KotlinClass2 modality:OPEN visibility:public superTypes:[<root>.Java3]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:protected/*protected and package*/ modality:OPEN <> ($this:<root>.Java3) returnType:kotlin.Unit [fake_override]
overridden:
protected/*protected and package*/ open fun foo (): kotlin.Unit declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.Java3
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 <root>.Java3
$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 <root>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:KotlinClass3 modality:OPEN visibility:public superTypes:[<root>.Java5]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.KotlinClass3
CONSTRUCTOR visibility:public <> () returnType:<root>.KotlinClass3 [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java5'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:KotlinClass3 modality:OPEN visibility:public superTypes:[<root>.Java5]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java5
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:public/*package*/ modality:OPEN <> ($this:<root>.Java5) returnType:kotlin.Unit [fake_override]
overridden:
public/*package*/ open fun foo (): kotlin.Unit declared in <root>.Java5
$this: VALUE_PARAMETER name:<this> type:<root>.Java5
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 <root>.Java5
$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 <root>.Java5
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:KotlinClass4 modality:OPEN visibility:public superTypes:[<root>.JavaSeparate1]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.KotlinClass4
CONSTRUCTOR visibility:public <> () returnType:<root>.KotlinClass4 [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.JavaSeparate1'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:KotlinClass4 modality:OPEN visibility:public superTypes:[<root>.JavaSeparate1]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.JavaSeparate1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:protected/*protected and package*/ modality:OPEN <> ($this:<root>.JavaSeparate1) returnType:kotlin.Unit [fake_override]
overridden:
protected/*protected and package*/ open fun foo (): kotlin.Unit declared in <root>.JavaSeparate1
$this: VALUE_PARAMETER name:<this> type:<root>.JavaSeparate1
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 <root>.JavaSeparate1
$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 <root>.JavaSeparate1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:KotlinClass5 modality:OPEN visibility:public superTypes:[<root>.JavaSeparate2]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.KotlinClass5
CONSTRUCTOR visibility:public <> () returnType:<root>.KotlinClass5 [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.JavaSeparate2'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:KotlinClass5 modality:OPEN visibility:public superTypes:[<root>.JavaSeparate2]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.JavaSeparate2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:public/*package*/ modality:OPEN <> ($this:<root>.JavaSeparate2) returnType:kotlin.Unit [fake_override]
overridden:
public/*package*/ open fun foo (): kotlin.Unit declared in <root>.JavaSeparate2
$this: VALUE_PARAMETER name:<this> type:<root>.JavaSeparate2
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 <root>.JavaSeparate2
$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 <root>.JavaSeparate2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:test visibility:public modality:FINAL <> (a:<root>.A, b:<root>.B, c:<root>.C, d:<root>.D, e:<root>.E, h:<root>.H) returnType:kotlin.Unit
VALUE_PARAMETER name:a index:0 type:<root>.A
VALUE_PARAMETER name:b index:1 type:<root>.B
VALUE_PARAMETER name:c index:2 type:<root>.C
VALUE_PARAMETER name:d index:3 type:<root>.D
VALUE_PARAMETER name:e index:4 type:<root>.E
VALUE_PARAMETER name:h index:5 type:<root>.H
BLOCK_BODY
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:a type:kotlin.Int visibility:public' type=kotlin.Int origin=null
receiver: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
CALL 'public open fun foo (): kotlin.Unit declared in <root>.A' type=kotlin.Unit origin=null
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public final fun <get-a> (): kotlin.Int declared in <root>.B' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
CALL 'public open fun foo (): kotlin.Unit declared in <root>.B' type=kotlin.Unit origin=null
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:a type:kotlin.Int visibility:protected/*protected and package*/' type=kotlin.Int origin=null
receiver: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
CALL 'protected/*protected and package*/ open fun foo (): kotlin.Unit declared in <root>.C' type=kotlin.Unit origin=null
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
CALL 'public open fun foo (): kotlin.Unit declared in <root>.D' type=kotlin.Unit origin=null
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:a type:kotlin.Int visibility:public/*package*/' type=kotlin.Int origin=null
receiver: GET_VAR 'e: <root>.E declared in <root>.test' type=<root>.E origin=null
CALL 'public/*package*/ open fun foo (): kotlin.Unit declared in <root>.E' type=kotlin.Unit origin=null
$this: GET_VAR 'e: <root>.E declared in <root>.test' type=<root>.E origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public final fun <get-a> (): kotlin.Int declared in <root>.H' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR 'h: <root>.H declared in <root>.test' type=<root>.H origin=null
CALL 'public open fun foo (): kotlin.Unit declared in <root>.H' type=kotlin.Unit origin=null
$this: GET_VAR 'h: <root>.H declared in <root>.test' type=<root>.H origin=null
@@ -0,0 +1,171 @@
// MODULE: separate
// MODULE: main
// FILE: test.kt
class A : Java2 {
constructor() /* primary */ {
super/*Java2*/()
/* <init>() */
}
}
class B : Java2 {
val a: Int
field = 3
get
constructor() /* primary */ {
super/*Java2*/()
/* <init>() */
}
override fun foo() {
}
}
class C : Java4 {
constructor() /* primary */ {
super/*Java4*/()
/* <init>() */
}
}
class D : Java4 {
val a: Int
field = 3
get
constructor() /* primary */ {
super/*Java4*/()
/* <init>() */
}
override fun foo() {
}
}
class E : Java6 {
constructor() /* primary */ {
super/*Java6*/()
/* <init>() */
}
}
class F : Java6 {
val a: Int
field = 3
get
constructor() /* primary */ {
super/*Java6*/()
/* <init>() */
}
override fun foo() {
}
}
class G : Java7 {
constructor() /* primary */ {
super/*Java7*/()
/* <init>() */
}
}
class H : Java7 {
val a: Int
field = 3
get
constructor() /* primary */ {
super/*Java7*/()
/* <init>() */
}
override fun foo() {
}
}
class I : Java8 {
constructor() /* primary */ {
super/*Java8*/()
/* <init>() */
}
}
open class KotlinClass : Java1 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
}
open class KotlinClass2 : Java3 {
constructor() /* primary */ {
super/*Java3*/()
/* <init>() */
}
}
open class KotlinClass3 : Java5 {
constructor() /* primary */ {
super/*Java5*/()
/* <init>() */
}
}
open class KotlinClass4 : JavaSeparate1 {
constructor() /* primary */ {
super/*JavaSeparate1*/()
/* <init>() */
}
}
open class KotlinClass5 : JavaSeparate2 {
constructor() /* primary */ {
super/*JavaSeparate2*/()
/* <init>() */
}
}
fun test(a: A, b: B, c: C, d: D, e: E, h: H) {
a.#a /*~> Unit */
a.foo()
b.<get-a>() /*~> Unit */
b.foo()
c.#a /*~> Unit */
c.foo()
d.foo()
e.#a /*~> Unit */
e.foo()
h.<get-a>() /*~> Unit */
h.foo()
}
@@ -0,0 +1,450 @@
Module: separate
Module: main
FILE fqName:<root> fileName:/test.kt
CLASS CLASS name:A modality:FINAL visibility:public superTypes:[<root>.Java2]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.A
CONSTRUCTOR visibility:public <> () returnType:<root>.A [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java2'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:A modality:FINAL visibility:public superTypes:[<root>.Java2]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:public modality:OPEN <> ($this:<root>.Java1) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (): kotlin.Unit declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
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 <root>.Java2
$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 <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
PROPERTY FAKE_OVERRIDE name:a visibility:public modality:FINAL [fake_override,var]
overridden:
public final a: kotlin.Int
CLASS CLASS name:B modality:FINAL visibility:public superTypes:[<root>.Java2]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.B
PROPERTY name:a visibility:public modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.Int visibility:private [final]
EXPRESSION_BODY
CONST Int type=kotlin.Int value=3
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-a> visibility:public modality:FINAL <> ($this:<root>.B) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a visibility:public modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.B
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-a> (): kotlin.Int declared in <root>.B'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.B declared in <root>.B.<get-a>' type=<root>.B origin=null
CONSTRUCTOR visibility:public <> () returnType:<root>.B [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java2'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:B modality:FINAL visibility:public superTypes:[<root>.Java2]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java2
$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 <root>.Java2
$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 <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.B) returnType:kotlin.Unit
overridden:
public open fun foo (): kotlin.Unit declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.B
BLOCK_BODY
PROPERTY FAKE_OVERRIDE name:a visibility:public modality:FINAL [fake_override,var]
overridden:
public final a: kotlin.Int
CLASS CLASS name:C modality:FINAL visibility:public superTypes:[<root>.Java4]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.C
CONSTRUCTOR visibility:public <> () returnType:<root>.C [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java4'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:C modality:FINAL visibility:public superTypes:[<root>.Java4]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java4
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:protected/*protected and package*/ modality:OPEN <> ($this:<root>.Java3) returnType:kotlin.Unit [fake_override]
overridden:
protected/*protected and package*/ open fun foo (): kotlin.Unit declared in <root>.Java4
$this: VALUE_PARAMETER name:<this> type:<root>.Java3
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 <root>.Java4
$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 <root>.Java4
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
PROPERTY FAKE_OVERRIDE name:a visibility:protected/*protected and package*/ modality:FINAL [fake_override,var]
overridden:
protected/*protected and package*/ final a: kotlin.Int
CLASS CLASS name:D modality:FINAL visibility:public superTypes:[<root>.Java4]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.D
PROPERTY name:a visibility:public modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.Int visibility:private [final]
EXPRESSION_BODY
CONST Int type=kotlin.Int value=3
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-a> visibility:public modality:FINAL <> ($this:<root>.D) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a visibility:public modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.D
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-a> (): kotlin.Int declared in <root>.D'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.D declared in <root>.D.<get-a>' type=<root>.D origin=null
CONSTRUCTOR visibility:public <> () returnType:<root>.D [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java4'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:D modality:FINAL visibility:public superTypes:[<root>.Java4]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java4
$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 <root>.Java4
$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 <root>.Java4
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.D) returnType:kotlin.Unit
overridden:
protected/*protected and package*/ open fun foo (): kotlin.Unit declared in <root>.Java4
$this: VALUE_PARAMETER name:<this> type:<root>.D
BLOCK_BODY
PROPERTY FAKE_OVERRIDE name:a visibility:protected/*protected and package*/ modality:FINAL [fake_override,var]
overridden:
protected/*protected and package*/ final a: kotlin.Int
CLASS CLASS name:E modality:FINAL visibility:public superTypes:[<root>.Java6]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.E
CONSTRUCTOR visibility:public <> () returnType:<root>.E [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java6'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:E modality:FINAL visibility:public superTypes:[<root>.Java6]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java6
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:public/*package*/ modality:OPEN <> ($this:<root>.Java5) returnType:kotlin.Unit [fake_override]
overridden:
public/*package*/ open fun foo (): kotlin.Unit declared in <root>.Java6
$this: VALUE_PARAMETER name:<this> type:<root>.Java5
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 <root>.Java6
$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 <root>.Java6
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
PROPERTY FAKE_OVERRIDE name:a visibility:public/*package*/ modality:FINAL [fake_override,var]
overridden:
public/*package*/ final a: kotlin.Int
CLASS CLASS name:F modality:FINAL visibility:public superTypes:[<root>.Java6]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.F
PROPERTY name:a visibility:public modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.Int visibility:private [final]
EXPRESSION_BODY
CONST Int type=kotlin.Int value=3
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-a> visibility:public modality:FINAL <> ($this:<root>.F) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a visibility:public modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.F
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-a> (): kotlin.Int declared in <root>.F'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.F declared in <root>.F.<get-a>' type=<root>.F origin=null
CONSTRUCTOR visibility:public <> () returnType:<root>.F [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java6'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:F modality:FINAL visibility:public superTypes:[<root>.Java6]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java6
$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 <root>.Java6
$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 <root>.Java6
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.F) returnType:kotlin.Unit
overridden:
public/*package*/ open fun foo (): kotlin.Unit declared in <root>.Java6
$this: VALUE_PARAMETER name:<this> type:<root>.F
BLOCK_BODY
PROPERTY FAKE_OVERRIDE name:a visibility:public/*package*/ modality:FINAL [fake_override,var]
overridden:
public/*package*/ final a: kotlin.Int
CLASS CLASS name:G modality:FINAL visibility:public superTypes:[<root>.Java7]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.G
CONSTRUCTOR visibility:public <> () returnType:<root>.G [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java7'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:G modality:FINAL visibility:public superTypes:[<root>.Java7]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java7
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:protected/*protected and package*/ modality:OPEN <> ($this:<root>.JavaSeparate1) returnType:kotlin.Unit [fake_override]
overridden:
protected/*protected and package*/ open fun foo (): kotlin.Unit declared in <root>.Java7
$this: VALUE_PARAMETER name:<this> type:<root>.JavaSeparate1
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 <root>.Java7
$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 <root>.Java7
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
PROPERTY FAKE_OVERRIDE name:a visibility:protected/*protected and package*/ modality:FINAL [fake_override,var]
overridden:
protected/*protected and package*/ final a: kotlin.Int
CLASS CLASS name:H modality:FINAL visibility:public superTypes:[<root>.Java7]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.H
PROPERTY name:a visibility:public modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.Int visibility:private [final]
EXPRESSION_BODY
CONST Int type=kotlin.Int value=3
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-a> visibility:public modality:FINAL <> ($this:<root>.H) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a visibility:public modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.H
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-a> (): kotlin.Int declared in <root>.H'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.H declared in <root>.H.<get-a>' type=<root>.H origin=null
CONSTRUCTOR visibility:public <> () returnType:<root>.H [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java7'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:H modality:FINAL visibility:public superTypes:[<root>.Java7]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java7
$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 <root>.Java7
$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 <root>.Java7
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.H) returnType:kotlin.Unit
overridden:
protected/*protected and package*/ open fun foo (): kotlin.Unit declared in <root>.Java7
$this: VALUE_PARAMETER name:<this> type:<root>.H
BLOCK_BODY
PROPERTY FAKE_OVERRIDE name:a visibility:protected/*protected and package*/ modality:FINAL [fake_override,var]
overridden:
protected/*protected and package*/ final a: kotlin.Int
CLASS CLASS name:I modality:FINAL visibility:public superTypes:[<root>.Java8]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.I
CONSTRUCTOR visibility:public <> () returnType:<root>.I [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java8'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:I modality:FINAL visibility:public superTypes:[<root>.Java8]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java8
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:public/*package*/ modality:OPEN <> ($this:<root>.JavaSeparate2) returnType:kotlin.Unit [fake_override]
overridden:
public/*package*/ open fun foo (): kotlin.Unit declared in <root>.Java8
$this: VALUE_PARAMETER name:<this> type:<root>.JavaSeparate2
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 <root>.Java8
$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 <root>.Java8
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
PROPERTY FAKE_OVERRIDE name:a visibility:public/*package*/ modality:FINAL [fake_override,var]
overridden:
public/*package*/ final a: kotlin.Int
CLASS CLASS name:KotlinClass modality:OPEN visibility:public superTypes:[<root>.Java1]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.KotlinClass
CONSTRUCTOR visibility:public <> () returnType:<root>.KotlinClass [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java1'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:KotlinClass modality:OPEN visibility:public superTypes:[<root>.Java1]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:public modality:OPEN <> ($this:<root>.Java1) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (): kotlin.Unit declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
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 <root>.Java1
$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 <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
PROPERTY FAKE_OVERRIDE name:a visibility:public modality:FINAL [fake_override,var]
overridden:
public final a: kotlin.Int
CLASS CLASS name:KotlinClass2 modality:OPEN visibility:public superTypes:[<root>.Java3]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.KotlinClass2
CONSTRUCTOR visibility:public <> () returnType:<root>.KotlinClass2 [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java3'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:KotlinClass2 modality:OPEN visibility:public superTypes:[<root>.Java3]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:protected/*protected and package*/ modality:OPEN <> ($this:<root>.Java3) returnType:kotlin.Unit [fake_override]
overridden:
protected/*protected and package*/ open fun foo (): kotlin.Unit declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.Java3
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 <root>.Java3
$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 <root>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
PROPERTY FAKE_OVERRIDE name:a visibility:protected/*protected and package*/ modality:FINAL [fake_override,var]
overridden:
protected/*protected and package*/ final a: kotlin.Int
CLASS CLASS name:KotlinClass3 modality:OPEN visibility:public superTypes:[<root>.Java5]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.KotlinClass3
CONSTRUCTOR visibility:public <> () returnType:<root>.KotlinClass3 [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java5'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:KotlinClass3 modality:OPEN visibility:public superTypes:[<root>.Java5]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java5
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:public/*package*/ modality:OPEN <> ($this:<root>.Java5) returnType:kotlin.Unit [fake_override]
overridden:
public/*package*/ open fun foo (): kotlin.Unit declared in <root>.Java5
$this: VALUE_PARAMETER name:<this> type:<root>.Java5
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 <root>.Java5
$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 <root>.Java5
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
PROPERTY FAKE_OVERRIDE name:a visibility:public/*package*/ modality:FINAL [fake_override,var]
overridden:
public/*package*/ final a: kotlin.Int
CLASS CLASS name:KotlinClass4 modality:OPEN visibility:public superTypes:[<root>.JavaSeparate1]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.KotlinClass4
CONSTRUCTOR visibility:public <> () returnType:<root>.KotlinClass4 [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.JavaSeparate1'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:KotlinClass4 modality:OPEN visibility:public superTypes:[<root>.JavaSeparate1]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.JavaSeparate1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:protected/*protected and package*/ modality:OPEN <> ($this:<root>.JavaSeparate1) returnType:kotlin.Unit [fake_override]
overridden:
protected/*protected and package*/ open fun foo (): kotlin.Unit declared in <root>.JavaSeparate1
$this: VALUE_PARAMETER name:<this> type:<root>.JavaSeparate1
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 <root>.JavaSeparate1
$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 <root>.JavaSeparate1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
PROPERTY FAKE_OVERRIDE name:a visibility:protected/*protected and package*/ modality:FINAL [fake_override,var]
overridden:
protected/*protected and package*/ final a: kotlin.Int
CLASS CLASS name:KotlinClass5 modality:OPEN visibility:public superTypes:[<root>.JavaSeparate2]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.KotlinClass5
CONSTRUCTOR visibility:public <> () returnType:<root>.KotlinClass5 [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.JavaSeparate2'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:KotlinClass5 modality:OPEN visibility:public superTypes:[<root>.JavaSeparate2]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.JavaSeparate2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:public/*package*/ modality:OPEN <> ($this:<root>.JavaSeparate2) returnType:kotlin.Unit [fake_override]
overridden:
public/*package*/ open fun foo (): kotlin.Unit declared in <root>.JavaSeparate2
$this: VALUE_PARAMETER name:<this> type:<root>.JavaSeparate2
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 <root>.JavaSeparate2
$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 <root>.JavaSeparate2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
PROPERTY FAKE_OVERRIDE name:a visibility:public/*package*/ modality:FINAL [fake_override,var]
overridden:
public/*package*/ final a: kotlin.Int
FUN name:test visibility:public modality:FINAL <> (a:<root>.A, b:<root>.B, c:<root>.C, d:<root>.D, e:<root>.E, h:<root>.H) returnType:kotlin.Unit
VALUE_PARAMETER name:a index:0 type:<root>.A
VALUE_PARAMETER name:b index:1 type:<root>.B
VALUE_PARAMETER name:c index:2 type:<root>.C
VALUE_PARAMETER name:d index:3 type:<root>.D
VALUE_PARAMETER name:e index:4 type:<root>.E
VALUE_PARAMETER name:h index:5 type:<root>.H
BLOCK_BODY
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:a type:kotlin.Int visibility:public' type=kotlin.Int origin=null
receiver: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
CALL 'public open fun foo (): kotlin.Unit declared in <root>.A' type=kotlin.Unit origin=null
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:a type:kotlin.Int visibility:public' type=kotlin.Int origin=null
receiver: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
CALL 'public open fun foo (): kotlin.Unit declared in <root>.B' type=kotlin.Unit origin=null
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:a type:kotlin.Int visibility:protected/*protected and package*/' type=kotlin.Int origin=null
receiver: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
CALL 'protected/*protected and package*/ open fun foo (): kotlin.Unit declared in <root>.C' type=kotlin.Unit origin=null
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
CALL 'public open fun foo (): kotlin.Unit declared in <root>.D' type=kotlin.Unit origin=null
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:a type:kotlin.Int visibility:public/*package*/' type=kotlin.Int origin=null
receiver: GET_VAR 'e: <root>.E declared in <root>.test' type=<root>.E origin=null
CALL 'public/*package*/ open fun foo (): kotlin.Unit declared in <root>.E' type=kotlin.Unit origin=null
$this: GET_VAR 'e: <root>.E declared in <root>.test' type=<root>.E origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:a type:kotlin.Int visibility:protected/*protected and package*/' type=kotlin.Int origin=null
receiver: GET_VAR 'h: <root>.H declared in <root>.test' type=<root>.H origin=null
CALL 'public open fun foo (): kotlin.Unit declared in <root>.H' type=kotlin.Unit origin=null
$this: GET_VAR 'h: <root>.H declared in <root>.test' type=<root>.H origin=null
@@ -0,0 +1,103 @@
// TARGET_BACKEND: JVM
// MODULE: separate
// FILE: JavaSeparate1.java
public class JavaSeparate1 {
protected int a = 22;
protected void foo(){}
}
// FILE: JavaSeparate2.java
public class JavaSeparate2 {
int a = 23;
void foo() {}
}
// MODULE: main
// FILE: Java1.java
public class Java1 {
public int a = 1;
public void foo() {}
}
// FILE: Java2.java
public class Java2 extends KotlinClass { }
// FILE: Java3.java
public class Java3 {
protected int a = 3;
protected void foo(){}
}
// FILE: Java4.java
public class Java4 extends KotlinClass2 { }
// FILE: Java5.java
public class Java5 {
int a = 5;
void foo() {}
}
// FILE: Java6.java
public class Java6 extends KotlinClass3 { }
// FILE: Java7.java
public class Java7 extends KotlinClass4 { }
// FILE: Java8.java
public class Java8 extends KotlinClass5 { }
// FILE: test.kt
class A : Java2()
class B : Java2() {
override fun foo() {}
val a = 3
}
class C : Java4()
class D : Java4() {
public override fun foo() {}
val a = 3
}
class E : Java6()
class F : Java6() {
public override fun foo() {}
val a = 3
}
class G : Java7()
class H : Java7() {
public override fun foo() {}
val a = 3
}
class I: Java8()
open class KotlinClass : Java1()
open class KotlinClass2: Java3()
open class KotlinClass3 : Java5()
open class KotlinClass4 : JavaSeparate1()
open class KotlinClass5 : JavaSeparate2()
fun test(a: A, b: B, c: C, d: D, e: E, h: H) {
a.a
a.foo()
b.a
b.foo()
c.a
c.foo()
d.foo()
e.a
e.foo()
h.a
h.foo()
}
@@ -0,0 +1,171 @@
// MODULE: separate
// MODULE: main
// FILE: test.kt
class A : Java2 {
constructor() /* primary */ {
super/*Java2*/()
/* <init>() */
}
}
class B : Java2 {
val a: Int
field = 3
get
constructor() /* primary */ {
super/*Java2*/()
/* <init>() */
}
override fun foo() {
}
}
class C : Java4 {
constructor() /* primary */ {
super/*Java4*/()
/* <init>() */
}
}
class D : Java4 {
val a: Int
field = 3
get
constructor() /* primary */ {
super/*Java4*/()
/* <init>() */
}
override fun foo() {
}
}
class E : Java6 {
constructor() /* primary */ {
super/*Java6*/()
/* <init>() */
}
}
class F : Java6 {
val a: Int
field = 3
get
constructor() /* primary */ {
super/*Java6*/()
/* <init>() */
}
override fun foo() {
}
}
class G : Java7 {
constructor() /* primary */ {
super/*Java7*/()
/* <init>() */
}
}
class H : Java7 {
val a: Int
field = 3
get
constructor() /* primary */ {
super/*Java7*/()
/* <init>() */
}
override fun foo() {
}
}
class I : Java8 {
constructor() /* primary */ {
super/*Java8*/()
/* <init>() */
}
}
open class KotlinClass : Java1 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
}
open class KotlinClass2 : Java3 {
constructor() /* primary */ {
super/*Java3*/()
/* <init>() */
}
}
open class KotlinClass3 : Java5 {
constructor() /* primary */ {
super/*Java5*/()
/* <init>() */
}
}
open class KotlinClass4 : JavaSeparate1 {
constructor() /* primary */ {
super/*JavaSeparate1*/()
/* <init>() */
}
}
open class KotlinClass5 : JavaSeparate2 {
constructor() /* primary */ {
super/*JavaSeparate2*/()
/* <init>() */
}
}
fun test(a: A, b: B, c: C, d: D, e: E, h: H) {
a(super<A>).#a /*~> Unit */
a.foo()
b(super<B>).#a /*~> Unit */
b.foo()
c(super<C>).#a /*~> Unit */
c.foo()
d.foo()
e(super<E>).#a /*~> Unit */
e.foo()
h(super<H>).#a /*~> Unit */
h.foo()
}
@@ -0,0 +1,305 @@
// MODULE: separate
// MODULE: main
// FILE: test.kt
// CHECK:
// Mangled name: A
// Public signature: /A|null[0]
class A : Java2 {
// CHECK:
// Mangled name: A#<init>(){}
// Public signature: /A.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: A#foo(){}
// Public signature: /A.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
/* fake */ override fun foo(): Unit
}
// CHECK:
// Mangled name: B
// Public signature: /B|null[0]
class B : Java2 {
// CHECK:
// Mangled name: B{}a
// Public signature: /B.a|-1200697420457237799[0]
// Public signature debug description: {}a
val a: Int
// CHECK JVM_IR:
// Mangled name: B#<get-a>(){}kotlin.Int
// Public signature: /B.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
get
// CHECK:
// Mangled name: B#<init>(){}
// Public signature: /B.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: B#foo(){}
// Public signature: /B.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
override fun foo(): Unit
}
// CHECK:
// Mangled name: C
// Public signature: /C|null[0]
class C : Java4 {
// CHECK:
// Mangled name: C#<init>(){}
// Public signature: /C.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: C#foo(){}
// Public signature: /C.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
protected_and_package /* fake */ override fun foo(): Unit
}
// CHECK:
// Mangled name: D
// Public signature: /D|null[0]
class D : Java4 {
// CHECK:
// Mangled name: D{}a
// Public signature: /D.a|-1200697420457237799[0]
// Public signature debug description: {}a
val a: Int
// CHECK JVM_IR:
// Mangled name: D#<get-a>(){}kotlin.Int
// Public signature: /D.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
get
// CHECK:
// Mangled name: D#<init>(){}
// Public signature: /D.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: D#foo(){}
// Public signature: /D.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
override fun foo(): Unit
}
// CHECK:
// Mangled name: E
// Public signature: /E|null[0]
class E : Java6 {
// CHECK:
// Mangled name: E#<init>(){}
// Public signature: /E.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: E#foo(){}
// Public signature: /E.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
package /* fake */ override fun foo(): Unit
}
// CHECK:
// Mangled name: F
// Public signature: /F|null[0]
class F : Java6 {
// CHECK:
// Mangled name: F{}a
// Public signature: /F.a|-1200697420457237799[0]
// Public signature debug description: {}a
val a: Int
// CHECK JVM_IR:
// Mangled name: F#<get-a>(){}kotlin.Int
// Public signature: /F.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
get
// CHECK:
// Mangled name: F#<init>(){}
// Public signature: /F.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: F#foo(){}
// Public signature: /F.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
override fun foo(): Unit
}
// CHECK:
// Mangled name: G
// Public signature: /G|null[0]
class G : Java7 {
// CHECK:
// Mangled name: G#<init>(){}
// Public signature: /G.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: G#foo(){}
// Public signature: /G.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
protected_and_package /* fake */ override fun foo(): Unit
}
// CHECK:
// Mangled name: H
// Public signature: /H|null[0]
class H : Java7 {
// CHECK:
// Mangled name: H{}a
// Public signature: /H.a|-1200697420457237799[0]
// Public signature debug description: {}a
val a: Int
// CHECK JVM_IR:
// Mangled name: H#<get-a>(){}kotlin.Int
// Public signature: /H.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
get
// CHECK:
// Mangled name: H#<init>(){}
// Public signature: /H.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: H#foo(){}
// Public signature: /H.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
override fun foo(): Unit
}
// CHECK:
// Mangled name: I
// Public signature: /I|null[0]
class I : Java8 {
// CHECK:
// Mangled name: I#<init>(){}
// Public signature: /I.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: I#foo(){}
// Public signature: /I.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
package /* fake */ override fun foo(): Unit
}
// CHECK:
// Mangled name: KotlinClass
// Public signature: /KotlinClass|null[0]
open class KotlinClass : Java1 {
// CHECK:
// Mangled name: KotlinClass#<init>(){}
// Public signature: /KotlinClass.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: KotlinClass#foo(){}
// Public signature: /KotlinClass.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
/* fake */ override fun foo(): Unit
}
// CHECK:
// Mangled name: KotlinClass2
// Public signature: /KotlinClass2|null[0]
open class KotlinClass2 : Java3 {
// CHECK:
// Mangled name: KotlinClass2#<init>(){}
// Public signature: /KotlinClass2.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: KotlinClass2#foo(){}
// Public signature: /KotlinClass2.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
protected_and_package /* fake */ override fun foo(): Unit
}
// CHECK:
// Mangled name: KotlinClass3
// Public signature: /KotlinClass3|null[0]
open class KotlinClass3 : Java5 {
// CHECK:
// Mangled name: KotlinClass3#<init>(){}
// Public signature: /KotlinClass3.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: KotlinClass3#foo(){}
// Public signature: /KotlinClass3.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
package /* fake */ override fun foo(): Unit
}
// CHECK:
// Mangled name: KotlinClass4
// Public signature: /KotlinClass4|null[0]
open class KotlinClass4 : JavaSeparate1 {
// CHECK:
// Mangled name: KotlinClass4#<init>(){}
// Public signature: /KotlinClass4.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: KotlinClass4#foo(){}
// Public signature: /KotlinClass4.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
protected_and_package /* fake */ override fun foo(): Unit
}
// CHECK:
// Mangled name: KotlinClass5
// Public signature: /KotlinClass5|null[0]
open class KotlinClass5 : JavaSeparate2 {
// CHECK:
// Mangled name: KotlinClass5#<init>(){}
// Public signature: /KotlinClass5.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: KotlinClass5#foo(){}
// Public signature: /KotlinClass5.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
package /* fake */ override fun foo(): Unit
}
// CHECK:
// Mangled name: #test(A;B;C;D;E;H){}
// Public signature: /test|-3642480073833557067[0]
// Public signature debug description: test(A;B;C;D;E;H){}
fun test(a: A, b: B, c: C, d: D, e: E, h: H): Unit
@@ -0,0 +1,300 @@
Module: separate
Module: main
FILE fqName:<root> fileName:/test.kt
CLASS CLASS name:A modality:FINAL visibility:public superTypes:[<root>.Java1]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.A
CONSTRUCTOR visibility:public <> () returnType:<root>.A [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java1'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:A modality:FINAL visibility:public superTypes:[<root>.Java1]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:public modality:OPEN <> ($this:<root>.Java1) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (): kotlin.Unit declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
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 <root>.Java1
$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 <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:B modality:FINAL visibility:public superTypes:[<root>.Java1]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.B
CONSTRUCTOR visibility:public <> () returnType:<root>.B [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java1'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:B modality:FINAL visibility:public superTypes:[<root>.Java1]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java1
$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 <root>.Java1
$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 <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.B) returnType:kotlin.Unit
overridden:
public open fun foo (): kotlin.Unit declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.B
BLOCK_BODY
CLASS CLASS name:C modality:FINAL visibility:public superTypes:[<root>.Java2]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.C
CONSTRUCTOR visibility:public <> () returnType:<root>.C [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java2'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:C modality:FINAL visibility:public superTypes:[<root>.Java2]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:public modality:OPEN <> ($this:<root>.Java2) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (): kotlin.Unit declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.Java2
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 <root>.Java2
$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 <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:D modality:FINAL visibility:public superTypes:[<root>.Java2]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.D
CONSTRUCTOR visibility:public <> () returnType:<root>.D [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java2'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:D modality:FINAL visibility:public superTypes:[<root>.Java2]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java2
$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 <root>.Java2
$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 <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.D) returnType:kotlin.Unit
overridden:
public open fun foo (): kotlin.Unit declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.D
BLOCK_BODY
CLASS CLASS name:E modality:FINAL visibility:public superTypes:[<root>.Java3]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.E
CONSTRUCTOR visibility:public <> () returnType:<root>.E [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java3'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:E modality:FINAL visibility:public superTypes:[<root>.Java3]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:protected/*protected and package*/ modality:OPEN <> ($this:<root>.Java3) returnType:kotlin.Unit [fake_override]
overridden:
protected/*protected and package*/ open fun foo (): kotlin.Unit declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.Java3
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 <root>.Java3
$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 <root>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:F modality:FINAL visibility:public superTypes:[<root>.Java3]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.F
CONSTRUCTOR visibility:public <> () returnType:<root>.F [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java3'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:F modality:FINAL visibility:public superTypes:[<root>.Java3]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java3
$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 <root>.Java3
$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 <root>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.F) returnType:kotlin.Unit
overridden:
protected/*protected and package*/ open fun foo (): kotlin.Unit declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.F
BLOCK_BODY
CLASS CLASS name:G modality:FINAL visibility:public superTypes:[<root>.Java4]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.G
CONSTRUCTOR visibility:public <> () returnType:<root>.G [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java4'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:G modality:FINAL visibility:public superTypes:[<root>.Java4]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java4
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:protected/*protected and package*/ modality:OPEN <> ($this:<root>.Java4) returnType:kotlin.Unit [fake_override]
overridden:
protected/*protected and package*/ open fun foo (): kotlin.Unit declared in <root>.Java4
$this: VALUE_PARAMETER name:<this> type:<root>.Java4
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 <root>.Java4
$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 <root>.Java4
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:H modality:FINAL visibility:public superTypes:[<root>.Java4]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.H
CONSTRUCTOR visibility:public <> () returnType:<root>.H [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java4'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:H modality:FINAL visibility:public superTypes:[<root>.Java4]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java4
$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 <root>.Java4
$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 <root>.Java4
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.H) returnType:kotlin.Unit
overridden:
protected/*protected and package*/ open fun foo (): kotlin.Unit declared in <root>.Java4
$this: VALUE_PARAMETER name:<this> type:<root>.H
BLOCK_BODY
CLASS CLASS name:I modality:FINAL visibility:public superTypes:[<root>.Java5]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.I
CONSTRUCTOR visibility:public <> () returnType:<root>.I [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java5'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:I modality:FINAL visibility:public superTypes:[<root>.Java5]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java5
$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 <root>.Java5
$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 <root>.Java5
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:J modality:FINAL visibility:public superTypes:[<root>.Java5]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.J
PROPERTY name:a visibility:public modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.Int visibility:private [final]
EXPRESSION_BODY
CONST Int type=kotlin.Int value=10
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-a> visibility:public modality:FINAL <> ($this:<root>.J) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a visibility:public modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.J
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-a> (): kotlin.Int declared in <root>.J'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.J declared in <root>.J.<get-a>' type=<root>.J origin=null
CONSTRUCTOR visibility:public <> () returnType:<root>.J [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java5'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:J modality:FINAL visibility:public superTypes:[<root>.Java5]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java5
$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 <root>.Java5
$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 <root>.Java5
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:FINAL <> ($this:<root>.J) returnType:kotlin.Unit
$this: VALUE_PARAMETER name:<this> type:<root>.J
BLOCK_BODY
FUN name:test visibility:public modality:FINAL <> (a:<root>.A, b:<root>.B, c:<root>.C, d:<root>.D, e:<root>.E, f:<root>.F, g:<root>.G, h:<root>.H, i:<root>.I, j:<root>.J) returnType:kotlin.Unit
VALUE_PARAMETER name:a index:0 type:<root>.A
VALUE_PARAMETER name:b index:1 type:<root>.B
VALUE_PARAMETER name:c index:2 type:<root>.C
VALUE_PARAMETER name:d index:3 type:<root>.D
VALUE_PARAMETER name:e index:4 type:<root>.E
VALUE_PARAMETER name:f index:5 type:<root>.F
VALUE_PARAMETER name:g index:6 type:<root>.G
VALUE_PARAMETER name:h index:7 type:<root>.H
VALUE_PARAMETER name:i index:8 type:<root>.I
VALUE_PARAMETER name:j index:9 type:<root>.J
BLOCK_BODY
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:a type:kotlin.Int visibility:public' type=kotlin.Int origin=null
receiver: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
CALL 'public open fun foo (): kotlin.Unit declared in <root>.A' type=kotlin.Unit origin=null
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:a type:kotlin.Int visibility:public' type=kotlin.Int origin=null
receiver: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
CALL 'public open fun foo (): kotlin.Unit declared in <root>.B' type=kotlin.Unit origin=null
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:a type:kotlin.Int visibility:public' type=kotlin.Int origin=null
receiver: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
CALL 'public open fun foo (): kotlin.Unit declared in <root>.C' type=kotlin.Unit origin=null
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:a type:kotlin.Int visibility:public' type=kotlin.Int origin=null
receiver: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
CALL 'public open fun foo (): kotlin.Unit declared in <root>.D' type=kotlin.Unit origin=null
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:a type:kotlin.Int visibility:protected/*protected and package*/' type=kotlin.Int origin=null
receiver: GET_VAR 'e: <root>.E declared in <root>.test' type=<root>.E origin=null
CALL 'protected/*protected and package*/ open fun foo (): kotlin.Unit declared in <root>.E' type=kotlin.Unit origin=null
$this: GET_VAR 'e: <root>.E declared in <root>.test' type=<root>.E origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:a type:kotlin.Int visibility:protected/*protected and package*/' type=kotlin.Int origin=null
receiver: GET_VAR 'f: <root>.F declared in <root>.test' type=<root>.F origin=null
CALL 'public open fun foo (): kotlin.Unit declared in <root>.F' type=kotlin.Unit origin=null
$this: GET_VAR 'f: <root>.F declared in <root>.test' type=<root>.F origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:a type:kotlin.Int visibility:protected/*protected and package*/' type=kotlin.Int origin=null
receiver: GET_VAR 'g: <root>.G declared in <root>.test' type=<root>.G origin=null
CALL 'protected/*protected and package*/ open fun foo (): kotlin.Unit declared in <root>.G' type=kotlin.Unit origin=null
$this: GET_VAR 'g: <root>.G declared in <root>.test' type=<root>.G origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:a type:kotlin.Int visibility:protected/*protected and package*/' type=kotlin.Int origin=null
receiver: GET_VAR 'h: <root>.H declared in <root>.test' type=<root>.H origin=null
CALL 'public open fun foo (): kotlin.Unit declared in <root>.H' type=kotlin.Unit origin=null
$this: GET_VAR 'h: <root>.H declared in <root>.test' type=<root>.H origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public final fun <get-a> (): kotlin.Int declared in <root>.J' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR 'j: <root>.J declared in <root>.test' type=<root>.J origin=null
CALL 'public final fun foo (): kotlin.Unit declared in <root>.J' type=kotlin.Unit origin=null
$this: GET_VAR 'j: <root>.J declared in <root>.test' type=<root>.J origin=null
@@ -0,0 +1,133 @@
// MODULE: separate
// MODULE: main
// FILE: test.kt
class A : Java1 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
}
class B : Java1 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
override fun foo() {
}
}
class C : Java2 {
constructor() /* primary */ {
super/*Java2*/()
/* <init>() */
}
}
class D : Java2 {
constructor() /* primary */ {
super/*Java2*/()
/* <init>() */
}
override fun foo() {
}
}
class E : Java3 {
constructor() /* primary */ {
super/*Java3*/()
/* <init>() */
}
}
class F : Java3 {
constructor() /* primary */ {
super/*Java3*/()
/* <init>() */
}
override fun foo() {
}
}
class G : Java4 {
constructor() /* primary */ {
super/*Java4*/()
/* <init>() */
}
}
class H : Java4 {
constructor() /* primary */ {
super/*Java4*/()
/* <init>() */
}
override fun foo() {
}
}
class I : Java5 {
constructor() /* primary */ {
super/*Java5*/()
/* <init>() */
}
}
class J : Java5 {
val a: Int
field = 10
get
constructor() /* primary */ {
super/*Java5*/()
/* <init>() */
}
fun foo() {
}
}
fun test(a: A, b: B, c: C, d: D, e: E, f: F, g: G, h: H, i: I, j: J) {
a.#a /*~> Unit */
a.foo()
b.#a /*~> Unit */
b.foo()
c.#a /*~> Unit */
c.foo()
d.#a /*~> Unit */
d.foo()
e.#a /*~> Unit */
e.foo()
f.#a /*~> Unit */
f.foo()
g.#a /*~> Unit */
g.foo()
h.#a /*~> Unit */
h.foo()
j.<get-a>() /*~> Unit */
j.foo()
}
@@ -0,0 +1,324 @@
Module: separate
Module: main
FILE fqName:<root> fileName:/test.kt
CLASS CLASS name:A modality:FINAL visibility:public superTypes:[<root>.Java1]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.A
CONSTRUCTOR visibility:public <> () returnType:<root>.A [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java1'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:A modality:FINAL visibility:public superTypes:[<root>.Java1]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:public modality:OPEN <> ($this:<root>.Java1) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (): kotlin.Unit declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
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 <root>.Java1
$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 <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
PROPERTY FAKE_OVERRIDE name:a visibility:public modality:FINAL [fake_override,var]
overridden:
public final a: kotlin.Int
CLASS CLASS name:B modality:FINAL visibility:public superTypes:[<root>.Java1]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.B
CONSTRUCTOR visibility:public <> () returnType:<root>.B [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java1'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:B modality:FINAL visibility:public superTypes:[<root>.Java1]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java1
$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 <root>.Java1
$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 <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.B) returnType:kotlin.Unit
overridden:
public open fun foo (): kotlin.Unit declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.B
BLOCK_BODY
PROPERTY FAKE_OVERRIDE name:a visibility:public modality:FINAL [fake_override,var]
overridden:
public final a: kotlin.Int
CLASS CLASS name:C modality:FINAL visibility:public superTypes:[<root>.Java2]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.C
CONSTRUCTOR visibility:public <> () returnType:<root>.C [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java2'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:C modality:FINAL visibility:public superTypes:[<root>.Java2]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:public modality:OPEN <> ($this:<root>.Java2) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (): kotlin.Unit declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.Java2
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 <root>.Java2
$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 <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
PROPERTY FAKE_OVERRIDE name:a visibility:public modality:FINAL [fake_override,var]
overridden:
public final a: kotlin.Int
CLASS CLASS name:D modality:FINAL visibility:public superTypes:[<root>.Java2]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.D
CONSTRUCTOR visibility:public <> () returnType:<root>.D [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java2'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:D modality:FINAL visibility:public superTypes:[<root>.Java2]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java2
$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 <root>.Java2
$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 <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.D) returnType:kotlin.Unit
overridden:
public open fun foo (): kotlin.Unit declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.D
BLOCK_BODY
PROPERTY FAKE_OVERRIDE name:a visibility:public modality:FINAL [fake_override,var]
overridden:
public final a: kotlin.Int
CLASS CLASS name:E modality:FINAL visibility:public superTypes:[<root>.Java3]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.E
CONSTRUCTOR visibility:public <> () returnType:<root>.E [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java3'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:E modality:FINAL visibility:public superTypes:[<root>.Java3]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:protected/*protected and package*/ modality:OPEN <> ($this:<root>.Java3) returnType:kotlin.Unit [fake_override]
overridden:
protected/*protected and package*/ open fun foo (): kotlin.Unit declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.Java3
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 <root>.Java3
$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 <root>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
PROPERTY FAKE_OVERRIDE name:a visibility:protected/*protected and package*/ modality:FINAL [fake_override,var]
overridden:
protected/*protected and package*/ final a: kotlin.Int
CLASS CLASS name:F modality:FINAL visibility:public superTypes:[<root>.Java3]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.F
CONSTRUCTOR visibility:public <> () returnType:<root>.F [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java3'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:F modality:FINAL visibility:public superTypes:[<root>.Java3]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java3
$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 <root>.Java3
$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 <root>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.F) returnType:kotlin.Unit
overridden:
protected/*protected and package*/ open fun foo (): kotlin.Unit declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.F
BLOCK_BODY
PROPERTY FAKE_OVERRIDE name:a visibility:protected/*protected and package*/ modality:FINAL [fake_override,var]
overridden:
protected/*protected and package*/ final a: kotlin.Int
CLASS CLASS name:G modality:FINAL visibility:public superTypes:[<root>.Java4]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.G
CONSTRUCTOR visibility:public <> () returnType:<root>.G [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java4'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:G modality:FINAL visibility:public superTypes:[<root>.Java4]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java4
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:protected/*protected and package*/ modality:OPEN <> ($this:<root>.Java4) returnType:kotlin.Unit [fake_override]
overridden:
protected/*protected and package*/ open fun foo (): kotlin.Unit declared in <root>.Java4
$this: VALUE_PARAMETER name:<this> type:<root>.Java4
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 <root>.Java4
$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 <root>.Java4
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
PROPERTY FAKE_OVERRIDE name:a visibility:protected/*protected and package*/ modality:FINAL [fake_override,var]
overridden:
protected/*protected and package*/ final a: kotlin.Int
CLASS CLASS name:H modality:FINAL visibility:public superTypes:[<root>.Java4]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.H
CONSTRUCTOR visibility:public <> () returnType:<root>.H [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java4'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:H modality:FINAL visibility:public superTypes:[<root>.Java4]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java4
$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 <root>.Java4
$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 <root>.Java4
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.H) returnType:kotlin.Unit
overridden:
protected/*protected and package*/ open fun foo (): kotlin.Unit declared in <root>.Java4
$this: VALUE_PARAMETER name:<this> type:<root>.H
BLOCK_BODY
PROPERTY FAKE_OVERRIDE name:a visibility:protected/*protected and package*/ modality:FINAL [fake_override,var]
overridden:
protected/*protected and package*/ final a: kotlin.Int
CLASS CLASS name:I modality:FINAL visibility:public superTypes:[<root>.Java5]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.I
CONSTRUCTOR visibility:public <> () returnType:<root>.I [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java5'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:I modality:FINAL visibility:public superTypes:[<root>.Java5]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java5
$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 <root>.Java5
$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 <root>.Java5
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:J modality:FINAL visibility:public superTypes:[<root>.Java5]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.J
PROPERTY name:a visibility:public modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.Int visibility:private [final]
EXPRESSION_BODY
CONST Int type=kotlin.Int value=10
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-a> visibility:public modality:FINAL <> ($this:<root>.J) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a visibility:public modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.J
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-a> (): kotlin.Int declared in <root>.J'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.J declared in <root>.J.<get-a>' type=<root>.J origin=null
CONSTRUCTOR visibility:public <> () returnType:<root>.J [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java5'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:J modality:FINAL visibility:public superTypes:[<root>.Java5]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java5
$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 <root>.Java5
$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 <root>.Java5
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:FINAL <> ($this:<root>.J) returnType:kotlin.Unit
$this: VALUE_PARAMETER name:<this> type:<root>.J
BLOCK_BODY
FUN name:test visibility:public modality:FINAL <> (a:<root>.A, b:<root>.B, c:<root>.C, d:<root>.D, e:<root>.E, f:<root>.F, g:<root>.G, h:<root>.H, i:<root>.I, j:<root>.J) returnType:kotlin.Unit
VALUE_PARAMETER name:a index:0 type:<root>.A
VALUE_PARAMETER name:b index:1 type:<root>.B
VALUE_PARAMETER name:c index:2 type:<root>.C
VALUE_PARAMETER name:d index:3 type:<root>.D
VALUE_PARAMETER name:e index:4 type:<root>.E
VALUE_PARAMETER name:f index:5 type:<root>.F
VALUE_PARAMETER name:g index:6 type:<root>.G
VALUE_PARAMETER name:h index:7 type:<root>.H
VALUE_PARAMETER name:i index:8 type:<root>.I
VALUE_PARAMETER name:j index:9 type:<root>.J
BLOCK_BODY
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:a type:kotlin.Int visibility:public' type=kotlin.Int origin=null
receiver: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
CALL 'public open fun foo (): kotlin.Unit declared in <root>.A' type=kotlin.Unit origin=null
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:a type:kotlin.Int visibility:public' type=kotlin.Int origin=null
receiver: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
CALL 'public open fun foo (): kotlin.Unit declared in <root>.B' type=kotlin.Unit origin=null
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:a type:kotlin.Int visibility:public' type=kotlin.Int origin=null
receiver: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
CALL 'public open fun foo (): kotlin.Unit declared in <root>.C' type=kotlin.Unit origin=null
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:a type:kotlin.Int visibility:public' type=kotlin.Int origin=null
receiver: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
CALL 'public open fun foo (): kotlin.Unit declared in <root>.D' type=kotlin.Unit origin=null
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:a type:kotlin.Int visibility:protected/*protected and package*/' type=kotlin.Int origin=null
receiver: GET_VAR 'e: <root>.E declared in <root>.test' type=<root>.E origin=null
CALL 'protected/*protected and package*/ open fun foo (): kotlin.Unit declared in <root>.E' type=kotlin.Unit origin=null
$this: GET_VAR 'e: <root>.E declared in <root>.test' type=<root>.E origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:a type:kotlin.Int visibility:protected/*protected and package*/' type=kotlin.Int origin=null
receiver: GET_VAR 'f: <root>.F declared in <root>.test' type=<root>.F origin=null
CALL 'public open fun foo (): kotlin.Unit declared in <root>.F' type=kotlin.Unit origin=null
$this: GET_VAR 'f: <root>.F declared in <root>.test' type=<root>.F origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:a type:kotlin.Int visibility:protected/*protected and package*/' type=kotlin.Int origin=null
receiver: GET_VAR 'g: <root>.G declared in <root>.test' type=<root>.G origin=null
CALL 'protected/*protected and package*/ open fun foo (): kotlin.Unit declared in <root>.G' type=kotlin.Unit origin=null
$this: GET_VAR 'g: <root>.G declared in <root>.test' type=<root>.G origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:a type:kotlin.Int visibility:protected/*protected and package*/' type=kotlin.Int origin=null
receiver: GET_VAR 'h: <root>.H declared in <root>.test' type=<root>.H origin=null
CALL 'public open fun foo (): kotlin.Unit declared in <root>.H' type=kotlin.Unit origin=null
$this: GET_VAR 'h: <root>.H declared in <root>.test' type=<root>.H origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public final fun <get-a> (): kotlin.Int declared in <root>.J' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR 'j: <root>.J declared in <root>.test' type=<root>.J origin=null
CALL 'public final fun foo (): kotlin.Unit declared in <root>.J' type=kotlin.Unit origin=null
$this: GET_VAR 'j: <root>.J declared in <root>.test' type=<root>.J origin=null
@@ -0,0 +1,105 @@
// TARGET_BACKEND: JVM
// MODULE: separate
// FILE: JavaSeparate1.java
public class JavaSeparate1 {
protected int a = 22;
protected void foo(){}
}
// FILE: JavaSeparate2.java
public class JavaSeparate2 {
int a = 23;
void foo(){}
}
// FILE: JavaSeparate3.java
public class JavaSeparate3 {
private int a = 24;
private void foo(){}
}
// MODULE: main(separate)
// FILE: Java1.java
public class Java1 extends JavaSeparate1 {
public int a = 12;
public void foo() {}
}
// FILE: Java2.java
public class Java2 extends JavaSeparate2 {
public int a = 13;
public void foo() {}
}
// FILE: Java3.java
public class Java3 extends JavaSeparate3 {
protected int a = 14;
protected void foo(){}
}
// FILE: Java4.java
public class Java4 extends JavaSeparate2 {
protected int a = 15;
protected void foo(){}
}
// FILE: Java5.java
public class Java5 extends JavaSeparate2 {
private int a = 16;
private void foo() {}
}
// FILE: test.kt
class A : Java1() //public + protected
class B : Java1() {
override fun foo() {}
}
class C : Java2() //public + default
class D : Java2() {
override fun foo() {}
}
class E : Java3() //protected + private
class F : Java3() {
public override fun foo() {}
}
class G : Java4() //protected + default
class H : Java4() {
public override fun foo() {}
}
class I : Java5() //private + default
class J : Java5() {
val a : Int = 10
fun foo() {}
}
fun test(a: A, b: B, c: C, d: D, e: E, f: F, g: G, h: H, i: I, j: J) {
a.a
a.foo()
b.a
b.foo()
c.a
c.foo()
d.a
d.foo()
e.a
e.foo()
f.a
f.foo()
g.a
g.foo()
h.a
h.foo()
j.a
j.foo()
}
@@ -0,0 +1,133 @@
// MODULE: separate
// MODULE: main
// FILE: test.kt
class A : Java1 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
}
class B : Java1 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
override fun foo() {
}
}
class C : Java2 {
constructor() /* primary */ {
super/*Java2*/()
/* <init>() */
}
}
class D : Java2 {
constructor() /* primary */ {
super/*Java2*/()
/* <init>() */
}
override fun foo() {
}
}
class E : Java3 {
constructor() /* primary */ {
super/*Java3*/()
/* <init>() */
}
}
class F : Java3 {
constructor() /* primary */ {
super/*Java3*/()
/* <init>() */
}
override fun foo() {
}
}
class G : Java4 {
constructor() /* primary */ {
super/*Java4*/()
/* <init>() */
}
}
class H : Java4 {
constructor() /* primary */ {
super/*Java4*/()
/* <init>() */
}
override fun foo() {
}
}
class I : Java5 {
constructor() /* primary */ {
super/*Java5*/()
/* <init>() */
}
}
class J : Java5 {
val a: Int
field = 10
get
constructor() /* primary */ {
super/*Java5*/()
/* <init>() */
}
fun foo() {
}
}
fun test(a: A, b: B, c: C, d: D, e: E, f: F, g: G, h: H, i: I, j: J) {
a(super<A>).#a /*~> Unit */
a.foo()
b(super<B>).#a /*~> Unit */
b.foo()
c(super<C>).#a /*~> Unit */
c.foo()
d(super<D>).#a /*~> Unit */
d.foo()
e(super<E>).#a /*~> Unit */
e.foo()
f(super<F>).#a /*~> Unit */
f.foo()
g(super<G>).#a /*~> Unit */
g.foo()
h(super<H>).#a /*~> Unit */
h.foo()
j.<get-a>() /*~> Unit */
j.foo()
}
@@ -0,0 +1,194 @@
// MODULE: separate
// MODULE: main
// FILE: test.kt
// CHECK:
// Mangled name: A
// Public signature: /A|null[0]
class A : Java1 {
// CHECK:
// Mangled name: A#<init>(){}
// Public signature: /A.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: A#foo(){}
// Public signature: /A.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
/* fake */ override fun foo(): Unit
}
// CHECK:
// Mangled name: B
// Public signature: /B|null[0]
class B : Java1 {
// CHECK:
// Mangled name: B#<init>(){}
// Public signature: /B.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: B#foo(){}
// Public signature: /B.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
override fun foo(): Unit
}
// CHECK:
// Mangled name: C
// Public signature: /C|null[0]
class C : Java2 {
// CHECK:
// Mangled name: C#<init>(){}
// Public signature: /C.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: C#foo(){}
// Public signature: /C.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
/* fake */ override fun foo(): Unit
}
// CHECK:
// Mangled name: D
// Public signature: /D|null[0]
class D : Java2 {
// CHECK:
// Mangled name: D#<init>(){}
// Public signature: /D.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: D#foo(){}
// Public signature: /D.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
override fun foo(): Unit
}
// CHECK:
// Mangled name: E
// Public signature: /E|null[0]
class E : Java3 {
// CHECK:
// Mangled name: E#<init>(){}
// Public signature: /E.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: E#foo(){}
// Public signature: /E.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
protected_and_package /* fake */ override fun foo(): Unit
}
// CHECK:
// Mangled name: F
// Public signature: /F|null[0]
class F : Java3 {
// CHECK:
// Mangled name: F#<init>(){}
// Public signature: /F.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: F#foo(){}
// Public signature: /F.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
override fun foo(): Unit
}
// CHECK:
// Mangled name: G
// Public signature: /G|null[0]
class G : Java4 {
// CHECK:
// Mangled name: G#<init>(){}
// Public signature: /G.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: G#foo(){}
// Public signature: /G.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
protected_and_package /* fake */ override fun foo(): Unit
}
// CHECK:
// Mangled name: H
// Public signature: /H|null[0]
class H : Java4 {
// CHECK:
// Mangled name: H#<init>(){}
// Public signature: /H.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: H#foo(){}
// Public signature: /H.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
override fun foo(): Unit
}
// CHECK:
// Mangled name: I
// Public signature: /I|null[0]
class I : Java5 {
// CHECK:
// Mangled name: I#<init>(){}
// Public signature: /I.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
}
// CHECK:
// Mangled name: J
// Public signature: /J|null[0]
class J : Java5 {
// CHECK:
// Mangled name: J{}a
// Public signature: /J.a|-1200697420457237799[0]
// Public signature debug description: {}a
val a: Int
// CHECK JVM_IR:
// Mangled name: J#<get-a>(){}kotlin.Int
// Public signature: /J.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
get
// CHECK:
// Mangled name: J#<init>(){}
// Public signature: /J.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: J#foo(){}
// Public signature: /J.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
fun foo(): Unit
}
// CHECK:
// Mangled name: #test(A;B;C;D;E;F;G;H;I;J){}
// Public signature: /test|-6013363711736718138[0]
// Public signature debug description: test(A;B;C;D;E;F;G;H;I;J){}
fun test(a: A, b: B, c: C, d: D, e: E, f: F, g: G, h: H, i: I, j: J): Unit
@@ -0,0 +1,402 @@
Module: separate
FILE fqName:<root> fileName:/KotlinInternal.kt
CLASS CLASS name:KotlinInternal modality:OPEN visibility:public superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.KotlinInternal
CONSTRUCTOR visibility:public <> () returnType:<root>.KotlinInternal [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:KotlinInternal modality:OPEN visibility:public superTypes:[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 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:foo visibility:internal modality:OPEN <> ($this:<root>.KotlinInternal) returnType:kotlin.Unit
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInternal
BLOCK_BODY
PROPERTY name:a visibility:internal modality:OPEN [val]
FUN name:<get-a> visibility:internal modality:OPEN <> ($this:<root>.KotlinInternal) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a visibility:internal modality:OPEN [val]
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInternal
BLOCK_BODY
RETURN type=kotlin.Nothing from='internal open fun <get-a> (): kotlin.Int declared in <root>.KotlinInternal'
CONST Int type=kotlin.Int value=1
Module: main
FILE fqName:<root> fileName:/test.kt
CLASS CLASS name:A modality:FINAL visibility:public superTypes:[<root>.Java1]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.A
CONSTRUCTOR visibility:public <> () returnType:<root>.A [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java1'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:A modality:FINAL visibility:public superTypes:[<root>.Java1]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java1
$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 <root>.Java1
$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 <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:B modality:FINAL visibility:public superTypes:[<root>.Java2]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.B
CONSTRUCTOR visibility:public <> () returnType:<root>.B [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java2'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:B modality:FINAL visibility:public superTypes:[<root>.Java2]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:public modality:OPEN <> ($this:<root>.Java2) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (): kotlin.Unit declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.Java2
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 <root>.Java2
$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 <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:C modality:FINAL visibility:public superTypes:[<root>.Java2]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.C
PROPERTY name:a visibility:public modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.Int visibility:private [final]
EXPRESSION_BODY
CONST Int type=kotlin.Int value=10
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-a> visibility:public modality:FINAL <> ($this:<root>.C) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a visibility:public modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.C
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-a> (): kotlin.Int declared in <root>.C'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.C declared in <root>.C.<get-a>' type=<root>.C origin=null
CONSTRUCTOR visibility:public <> () returnType:<root>.C [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java2'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:C modality:FINAL visibility:public superTypes:[<root>.Java2]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java2
$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 <root>.Java2
$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 <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.C) returnType:kotlin.Unit
overridden:
public open fun foo (): kotlin.Unit declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.C
BLOCK_BODY
CLASS CLASS name:D modality:FINAL visibility:public superTypes:[<root>.Java3]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.D
CONSTRUCTOR visibility:public <> () returnType:<root>.D [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java3'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:D modality:FINAL visibility:public superTypes:[<root>.Java3]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:protected/*protected and package*/ modality:OPEN <> ($this:<root>.Java3) returnType:kotlin.Unit [fake_override]
overridden:
protected/*protected and package*/ open fun foo (): kotlin.Unit declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.Java3
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 <root>.Java3
$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 <root>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:E modality:FINAL visibility:public superTypes:[<root>.Java3]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.E
PROPERTY name:a visibility:public modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.Int visibility:private [final]
EXPRESSION_BODY
CONST Int type=kotlin.Int value=10
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-a> visibility:public modality:FINAL <> ($this:<root>.E) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a visibility:public modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.E
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-a> (): kotlin.Int declared in <root>.E'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.E declared in <root>.E.<get-a>' type=<root>.E origin=null
CONSTRUCTOR visibility:public <> () returnType:<root>.E [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java3'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:E modality:FINAL visibility:public superTypes:[<root>.Java3]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java3
$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 <root>.Java3
$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 <root>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.E) returnType:kotlin.Unit
overridden:
protected/*protected and package*/ open fun foo (): kotlin.Unit declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.E
BLOCK_BODY
CLASS CLASS name:F modality:FINAL visibility:public superTypes:[<root>.Java4]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.F
CONSTRUCTOR visibility:public <> () returnType:<root>.F [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java4'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:F modality:FINAL visibility:public superTypes:[<root>.Java4]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java4
$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 <root>.Java4
$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 <root>.Java4
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:G modality:FINAL visibility:public superTypes:[<root>.Java5]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.G
CONSTRUCTOR visibility:public <> () returnType:<root>.G [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java5'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:G modality:FINAL visibility:public superTypes:[<root>.Java5]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java5
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:public/*package*/ modality:OPEN <> ($this:<root>.Java5) returnType:kotlin.Unit [fake_override]
overridden:
public/*package*/ open fun foo (): kotlin.Unit declared in <root>.Java5
$this: VALUE_PARAMETER name:<this> type:<root>.Java5
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 <root>.Java5
$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 <root>.Java5
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:H modality:FINAL visibility:public superTypes:[<root>.Java5]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.H
PROPERTY name:a visibility:public modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.Int visibility:private [final]
EXPRESSION_BODY
CONST Int type=kotlin.Int value=10
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-a> visibility:public modality:FINAL <> ($this:<root>.H) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a visibility:public modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.H
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-a> (): kotlin.Int declared in <root>.H'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.H declared in <root>.H.<get-a>' type=<root>.H origin=null
CONSTRUCTOR visibility:public <> () returnType:<root>.H [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java5'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:H modality:FINAL visibility:public superTypes:[<root>.Java5]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java5
$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 <root>.Java5
$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 <root>.Java5
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.H) returnType:kotlin.Unit
overridden:
public/*package*/ open fun foo (): kotlin.Unit declared in <root>.Java5
$this: VALUE_PARAMETER name:<this> type:<root>.H
BLOCK_BODY
CLASS CLASS name:I modality:ABSTRACT visibility:public superTypes:[<root>.JavaPublic; <root>.KotlinInternal]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.I
CONSTRUCTOR visibility:public <> () returnType:<root>.I [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.KotlinInternal'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:I modality:ABSTRACT visibility:public superTypes:[<root>.JavaPublic; <root>.KotlinInternal]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.JavaPublic
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.KotlinInternal
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:public modality:ABSTRACT <> ($this:<root>.JavaPublic) returnType:kotlin.Unit [fake_override]
overridden:
public abstract fun foo (): kotlin.Unit declared in <root>.JavaPublic
$this: VALUE_PARAMETER name:<this> type:<root>.JavaPublic
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 <root>.JavaPublic
public open fun hashCode (): kotlin.Int declared in <root>.KotlinInternal
$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 <root>.JavaPublic
public open fun toString (): kotlin.String declared in <root>.KotlinInternal
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:J modality:FINAL visibility:public superTypes:[<root>.JavaPublic; <root>.KotlinInternal]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.J
PROPERTY name:a visibility:public modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.Int visibility:private [final]
EXPRESSION_BODY
CONST Int type=kotlin.Int value=10
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-a> visibility:public modality:FINAL <> ($this:<root>.J) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a visibility:public modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.J
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-a> (): kotlin.Int declared in <root>.J'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.J declared in <root>.J.<get-a>' type=<root>.J origin=null
CONSTRUCTOR visibility:public <> () returnType:<root>.J [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.KotlinInternal'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:J modality:FINAL visibility:public superTypes:[<root>.JavaPublic; <root>.KotlinInternal]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.JavaPublic
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.KotlinInternal
$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 <root>.JavaPublic
public open fun hashCode (): kotlin.Int declared in <root>.KotlinInternal
$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 <root>.JavaPublic
public open fun toString (): kotlin.String declared in <root>.KotlinInternal
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.J) returnType:kotlin.Unit
overridden:
public abstract fun foo (): kotlin.Unit declared in <root>.JavaPublic
$this: VALUE_PARAMETER name:<this> type:<root>.J
BLOCK_BODY
CLASS CLASS name:K modality:FINAL visibility:public superTypes:[<root>.JavaDefault; <root>.KotlinInternal]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.K
PROPERTY name:a visibility:public modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.Int visibility:private [final]
EXPRESSION_BODY
CONST Int type=kotlin.Int value=10
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-a> visibility:public modality:FINAL <> ($this:<root>.K) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a visibility:public modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.K
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-a> (): kotlin.Int declared in <root>.K'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.K declared in <root>.K.<get-a>' type=<root>.K origin=null
CONSTRUCTOR visibility:public <> () returnType:<root>.K [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.KotlinInternal'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:K modality:FINAL visibility:public superTypes:[<root>.JavaDefault; <root>.KotlinInternal]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.JavaDefault
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.KotlinInternal
$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 <root>.JavaDefault
public open fun hashCode (): kotlin.Int declared in <root>.KotlinInternal
$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 <root>.JavaDefault
public open fun toString (): kotlin.String declared in <root>.KotlinInternal
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.K) returnType:kotlin.Unit
overridden:
public abstract fun foo (): kotlin.Unit declared in <root>.JavaDefault
$this: VALUE_PARAMETER name:<this> type:<root>.K
BLOCK_BODY
FUN name:test visibility:public modality:FINAL <> (a:<root>.A, b:<root>.B, c:<root>.C, d:<root>.D, e:<root>.E, f:<root>.F, g:<root>.G, h:<root>.H, i:<root>.I, j:<root>.J, k:<root>.K) returnType:kotlin.Unit
VALUE_PARAMETER name:a index:0 type:<root>.A
VALUE_PARAMETER name:b index:1 type:<root>.B
VALUE_PARAMETER name:c index:2 type:<root>.C
VALUE_PARAMETER name:d index:3 type:<root>.D
VALUE_PARAMETER name:e index:4 type:<root>.E
VALUE_PARAMETER name:f index:5 type:<root>.F
VALUE_PARAMETER name:g index:6 type:<root>.G
VALUE_PARAMETER name:h index:7 type:<root>.H
VALUE_PARAMETER name:i index:8 type:<root>.I
VALUE_PARAMETER name:j index:9 type:<root>.J
VALUE_PARAMETER name:k index:10 type:<root>.K
BLOCK_BODY
CALL 'public open fun foo (): kotlin.Unit declared in <root>.B' type=kotlin.Unit origin=null
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:a type:kotlin.Int visibility:public' type=kotlin.Int origin=null
receiver: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
CALL 'public open fun foo (): kotlin.Unit declared in <root>.C' type=kotlin.Unit origin=null
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public final fun <get-a> (): kotlin.Int declared in <root>.C' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
CALL 'protected/*protected and package*/ open fun foo (): kotlin.Unit declared in <root>.D' type=kotlin.Unit origin=null
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:a type:kotlin.Int visibility:protected/*protected and package*/' type=kotlin.Int origin=null
receiver: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
CALL 'public open fun foo (): kotlin.Unit declared in <root>.E' type=kotlin.Unit origin=null
$this: GET_VAR 'e: <root>.E declared in <root>.test' type=<root>.E origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public final fun <get-a> (): kotlin.Int declared in <root>.E' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR 'e: <root>.E declared in <root>.test' type=<root>.E origin=null
CALL 'public/*package*/ open fun foo (): kotlin.Unit declared in <root>.G' type=kotlin.Unit origin=null
$this: GET_VAR 'g: <root>.G declared in <root>.test' type=<root>.G origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:a type:kotlin.Int visibility:public/*package*/' type=kotlin.Int origin=null
receiver: GET_VAR 'g: <root>.G declared in <root>.test' type=<root>.G origin=null
CALL 'public open fun foo (): kotlin.Unit declared in <root>.H' type=kotlin.Unit origin=null
$this: GET_VAR 'h: <root>.H declared in <root>.test' type=<root>.H origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public final fun <get-a> (): kotlin.Int declared in <root>.H' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR 'h: <root>.H declared in <root>.test' type=<root>.H origin=null
CALL 'public abstract fun foo (): kotlin.Unit declared in <root>.I' type=kotlin.Unit origin=null
$this: GET_VAR 'i: <root>.I declared in <root>.test' type=<root>.I origin=null
CALL 'public open fun foo (): kotlin.Unit declared in <root>.J' type=kotlin.Unit origin=null
$this: GET_VAR 'j: <root>.J declared in <root>.test' type=<root>.J origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public final fun <get-a> (): kotlin.Int declared in <root>.J' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR 'j: <root>.J declared in <root>.test' type=<root>.J origin=null
CALL 'public open fun foo (): kotlin.Unit declared in <root>.K' type=kotlin.Unit origin=null
$this: GET_VAR 'k: <root>.K declared in <root>.test' type=<root>.K origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public final fun <get-a> (): kotlin.Int declared in <root>.K' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR 'k: <root>.K declared in <root>.test' type=<root>.K origin=null
@@ -0,0 +1,176 @@
// MODULE: separate
// FILE: KotlinInternal.kt
open class KotlinInternal {
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
internal open fun foo() {
}
internal open val a: Int
internal open get(): Int {
return 1
}
}
// MODULE: main
// FILE: test.kt
class A : Java1 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
}
class B : Java2 {
constructor() /* primary */ {
super/*Java2*/()
/* <init>() */
}
}
class C : Java2 {
val a: Int
field = 10
get
constructor() /* primary */ {
super/*Java2*/()
/* <init>() */
}
override fun foo() {
}
}
class D : Java3 {
constructor() /* primary */ {
super/*Java3*/()
/* <init>() */
}
}
class E : Java3 {
val a: Int
field = 10
get
constructor() /* primary */ {
super/*Java3*/()
/* <init>() */
}
override fun foo() {
}
}
class F : Java4 {
constructor() /* primary */ {
super/*Java4*/()
/* <init>() */
}
}
class G : Java5 {
constructor() /* primary */ {
super/*Java5*/()
/* <init>() */
}
}
class H : Java5 {
val a: Int
field = 10
get
constructor() /* primary */ {
super/*Java5*/()
/* <init>() */
}
override fun foo() {
}
}
abstract class I : KotlinInternal, JavaPublic {
constructor() /* primary */ {
super/*KotlinInternal*/()
/* <init>() */
}
}
class J : KotlinInternal, JavaPublic {
val a: Int
field = 10
get
constructor() /* primary */ {
super/*KotlinInternal*/()
/* <init>() */
}
override fun foo() {
}
}
class K : KotlinInternal, JavaDefault {
val a: Int
field = 10
get
constructor() /* primary */ {
super/*KotlinInternal*/()
/* <init>() */
}
override fun foo() {
}
}
fun test(a: A, b: B, c: C, d: D, e: E, f: F, g: G, h: H, i: I, j: J, k: K) {
b.foo()
b.#a /*~> Unit */
c.foo()
c.<get-a>() /*~> Unit */
d.foo()
d.#a /*~> Unit */
e.foo()
e.<get-a>() /*~> Unit */
g.foo()
g.#a /*~> Unit */
h.foo()
h.<get-a>() /*~> Unit */
i.foo()
j.foo()
j.<get-a>() /*~> Unit */
k.foo()
k.<get-a>() /*~> Unit */
}
@@ -0,0 +1,316 @@
Module: separate
FILE fqName:<root> fileName:/KotlinInternal.kt
CLASS CLASS name:KotlinInternal modality:OPEN visibility:public superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.KotlinInternal
CONSTRUCTOR visibility:public <> () returnType:<root>.KotlinInternal [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:KotlinInternal modality:OPEN visibility:public superTypes:[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 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:foo visibility:internal modality:OPEN <> ($this:<root>.KotlinInternal) returnType:kotlin.Unit
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInternal
BLOCK_BODY
PROPERTY name:a visibility:internal modality:OPEN [val]
FUN name:<get-a> visibility:internal modality:OPEN <> ($this:<root>.KotlinInternal) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a visibility:internal modality:OPEN [val]
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInternal
BLOCK_BODY
RETURN type=kotlin.Nothing from='internal open fun <get-a> (): kotlin.Int declared in <root>.KotlinInternal'
CONST Int type=kotlin.Int value=1
Module: main
FILE fqName:<root> fileName:/test.kt
CLASS CLASS name:A modality:FINAL visibility:public superTypes:[<root>.Java1]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.A
CONSTRUCTOR visibility:public <> () returnType:<root>.A [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java1'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:A modality:FINAL visibility:public superTypes:[<root>.Java1]'
CLASS CLASS name:B modality:FINAL visibility:public superTypes:[<root>.Java2]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.B
CONSTRUCTOR visibility:public <> () returnType:<root>.B [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java2'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:B modality:FINAL visibility:public superTypes:[<root>.Java2]'
FUN FAKE_OVERRIDE name:foo visibility:public modality:OPEN <> ($this:<root>.Java2) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (): kotlin.Unit declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.Java2
PROPERTY FAKE_OVERRIDE name:a visibility:public modality:FINAL [fake_override,var]
overridden:
public final a: kotlin.Int
CLASS CLASS name:C modality:FINAL visibility:public superTypes:[<root>.Java2]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.C
PROPERTY name:a visibility:public modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.Int visibility:private [final]
EXPRESSION_BODY
CONST Int type=kotlin.Int value=10
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-a> visibility:public modality:FINAL <> ($this:<root>.C) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a visibility:public modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.C
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-a> (): kotlin.Int declared in <root>.C'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.C declared in <root>.C.<get-a>' type=<root>.C origin=null
CONSTRUCTOR visibility:public <> () returnType:<root>.C [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java2'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:C modality:FINAL visibility:public superTypes:[<root>.Java2]'
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.C) returnType:kotlin.Unit
overridden:
public open fun foo (): kotlin.Unit declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.C
BLOCK_BODY
PROPERTY FAKE_OVERRIDE name:a visibility:public modality:FINAL [fake_override,var]
overridden:
public final a: kotlin.Int
CLASS CLASS name:D modality:FINAL visibility:public superTypes:[<root>.Java3]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.D
CONSTRUCTOR visibility:public <> () returnType:<root>.D [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java3'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:D modality:FINAL visibility:public superTypes:[<root>.Java3]'
FUN FAKE_OVERRIDE name:foo visibility:protected/*protected and package*/ modality:OPEN <> ($this:<root>.Java3) returnType:kotlin.Unit [fake_override]
overridden:
protected/*protected and package*/ open fun foo (): kotlin.Unit declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.Java3
PROPERTY FAKE_OVERRIDE name:a visibility:protected/*protected and package*/ modality:FINAL [fake_override,var]
overridden:
protected/*protected and package*/ final a: kotlin.Int
CLASS CLASS name:E modality:FINAL visibility:public superTypes:[<root>.Java3]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.E
PROPERTY name:a visibility:public modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.Int visibility:private [final]
EXPRESSION_BODY
CONST Int type=kotlin.Int value=10
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-a> visibility:public modality:FINAL <> ($this:<root>.E) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a visibility:public modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.E
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-a> (): kotlin.Int declared in <root>.E'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.E declared in <root>.E.<get-a>' type=<root>.E origin=null
CONSTRUCTOR visibility:public <> () returnType:<root>.E [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java3'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:E modality:FINAL visibility:public superTypes:[<root>.Java3]'
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.E) returnType:kotlin.Unit
overridden:
protected/*protected and package*/ open fun foo (): kotlin.Unit declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.E
BLOCK_BODY
PROPERTY FAKE_OVERRIDE name:a visibility:protected/*protected and package*/ modality:FINAL [fake_override,var]
overridden:
protected/*protected and package*/ final a: kotlin.Int
CLASS CLASS name:F modality:FINAL visibility:public superTypes:[<root>.Java4]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.F
CONSTRUCTOR visibility:public <> () returnType:<root>.F [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java4'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:F modality:FINAL visibility:public superTypes:[<root>.Java4]'
CLASS CLASS name:G modality:FINAL visibility:public superTypes:[<root>.Java5]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.G
CONSTRUCTOR visibility:public <> () returnType:<root>.G [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java5'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:G modality:FINAL visibility:public superTypes:[<root>.Java5]'
FUN FAKE_OVERRIDE name:foo visibility:public/*package*/ modality:OPEN <> ($this:<root>.Java5) returnType:kotlin.Unit [fake_override]
overridden:
public/*package*/ open fun foo (): kotlin.Unit declared in <root>.Java5
$this: VALUE_PARAMETER name:<this> type:<root>.Java5
PROPERTY FAKE_OVERRIDE name:a visibility:public/*package*/ modality:FINAL [fake_override,var]
overridden:
public/*package*/ final a: kotlin.Int
CLASS CLASS name:H modality:FINAL visibility:public superTypes:[<root>.Java5]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.H
PROPERTY name:a visibility:public modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.Int visibility:private [final]
EXPRESSION_BODY
CONST Int type=kotlin.Int value=10
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-a> visibility:public modality:FINAL <> ($this:<root>.H) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a visibility:public modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.H
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-a> (): kotlin.Int declared in <root>.H'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.H declared in <root>.H.<get-a>' type=<root>.H origin=null
CONSTRUCTOR visibility:public <> () returnType:<root>.H [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java5'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:H modality:FINAL visibility:public superTypes:[<root>.Java5]'
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.H) returnType:kotlin.Unit
overridden:
public/*package*/ open fun foo (): kotlin.Unit declared in <root>.Java5
$this: VALUE_PARAMETER name:<this> type:<root>.H
BLOCK_BODY
PROPERTY FAKE_OVERRIDE name:a visibility:public/*package*/ modality:FINAL [fake_override,var]
overridden:
public/*package*/ final a: kotlin.Int
CLASS CLASS name:I modality:ABSTRACT visibility:public superTypes:[<root>.JavaPublic; <root>.KotlinInternal]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.I
CONSTRUCTOR visibility:public <> () returnType:<root>.I [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.KotlinInternal'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:I modality:ABSTRACT visibility:public superTypes:[<root>.JavaPublic; <root>.KotlinInternal]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.JavaPublic
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.KotlinInternal
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:public modality:ABSTRACT <> ($this:<root>.JavaPublic) returnType:kotlin.Unit [fake_override]
overridden:
public abstract fun foo (): kotlin.Unit declared in <root>.JavaPublic
$this: VALUE_PARAMETER name:<this> type:<root>.JavaPublic
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 <root>.JavaPublic
public open fun hashCode (): kotlin.Int declared in <root>.KotlinInternal
$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 <root>.JavaPublic
public open fun toString (): kotlin.String declared in <root>.KotlinInternal
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:J modality:FINAL visibility:public superTypes:[<root>.JavaPublic; <root>.KotlinInternal]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.J
PROPERTY name:a visibility:public modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.Int visibility:private [final]
EXPRESSION_BODY
CONST Int type=kotlin.Int value=10
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-a> visibility:public modality:FINAL <> ($this:<root>.J) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a visibility:public modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.J
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-a> (): kotlin.Int declared in <root>.J'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.J declared in <root>.J.<get-a>' type=<root>.J origin=null
CONSTRUCTOR visibility:public <> () returnType:<root>.J [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.KotlinInternal'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:J modality:FINAL visibility:public superTypes:[<root>.JavaPublic; <root>.KotlinInternal]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.JavaPublic
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.KotlinInternal
$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 <root>.JavaPublic
public open fun hashCode (): kotlin.Int declared in <root>.KotlinInternal
$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 <root>.JavaPublic
public open fun toString (): kotlin.String declared in <root>.KotlinInternal
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.J) returnType:kotlin.Unit
overridden:
public abstract fun foo (): kotlin.Unit declared in <root>.JavaPublic
$this: VALUE_PARAMETER name:<this> type:<root>.J
BLOCK_BODY
CLASS CLASS name:K modality:FINAL visibility:public superTypes:[<root>.JavaDefault; <root>.KotlinInternal]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.K
PROPERTY name:a visibility:public modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.Int visibility:private [final]
EXPRESSION_BODY
CONST Int type=kotlin.Int value=10
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-a> visibility:public modality:FINAL <> ($this:<root>.K) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a visibility:public modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.K
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-a> (): kotlin.Int declared in <root>.K'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.K declared in <root>.K.<get-a>' type=<root>.K origin=null
CONSTRUCTOR visibility:public <> () returnType:<root>.K [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.KotlinInternal'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:K modality:FINAL visibility:public superTypes:[<root>.JavaDefault; <root>.KotlinInternal]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.JavaDefault
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.KotlinInternal
$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 <root>.JavaDefault
public open fun hashCode (): kotlin.Int declared in <root>.KotlinInternal
$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 <root>.JavaDefault
public open fun toString (): kotlin.String declared in <root>.KotlinInternal
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.K) returnType:kotlin.Unit
overridden:
public abstract fun foo (): kotlin.Unit declared in <root>.JavaDefault
$this: VALUE_PARAMETER name:<this> type:<root>.K
BLOCK_BODY
FUN name:test visibility:public modality:FINAL <> (a:<root>.A, b:<root>.B, c:<root>.C, d:<root>.D, e:<root>.E, f:<root>.F, g:<root>.G, h:<root>.H, i:<root>.I, j:<root>.J, k:<root>.K) returnType:kotlin.Unit
VALUE_PARAMETER name:a index:0 type:<root>.A
VALUE_PARAMETER name:b index:1 type:<root>.B
VALUE_PARAMETER name:c index:2 type:<root>.C
VALUE_PARAMETER name:d index:3 type:<root>.D
VALUE_PARAMETER name:e index:4 type:<root>.E
VALUE_PARAMETER name:f index:5 type:<root>.F
VALUE_PARAMETER name:g index:6 type:<root>.G
VALUE_PARAMETER name:h index:7 type:<root>.H
VALUE_PARAMETER name:i index:8 type:<root>.I
VALUE_PARAMETER name:j index:9 type:<root>.J
VALUE_PARAMETER name:k index:10 type:<root>.K
BLOCK_BODY
CALL 'public open fun foo (): kotlin.Unit declared in <root>.B' type=kotlin.Unit origin=null
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:a type:kotlin.Int visibility:public' type=kotlin.Int origin=null
receiver: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
CALL 'public open fun foo (): kotlin.Unit declared in <root>.C' type=kotlin.Unit origin=null
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:a type:kotlin.Int visibility:public' type=kotlin.Int origin=null
receiver: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
CALL 'protected/*protected and package*/ open fun foo (): kotlin.Unit declared in <root>.D' type=kotlin.Unit origin=null
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:a type:kotlin.Int visibility:protected/*protected and package*/' type=kotlin.Int origin=null
receiver: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
CALL 'public open fun foo (): kotlin.Unit declared in <root>.E' type=kotlin.Unit origin=null
$this: GET_VAR 'e: <root>.E declared in <root>.test' type=<root>.E origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:a type:kotlin.Int visibility:protected/*protected and package*/' type=kotlin.Int origin=null
receiver: GET_VAR 'e: <root>.E declared in <root>.test' type=<root>.E origin=null
CALL 'public/*package*/ open fun foo (): kotlin.Unit declared in <root>.G' type=kotlin.Unit origin=null
$this: GET_VAR 'g: <root>.G declared in <root>.test' type=<root>.G origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:a type:kotlin.Int visibility:public/*package*/' type=kotlin.Int origin=null
receiver: GET_VAR 'g: <root>.G declared in <root>.test' type=<root>.G origin=null
CALL 'public open fun foo (): kotlin.Unit declared in <root>.H' type=kotlin.Unit origin=null
$this: GET_VAR 'h: <root>.H declared in <root>.test' type=<root>.H origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:a type:kotlin.Int visibility:public/*package*/' type=kotlin.Int origin=null
receiver: GET_VAR 'h: <root>.H declared in <root>.test' type=<root>.H origin=null
CALL 'public abstract fun foo (): kotlin.Unit declared in <root>.I' type=kotlin.Unit origin=null
$this: GET_VAR 'i: <root>.I declared in <root>.test' type=<root>.I origin=null
CALL 'public open fun foo (): kotlin.Unit declared in <root>.J' type=kotlin.Unit origin=null
$this: GET_VAR 'j: <root>.J declared in <root>.test' type=<root>.J origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public final fun <get-a> (): kotlin.Int declared in <root>.J' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR 'j: <root>.J declared in <root>.test' type=<root>.J origin=null
CALL 'public open fun foo (): kotlin.Unit declared in <root>.K' type=kotlin.Unit origin=null
$this: GET_VAR 'k: <root>.K declared in <root>.test' type=<root>.K origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public final fun <get-a> (): kotlin.Int declared in <root>.K' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR 'k: <root>.K declared in <root>.test' type=<root>.K origin=null
@@ -0,0 +1,117 @@
// TARGET_BACKEND: JVM
// MODULE: separate
// FILE: KotlinInternal.kt
open class KotlinInternal {
internal open val a : Int
get() = 1
internal open fun foo(){}
}
// MODULE: main(separate)
// FILE: Java1.java
public class Java1 extends KotlinInternal {}
// FILE: Java2.java
public class Java2 extends KotlinInternal {
public int a = 7;
public void foo() {}
}
// FILE: Java3.java
public class Java3 extends KotlinInternal {
protected int a = 12;
protected void foo() {}
}
// FILE: Java4.java
public class Java4 extends KotlinInternal {
private int a = 16;
private void foo() {}
}
// FILE: Java5.java
public class Java5 extends KotlinInternal {
int a = 5;
void foo(){}
}
// FILE: JavaPublic.java
public interface JavaPublic {
public int a = 2;
public void foo();
}
// FILE: JavaDefault.java
public interface JavaDefault {
int a = 2;
void foo();
}
// FILE: test.kt
class A : Java1()
class B : Java2()
class C: Java2() {
override fun foo() {}
val a = 10
}
class D : Java3()
class E : Java3() {
public override fun foo() {}
val a = 10
}
class F : Java4()
class G : Java5()
class H : Java5() {
public override fun foo() {}
val a = 10
}
abstract class I : JavaPublic, KotlinInternal()
class J : JavaPublic, KotlinInternal() {
public override fun foo() {}
val a = 10
}
class K : JavaDefault, KotlinInternal() {
public override fun foo() {}
val a = 10
}
fun test(a: A, b: B, c: C, d: D, e: E, f: F, g: G, h: H, i: I, j: J, k: K){
b.foo()
b.a
c.foo()
c.a
d.foo()
d.a
e.foo()
e.a
g.foo()
g.a
h.foo()
h.a
i.foo()
j.foo()
j.a
k.foo()
k.a
}
@@ -0,0 +1,176 @@
// MODULE: separate
// FILE: KotlinInternal.kt
open class KotlinInternal {
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
internal open fun foo() {
}
internal open val a: Int
internal open get(): Int {
return 1
}
}
// MODULE: main
// FILE: test.kt
class A : Java1 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
}
class B : Java2 {
constructor() /* primary */ {
super/*Java2*/()
/* <init>() */
}
}
class C : Java2 {
val a: Int
field = 10
get
constructor() /* primary */ {
super/*Java2*/()
/* <init>() */
}
override fun foo() {
}
}
class D : Java3 {
constructor() /* primary */ {
super/*Java3*/()
/* <init>() */
}
}
class E : Java3 {
val a: Int
field = 10
get
constructor() /* primary */ {
super/*Java3*/()
/* <init>() */
}
override fun foo() {
}
}
class F : Java4 {
constructor() /* primary */ {
super/*Java4*/()
/* <init>() */
}
}
class G : Java5 {
constructor() /* primary */ {
super/*Java5*/()
/* <init>() */
}
}
class H : Java5 {
val a: Int
field = 10
get
constructor() /* primary */ {
super/*Java5*/()
/* <init>() */
}
override fun foo() {
}
}
abstract class I : KotlinInternal, JavaPublic {
constructor() /* primary */ {
super/*KotlinInternal*/()
/* <init>() */
}
}
class J : KotlinInternal, JavaPublic {
val a: Int
field = 10
get
constructor() /* primary */ {
super/*KotlinInternal*/()
/* <init>() */
}
override fun foo() {
}
}
class K : KotlinInternal, JavaDefault {
val a: Int
field = 10
get
constructor() /* primary */ {
super/*KotlinInternal*/()
/* <init>() */
}
override fun foo() {
}
}
fun test(a: A, b: B, c: C, d: D, e: E, f: F, g: G, h: H, i: I, j: J, k: K) {
b.foo()
b(super<B>).#a /*~> Unit */
c.foo()
c(super<C>).#a /*~> Unit */
d.foo()
d(super<D>).#a /*~> Unit */
e.foo()
e(super<E>).#a /*~> Unit */
g.foo()
g(super<G>).#a /*~> Unit */
h.foo()
h(super<H>).#a /*~> Unit */
i.foo()
j.foo()
j.<get-a>() /*~> Unit */
k.foo()
k.<get-a>() /*~> Unit */
}
@@ -0,0 +1,281 @@
// MODULE: separate
// FILE: KotlinInternal.kt
// CHECK:
// Mangled name: KotlinInternal
// Public signature: /KotlinInternal|null[0]
open class KotlinInternal {
// CHECK:
// Mangled name: KotlinInternal#<init>(){}
// Public signature: /KotlinInternal.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: KotlinInternal#foo(){}
// Public signature: /KotlinInternal.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
internal open fun foo(): Unit
// CHECK:
// Mangled name: KotlinInternal{}a
// Public signature: /KotlinInternal.a|-1200697420457237799[0]
// Public signature debug description: {}a
internal open val a: Int
// CHECK JVM_IR:
// Mangled name: KotlinInternal#<get-a>(){}kotlin.Int
// Public signature: /KotlinInternal.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
internal open get(): Int
}
// MODULE: main
// FILE: test.kt
// CHECK:
// Mangled name: A
// Public signature: /A|null[0]
class A : Java1 {
// CHECK:
// Mangled name: A#<init>(){}
// Public signature: /A.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
}
// CHECK:
// Mangled name: B
// Public signature: /B|null[0]
class B : Java2 {
// CHECK:
// Mangled name: B#<init>(){}
// Public signature: /B.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: B#foo(){}
// Public signature: /B.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
/* fake */ override fun foo(): Unit
}
// CHECK:
// Mangled name: C
// Public signature: /C|null[0]
class C : Java2 {
// CHECK:
// Mangled name: C{}a
// Public signature: /C.a|-1200697420457237799[0]
// Public signature debug description: {}a
val a: Int
// CHECK JVM_IR:
// Mangled name: C#<get-a>(){}kotlin.Int
// Public signature: /C.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
get
// CHECK:
// Mangled name: C#<init>(){}
// Public signature: /C.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: C#foo(){}
// Public signature: /C.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
override fun foo(): Unit
}
// CHECK:
// Mangled name: D
// Public signature: /D|null[0]
class D : Java3 {
// CHECK:
// Mangled name: D#<init>(){}
// Public signature: /D.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: D#foo(){}
// Public signature: /D.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
protected_and_package /* fake */ override fun foo(): Unit
}
// CHECK:
// Mangled name: E
// Public signature: /E|null[0]
class E : Java3 {
// CHECK:
// Mangled name: E{}a
// Public signature: /E.a|-1200697420457237799[0]
// Public signature debug description: {}a
val a: Int
// CHECK JVM_IR:
// Mangled name: E#<get-a>(){}kotlin.Int
// Public signature: /E.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
get
// CHECK:
// Mangled name: E#<init>(){}
// Public signature: /E.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: E#foo(){}
// Public signature: /E.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
override fun foo(): Unit
}
// CHECK:
// Mangled name: F
// Public signature: /F|null[0]
class F : Java4 {
// CHECK:
// Mangled name: F#<init>(){}
// Public signature: /F.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
}
// CHECK:
// Mangled name: G
// Public signature: /G|null[0]
class G : Java5 {
// CHECK:
// Mangled name: G#<init>(){}
// Public signature: /G.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: G#foo(){}
// Public signature: /G.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
package /* fake */ override fun foo(): Unit
}
// CHECK:
// Mangled name: H
// Public signature: /H|null[0]
class H : Java5 {
// CHECK:
// Mangled name: H{}a
// Public signature: /H.a|-1200697420457237799[0]
// Public signature debug description: {}a
val a: Int
// CHECK JVM_IR:
// Mangled name: H#<get-a>(){}kotlin.Int
// Public signature: /H.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
get
// CHECK:
// Mangled name: H#<init>(){}
// Public signature: /H.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: H#foo(){}
// Public signature: /H.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
override fun foo(): Unit
}
// CHECK:
// Mangled name: I
// Public signature: /I|null[0]
abstract class I : KotlinInternal, JavaPublic {
// CHECK:
// Mangled name: I#<init>(){}
// Public signature: /I.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: I#foo(){}
// Public signature: /I.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
abstract /* fake */ override fun foo(): Unit
}
// CHECK:
// Mangled name: J
// Public signature: /J|null[0]
class J : KotlinInternal, JavaPublic {
// CHECK:
// Mangled name: J{}a
// Public signature: /J.a|-1200697420457237799[0]
// Public signature debug description: {}a
val a: Int
// CHECK JVM_IR:
// Mangled name: J#<get-a>(){}kotlin.Int
// Public signature: /J.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
get
// CHECK:
// Mangled name: J#<init>(){}
// Public signature: /J.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: J#foo(){}
// Public signature: /J.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
override fun foo(): Unit
}
// CHECK:
// Mangled name: K
// Public signature: /K|null[0]
class K : KotlinInternal, JavaDefault {
// CHECK:
// Mangled name: K{}a
// Public signature: /K.a|-1200697420457237799[0]
// Public signature debug description: {}a
val a: Int
// CHECK JVM_IR:
// Mangled name: K#<get-a>(){}kotlin.Int
// Public signature: /K.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
get
// CHECK:
// Mangled name: K#<init>(){}
// Public signature: /K.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: K#foo(){}
// Public signature: /K.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
override fun foo(): Unit
}
// CHECK:
// Mangled name: #test(A;B;C;D;E;F;G;H;I;J;K){}
// Public signature: /test|870784281949045058[0]
// Public signature debug description: test(A;B;C;D;E;F;G;H;I;J;K){}
fun test(a: A, b: B, c: C, d: D, e: E, f: F, g: G, h: H, i: I, j: J, k: K): Unit
@@ -0,0 +1,502 @@
Module: separate
FILE fqName:<root> fileName:/KotlinInternal.kt
CLASS CLASS name:KotlinInternal modality:OPEN visibility:public superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.KotlinInternal
CONSTRUCTOR visibility:public <> () returnType:<root>.KotlinInternal [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:KotlinInternal modality:OPEN visibility:public superTypes:[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 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:foo visibility:internal modality:OPEN <> ($this:<root>.KotlinInternal) returnType:kotlin.Unit
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInternal
BLOCK_BODY
PROPERTY name:a visibility:internal modality:OPEN [val]
FUN name:<get-a> visibility:internal modality:OPEN <> ($this:<root>.KotlinInternal) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a visibility:internal modality:OPEN [val]
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInternal
BLOCK_BODY
RETURN type=kotlin.Nothing from='internal open fun <get-a> (): kotlin.Int declared in <root>.KotlinInternal'
CONST Int type=kotlin.Int value=1
Module: main
FILE fqName:<root> fileName:/test.kt
CLASS CLASS name:A modality:FINAL visibility:public superTypes:[<root>.Java1]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.A
CONSTRUCTOR visibility:public <> () returnType:<root>.A [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java1'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:A modality:FINAL visibility:public superTypes:[<root>.Java1]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:internal modality:OPEN <> ($this:<root>.KotlinInternal) returnType:kotlin.Unit [fake_override]
overridden:
internal open fun foo (): kotlin.Unit declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInternal
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 <root>.Java1
$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 <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
PROPERTY FAKE_OVERRIDE name:a visibility:internal modality:OPEN [fake_override,val]
overridden:
internal open a: kotlin.Int
FUN FAKE_OVERRIDE name:<get-a> visibility:internal modality:OPEN <> ($this:<root>.Java1) returnType:kotlin.Int [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a visibility:internal modality:OPEN [fake_override,val]
overridden:
internal open fun <get-a> (): kotlin.Int declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
CLASS CLASS name:B modality:FINAL visibility:public superTypes:[<root>.Java1]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.B
CONSTRUCTOR visibility:public <> () returnType:<root>.B [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java1'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:B modality:FINAL visibility:public superTypes:[<root>.Java1]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java1
$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 <root>.Java1
$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 <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:internal modality:OPEN <> ($this:<root>.B) returnType:kotlin.Unit
overridden:
internal open fun foo (): kotlin.Unit declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.B
BLOCK_BODY
PROPERTY name:a visibility:internal modality:OPEN [val]
overridden:
internal open a: kotlin.Int
FUN name:<get-a> visibility:internal modality:OPEN <> ($this:<root>.B) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a visibility:internal modality:OPEN [val]
overridden:
internal open fun <get-a> (): kotlin.Int declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.B
BLOCK_BODY
RETURN type=kotlin.Nothing from='internal open fun <get-a> (): kotlin.Int declared in <root>.B'
CONST Int type=kotlin.Int value=5
CLASS CLASS name:C modality:FINAL visibility:public superTypes:[<root>.Java2]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.C
CONSTRUCTOR visibility:public <> () returnType:<root>.C [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java2'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:C modality:FINAL visibility:public superTypes:[<root>.Java2]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:public modality:OPEN <> ($this:<root>.Java2) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (): kotlin.Unit declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.Java2
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 <root>.Java2
$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 <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
PROPERTY FAKE_OVERRIDE name:a visibility:internal modality:OPEN [fake_override,val]
overridden:
internal open a: kotlin.Int
FUN FAKE_OVERRIDE name:<get-a> visibility:internal modality:OPEN <> ($this:<root>.Java2) returnType:kotlin.Int [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a visibility:internal modality:OPEN [fake_override,val]
overridden:
internal open fun <get-a> (): kotlin.Int declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.Java2
CLASS CLASS name:D modality:FINAL visibility:public superTypes:[<root>.Java2]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.D
CONSTRUCTOR visibility:public <> () returnType:<root>.D [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java2'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:D modality:FINAL visibility:public superTypes:[<root>.Java2]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java2
$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 <root>.Java2
$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 <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.D) returnType:kotlin.Unit
overridden:
public open fun foo (): kotlin.Unit declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.D
BLOCK_BODY
PROPERTY name:a visibility:internal modality:OPEN [val]
overridden:
internal open a: kotlin.Int
FUN name:<get-a> visibility:internal modality:OPEN <> ($this:<root>.D) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a visibility:internal modality:OPEN [val]
overridden:
internal open fun <get-a> (): kotlin.Int declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.D
BLOCK_BODY
RETURN type=kotlin.Nothing from='internal open fun <get-a> (): kotlin.Int declared in <root>.D'
CONST Int type=kotlin.Int value=5
CLASS CLASS name:E modality:FINAL visibility:public superTypes:[<root>.Java3]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.E
CONSTRUCTOR visibility:public <> () returnType:<root>.E [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java3'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:E modality:FINAL visibility:public superTypes:[<root>.Java3]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:protected/*protected and package*/ modality:OPEN <> ($this:<root>.Java3) returnType:kotlin.Unit [fake_override]
overridden:
protected/*protected and package*/ open fun foo (): kotlin.Unit declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.Java3
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 <root>.Java3
$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 <root>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
PROPERTY FAKE_OVERRIDE name:a visibility:internal modality:OPEN [fake_override,val]
overridden:
internal open a: kotlin.Int
FUN FAKE_OVERRIDE name:<get-a> visibility:internal modality:OPEN <> ($this:<root>.Java3) returnType:kotlin.Int [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a visibility:internal modality:OPEN [fake_override,val]
overridden:
internal open fun <get-a> (): kotlin.Int declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.Java3
CLASS CLASS name:F modality:FINAL visibility:public superTypes:[<root>.Java3]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.F
CONSTRUCTOR visibility:public <> () returnType:<root>.F [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java3'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:F modality:FINAL visibility:public superTypes:[<root>.Java3]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java3
$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 <root>.Java3
$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 <root>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.F) returnType:kotlin.Unit
overridden:
protected/*protected and package*/ open fun foo (): kotlin.Unit declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.F
BLOCK_BODY
PROPERTY name:a visibility:internal modality:OPEN [val]
overridden:
internal open a: kotlin.Int
FUN name:<get-a> visibility:internal modality:OPEN <> ($this:<root>.F) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a visibility:internal modality:OPEN [val]
overridden:
internal open fun <get-a> (): kotlin.Int declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.F
BLOCK_BODY
RETURN type=kotlin.Nothing from='internal open fun <get-a> (): kotlin.Int declared in <root>.F'
CONST Int type=kotlin.Int value=5
CLASS CLASS name:G modality:FINAL visibility:public superTypes:[<root>.Java4]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.G
CONSTRUCTOR visibility:public <> () returnType:<root>.G [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java4'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:G modality:FINAL visibility:public superTypes:[<root>.Java4]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java4
$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 <root>.Java4
$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 <root>.Java4
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
PROPERTY FAKE_OVERRIDE name:a visibility:internal modality:OPEN [fake_override,val]
overridden:
internal open a: kotlin.Int
FUN FAKE_OVERRIDE name:<get-a> visibility:internal modality:OPEN <> ($this:<root>.Java4) returnType:kotlin.Int [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a visibility:internal modality:OPEN [fake_override,val]
overridden:
internal open fun <get-a> (): kotlin.Int declared in <root>.Java4
$this: VALUE_PARAMETER name:<this> type:<root>.Java4
CLASS CLASS name:H modality:FINAL visibility:public superTypes:[<root>.Java4]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.H
CONSTRUCTOR visibility:public <> () returnType:<root>.H [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java4'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:H modality:FINAL visibility:public superTypes:[<root>.Java4]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java4
$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 <root>.Java4
$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 <root>.Java4
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
PROPERTY name:a visibility:internal modality:OPEN [val]
overridden:
internal open a: kotlin.Int
FUN name:<get-a> visibility:internal modality:OPEN <> ($this:<root>.H) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a visibility:internal modality:OPEN [val]
overridden:
internal open fun <get-a> (): kotlin.Int declared in <root>.Java4
$this: VALUE_PARAMETER name:<this> type:<root>.H
BLOCK_BODY
RETURN type=kotlin.Nothing from='internal open fun <get-a> (): kotlin.Int declared in <root>.H'
CONST Int type=kotlin.Int value=5
CLASS CLASS name:I modality:FINAL visibility:public superTypes:[<root>.Java5]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.I
CONSTRUCTOR visibility:public <> () returnType:<root>.I [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java5'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:I modality:FINAL visibility:public superTypes:[<root>.Java5]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java5
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:public/*package*/ modality:OPEN <> ($this:<root>.Java5) returnType:kotlin.Unit [fake_override]
overridden:
public/*package*/ open fun foo (): kotlin.Unit declared in <root>.Java5
$this: VALUE_PARAMETER name:<this> type:<root>.Java5
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 <root>.Java5
$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 <root>.Java5
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
PROPERTY FAKE_OVERRIDE name:a visibility:internal modality:OPEN [fake_override,val]
overridden:
internal open a: kotlin.Int
FUN FAKE_OVERRIDE name:<get-a> visibility:internal modality:OPEN <> ($this:<root>.Java5) returnType:kotlin.Int [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a visibility:internal modality:OPEN [fake_override,val]
overridden:
internal open fun <get-a> (): kotlin.Int declared in <root>.Java5
$this: VALUE_PARAMETER name:<this> type:<root>.Java5
CLASS CLASS name:J modality:FINAL visibility:public superTypes:[<root>.Java5]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.J
CONSTRUCTOR visibility:public <> () returnType:<root>.J [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java5'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:J modality:FINAL visibility:public superTypes:[<root>.Java5]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java5
$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 <root>.Java5
$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 <root>.Java5
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.J) returnType:kotlin.Unit
overridden:
public/*package*/ open fun foo (): kotlin.Unit declared in <root>.Java5
$this: VALUE_PARAMETER name:<this> type:<root>.J
BLOCK_BODY
PROPERTY name:a visibility:internal modality:OPEN [val]
overridden:
internal open a: kotlin.Int
FUN name:<get-a> visibility:internal modality:OPEN <> ($this:<root>.J) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a visibility:internal modality:OPEN [val]
overridden:
internal open fun <get-a> (): kotlin.Int declared in <root>.Java5
$this: VALUE_PARAMETER name:<this> type:<root>.J
BLOCK_BODY
RETURN type=kotlin.Nothing from='internal open fun <get-a> (): kotlin.Int declared in <root>.J'
CONST Int type=kotlin.Int value=5
CLASS CLASS name:K modality:FINAL visibility:public superTypes:[<root>.JavaPublic; <root>.KotlinInternal]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.K
CONSTRUCTOR visibility:public <> () returnType:<root>.K [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.KotlinInternal'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:K modality:FINAL visibility:public superTypes:[<root>.JavaPublic; <root>.KotlinInternal]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.JavaPublic
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.KotlinInternal
$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 <root>.JavaPublic
public open fun hashCode (): kotlin.Int declared in <root>.KotlinInternal
$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 <root>.JavaPublic
public open fun toString (): kotlin.String declared in <root>.KotlinInternal
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.K) returnType:kotlin.Unit
overridden:
public abstract fun foo (): kotlin.Unit declared in <root>.JavaPublic
internal open fun foo (): kotlin.Unit declared in <root>.KotlinInternal
$this: VALUE_PARAMETER name:<this> type:<root>.K
BLOCK_BODY
PROPERTY name:a visibility:public modality:OPEN [val]
overridden:
internal open a: kotlin.Int
FUN name:<get-a> visibility:public modality:OPEN <> ($this:<root>.K) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a visibility:public modality:OPEN [val]
overridden:
internal open fun <get-a> (): kotlin.Int declared in <root>.KotlinInternal
$this: VALUE_PARAMETER name:<this> type:<root>.K
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun <get-a> (): kotlin.Int declared in <root>.K'
CONST Int type=kotlin.Int value=5
CLASS CLASS name:L modality:FINAL visibility:public superTypes:[<root>.JavaDefault; <root>.KotlinInternal]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.L
CONSTRUCTOR visibility:public <> () returnType:<root>.L [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.KotlinInternal'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:L modality:FINAL visibility:public superTypes:[<root>.JavaDefault; <root>.KotlinInternal]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.JavaDefault
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.KotlinInternal
$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 <root>.JavaDefault
public open fun hashCode (): kotlin.Int declared in <root>.KotlinInternal
$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 <root>.JavaDefault
public open fun toString (): kotlin.String declared in <root>.KotlinInternal
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.L) returnType:kotlin.Unit
overridden:
public abstract fun foo (): kotlin.Unit declared in <root>.JavaDefault
internal open fun foo (): kotlin.Unit declared in <root>.KotlinInternal
$this: VALUE_PARAMETER name:<this> type:<root>.L
BLOCK_BODY
PROPERTY name:a visibility:public modality:OPEN [val]
overridden:
internal open a: kotlin.Int
FUN name:<get-a> visibility:public modality:OPEN <> ($this:<root>.L) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a visibility:public modality:OPEN [val]
overridden:
internal open fun <get-a> (): kotlin.Int declared in <root>.KotlinInternal
$this: VALUE_PARAMETER name:<this> type:<root>.L
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun <get-a> (): kotlin.Int declared in <root>.L'
CONST Int type=kotlin.Int value=5
FUN name:test visibility:public modality:FINAL <> (a:<root>.A, b:<root>.B, c:<root>.C, d:<root>.D, e:<root>.E, f:<root>.F, g:<root>.G, h:<root>.H, i:<root>.I, j:<root>.J, k:<root>.K, l:<root>.L) returnType:kotlin.Unit
VALUE_PARAMETER name:a index:0 type:<root>.A
VALUE_PARAMETER name:b index:1 type:<root>.B
VALUE_PARAMETER name:c index:2 type:<root>.C
VALUE_PARAMETER name:d index:3 type:<root>.D
VALUE_PARAMETER name:e index:4 type:<root>.E
VALUE_PARAMETER name:f index:5 type:<root>.F
VALUE_PARAMETER name:g index:6 type:<root>.G
VALUE_PARAMETER name:h index:7 type:<root>.H
VALUE_PARAMETER name:i index:8 type:<root>.I
VALUE_PARAMETER name:j index:9 type:<root>.J
VALUE_PARAMETER name:k index:10 type:<root>.K
VALUE_PARAMETER name:l index:11 type:<root>.L
BLOCK_BODY
CALL 'internal open fun foo (): kotlin.Unit declared in <root>.A' type=kotlin.Unit origin=null
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'internal open fun <get-a> (): kotlin.Int declared in <root>.A' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
CALL 'internal open fun foo (): kotlin.Unit declared in <root>.B' type=kotlin.Unit origin=null
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'internal open fun <get-a> (): kotlin.Int declared in <root>.B' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
CALL 'public open fun foo (): kotlin.Unit declared in <root>.C' type=kotlin.Unit origin=null
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:a type:kotlin.Int visibility:public' type=kotlin.Int origin=null
receiver: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
CALL 'public open fun foo (): kotlin.Unit declared in <root>.D' type=kotlin.Unit origin=null
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'internal open fun <get-a> (): kotlin.Int declared in <root>.D' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
CALL 'protected/*protected and package*/ open fun foo (): kotlin.Unit declared in <root>.E' type=kotlin.Unit origin=null
$this: GET_VAR 'e: <root>.E declared in <root>.test' type=<root>.E origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:a type:kotlin.Int visibility:protected/*protected and package*/' type=kotlin.Int origin=null
receiver: GET_VAR 'e: <root>.E declared in <root>.test' type=<root>.E origin=null
CALL 'public open fun foo (): kotlin.Unit declared in <root>.F' type=kotlin.Unit origin=null
$this: GET_VAR 'f: <root>.F declared in <root>.test' type=<root>.F origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'internal open fun <get-a> (): kotlin.Int declared in <root>.F' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR 'f: <root>.F declared in <root>.test' type=<root>.F origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'internal open fun <get-a> (): kotlin.Int declared in <root>.G' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR 'g: <root>.G declared in <root>.test' type=<root>.G origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'internal open fun <get-a> (): kotlin.Int declared in <root>.H' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR 'h: <root>.H declared in <root>.test' type=<root>.H origin=null
CALL 'public/*package*/ open fun foo (): kotlin.Unit declared in <root>.I' type=kotlin.Unit origin=null
$this: GET_VAR 'i: <root>.I declared in <root>.test' type=<root>.I origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:a type:kotlin.Int visibility:public/*package*/' type=kotlin.Int origin=null
receiver: GET_VAR 'i: <root>.I declared in <root>.test' type=<root>.I origin=null
CALL 'public open fun foo (): kotlin.Unit declared in <root>.J' type=kotlin.Unit origin=null
$this: GET_VAR 'j: <root>.J declared in <root>.test' type=<root>.J origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'internal open fun <get-a> (): kotlin.Int declared in <root>.J' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR 'j: <root>.J declared in <root>.test' type=<root>.J origin=null
CALL 'public open fun foo (): kotlin.Unit declared in <root>.K' type=kotlin.Unit origin=null
$this: GET_VAR 'k: <root>.K declared in <root>.test' type=<root>.K origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun <get-a> (): kotlin.Int declared in <root>.K' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR 'k: <root>.K declared in <root>.test' type=<root>.K origin=null
CALL 'public open fun foo (): kotlin.Unit declared in <root>.L' type=kotlin.Unit origin=null
$this: GET_VAR 'l: <root>.L declared in <root>.test' type=<root>.L origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun <get-a> (): kotlin.Int declared in <root>.L' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR 'l: <root>.L declared in <root>.test' type=<root>.L origin=null
@@ -0,0 +1,208 @@
// MODULE: separate
// FILE: KotlinInternal.kt
open class KotlinInternal {
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
internal open fun foo() {
}
internal open val a: Int
internal open get(): Int {
return 1
}
}
// MODULE: main
// FILE: test.kt
class A : Java1 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
}
class B : Java1 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
internal override fun foo() {
}
internal override val a: Int
internal override get(): Int {
return 5
}
}
class C : Java2 {
constructor() /* primary */ {
super/*Java2*/()
/* <init>() */
}
}
class D : Java2 {
constructor() /* primary */ {
super/*Java2*/()
/* <init>() */
}
override fun foo() {
}
internal override val a: Int
internal override get(): Int {
return 5
}
}
class E : Java3 {
constructor() /* primary */ {
super/*Java3*/()
/* <init>() */
}
}
class F : Java3 {
constructor() /* primary */ {
super/*Java3*/()
/* <init>() */
}
override fun foo() {
}
internal override val a: Int
internal override get(): Int {
return 5
}
}
class G : Java4 {
constructor() /* primary */ {
super/*Java4*/()
/* <init>() */
}
}
class H : Java4 {
constructor() /* primary */ {
super/*Java4*/()
/* <init>() */
}
internal override val a: Int
internal override get(): Int {
return 5
}
}
class I : Java5 {
constructor() /* primary */ {
super/*Java5*/()
/* <init>() */
}
}
class J : Java5 {
constructor() /* primary */ {
super/*Java5*/()
/* <init>() */
}
override fun foo() {
}
internal override val a: Int
internal override get(): Int {
return 5
}
}
class K : KotlinInternal, JavaPublic {
constructor() /* primary */ {
super/*KotlinInternal*/()
/* <init>() */
}
override fun foo() {
}
override val a: Int
override get(): Int {
return 5
}
}
class L : KotlinInternal, JavaDefault {
constructor() /* primary */ {
super/*KotlinInternal*/()
/* <init>() */
}
override fun foo() {
}
override val a: Int
override get(): Int {
return 5
}
}
fun test(a: A, b: B, c: C, d: D, e: E, f: F, g: G, h: H, i: I, j: J, k: K, l: L) {
a.foo()
a.<get-a>() /*~> Unit */
b.foo()
b.<get-a>() /*~> Unit */
c.foo()
c.#a /*~> Unit */
d.foo()
d.<get-a>() /*~> Unit */
e.foo()
e.#a /*~> Unit */
f.foo()
f.<get-a>() /*~> Unit */
g.<get-a>() /*~> Unit */
h.<get-a>() /*~> Unit */
i.foo()
i.#a /*~> Unit */
j.foo()
j.<get-a>() /*~> Unit */
k.foo()
k.<get-a>() /*~> Unit */
l.foo()
l.<get-a>() /*~> Unit */
}
@@ -0,0 +1,376 @@
// MODULE: separate
// FILE: KotlinInternal.kt
// CHECK:
// Mangled name: KotlinInternal
// Public signature: /KotlinInternal|null[0]
open class KotlinInternal {
// CHECK:
// Mangled name: KotlinInternal#<init>(){}
// Public signature: /KotlinInternal.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: KotlinInternal#foo(){}
// Public signature: /KotlinInternal.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
internal open fun foo(): Unit
// CHECK:
// Mangled name: KotlinInternal{}a
// Public signature: /KotlinInternal.a|-1200697420457237799[0]
// Public signature debug description: {}a
internal open val a: Int
// CHECK JVM_IR:
// Mangled name: KotlinInternal#<get-a>(){}kotlin.Int
// Public signature: /KotlinInternal.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
internal open get(): Int
}
// MODULE: main
// FILE: test.kt
// CHECK:
// Mangled name: A
// Public signature: /A|null[0]
class A : Java1 {
// CHECK:
// Mangled name: A#<init>(){}
// Public signature: /A.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: A#foo(){}
// Public signature: /A.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
internal /* fake */ override fun foo(): Unit
// CHECK:
// Mangled name: A{}a
// Public signature: /A.a|-1200697420457237799[0]
// Public signature debug description: {}a
internal /* fake */ override val a: Int
// CHECK JVM_IR:
// Mangled name: A#<get-a>(){}kotlin.Int
// Public signature: /A.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
internal /* fake */ override get(): Int
}
// CHECK:
// Mangled name: B
// Public signature: /B|null[0]
class B : Java1 {
// CHECK:
// Mangled name: B#<init>(){}
// Public signature: /B.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: B#foo(){}
// Public signature: /B.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
internal override fun foo(): Unit
// CHECK:
// Mangled name: B{}a
// Public signature: /B.a|-1200697420457237799[0]
// Public signature debug description: {}a
internal override val a: Int
// CHECK JVM_IR:
// Mangled name: B#<get-a>(){}kotlin.Int
// Public signature: /B.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
internal override get(): Int
}
// CHECK:
// Mangled name: C
// Public signature: /C|null[0]
class C : Java2 {
// CHECK:
// Mangled name: C#<init>(){}
// Public signature: /C.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: C#foo(){}
// Public signature: /C.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
/* fake */ override fun foo(): Unit
// CHECK:
// Mangled name: C{}a
// Public signature: /C.a|-1200697420457237799[0]
// Public signature debug description: {}a
internal /* fake */ override val a: Int
// CHECK JVM_IR:
// Mangled name: C#<get-a>(){}kotlin.Int
// Public signature: /C.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
internal /* fake */ override get(): Int
}
// CHECK:
// Mangled name: D
// Public signature: /D|null[0]
class D : Java2 {
// CHECK:
// Mangled name: D#<init>(){}
// Public signature: /D.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: D#foo(){}
// Public signature: /D.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
override fun foo(): Unit
// CHECK:
// Mangled name: D{}a
// Public signature: /D.a|-1200697420457237799[0]
// Public signature debug description: {}a
internal override val a: Int
// CHECK JVM_IR:
// Mangled name: D#<get-a>(){}kotlin.Int
// Public signature: /D.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
internal override get(): Int
}
// CHECK:
// Mangled name: E
// Public signature: /E|null[0]
class E : Java3 {
// CHECK:
// Mangled name: E#<init>(){}
// Public signature: /E.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: E#foo(){}
// Public signature: /E.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
protected_and_package /* fake */ override fun foo(): Unit
// CHECK:
// Mangled name: E{}a
// Public signature: /E.a|-1200697420457237799[0]
// Public signature debug description: {}a
internal /* fake */ override val a: Int
// CHECK JVM_IR:
// Mangled name: E#<get-a>(){}kotlin.Int
// Public signature: /E.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
internal /* fake */ override get(): Int
}
// CHECK:
// Mangled name: F
// Public signature: /F|null[0]
class F : Java3 {
// CHECK:
// Mangled name: F#<init>(){}
// Public signature: /F.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: F#foo(){}
// Public signature: /F.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
override fun foo(): Unit
// CHECK:
// Mangled name: F{}a
// Public signature: /F.a|-1200697420457237799[0]
// Public signature debug description: {}a
internal override val a: Int
// CHECK JVM_IR:
// Mangled name: F#<get-a>(){}kotlin.Int
// Public signature: /F.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
internal override get(): Int
}
// CHECK:
// Mangled name: G
// Public signature: /G|null[0]
class G : Java4 {
// CHECK:
// Mangled name: G#<init>(){}
// Public signature: /G.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: G{}a
// Public signature: /G.a|-1200697420457237799[0]
// Public signature debug description: {}a
internal /* fake */ override val a: Int
// CHECK JVM_IR:
// Mangled name: G#<get-a>(){}kotlin.Int
// Public signature: /G.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
internal /* fake */ override get(): Int
}
// CHECK:
// Mangled name: H
// Public signature: /H|null[0]
class H : Java4 {
// CHECK:
// Mangled name: H#<init>(){}
// Public signature: /H.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: H{}a
// Public signature: /H.a|-1200697420457237799[0]
// Public signature debug description: {}a
internal override val a: Int
// CHECK JVM_IR:
// Mangled name: H#<get-a>(){}kotlin.Int
// Public signature: /H.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
internal override get(): Int
}
// CHECK:
// Mangled name: I
// Public signature: /I|null[0]
class I : Java5 {
// CHECK:
// Mangled name: I#<init>(){}
// Public signature: /I.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: I#foo(){}
// Public signature: /I.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
package /* fake */ override fun foo(): Unit
// CHECK:
// Mangled name: I{}a
// Public signature: /I.a|-1200697420457237799[0]
// Public signature debug description: {}a
internal /* fake */ override val a: Int
// CHECK JVM_IR:
// Mangled name: I#<get-a>(){}kotlin.Int
// Public signature: /I.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
internal /* fake */ override get(): Int
}
// CHECK:
// Mangled name: J
// Public signature: /J|null[0]
class J : Java5 {
// CHECK:
// Mangled name: J#<init>(){}
// Public signature: /J.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: J#foo(){}
// Public signature: /J.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
override fun foo(): Unit
// CHECK:
// Mangled name: J{}a
// Public signature: /J.a|-1200697420457237799[0]
// Public signature debug description: {}a
internal override val a: Int
// CHECK JVM_IR:
// Mangled name: J#<get-a>(){}kotlin.Int
// Public signature: /J.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
internal override get(): Int
}
// CHECK:
// Mangled name: K
// Public signature: /K|null[0]
class K : KotlinInternal, JavaPublic {
// CHECK:
// Mangled name: K#<init>(){}
// Public signature: /K.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: K#foo(){}
// Public signature: /K.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
override fun foo(): Unit
// CHECK:
// Mangled name: K{}a
// Public signature: /K.a|-1200697420457237799[0]
// Public signature debug description: {}a
override val a: Int
// CHECK JVM_IR:
// Mangled name: K#<get-a>(){}kotlin.Int
// Public signature: /K.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
override get(): Int
}
// CHECK:
// Mangled name: L
// Public signature: /L|null[0]
class L : KotlinInternal, JavaDefault {
// CHECK:
// Mangled name: L#<init>(){}
// Public signature: /L.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: L#foo(){}
// Public signature: /L.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
override fun foo(): Unit
// CHECK:
// Mangled name: L{}a
// Public signature: /L.a|-1200697420457237799[0]
// Public signature debug description: {}a
override val a: Int
// CHECK JVM_IR:
// Mangled name: L#<get-a>(){}kotlin.Int
// Public signature: /L.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
override get(): Int
}
// CHECK:
// Mangled name: #test(A;B;C;D;E;F;G;H;I;J;K;L){}
// Public signature: /test|-3655539743967648908[0]
// Public signature debug description: test(A;B;C;D;E;F;G;H;I;J;K;L){}
fun test(a: A, b: B, c: C, d: D, e: E, f: F, g: G, h: H, i: I, j: J, k: K, l: L): Unit
@@ -0,0 +1,140 @@
// TARGET_BACKEND: JVM
// IGNORE_BACKEND_K1: ANY
// SEPARATE_SIGNATURE_DUMP_FOR_K2
// ^ ISSUE: KT-65679
// MODULE: separate
// FILE: KotlinInternal.kt
open class KotlinInternal {
internal open val a : Int
get() = 1
internal open fun foo(){}
}
// MODULE: main()(separate)
// FILE: JavaDefault.java
public interface JavaDefault {
int a = 2;
void foo();
}
// FILE: JavaPublic.java
public interface JavaPublic {
public int a = 1;
public void foo();
}
// FILE: Java1.java
public class Java1 extends KotlinInternal {}
// FILE: Java2.java
public class Java2 extends KotlinInternal {
public int a = 2;
public void foo() {}
}
// FILE: Java3.java
public class Java3 extends KotlinInternal {
protected int a = 3;
protected void foo() {}
}
// FILE: Java4.java
public class Java4 extends KotlinInternal {
private int a = 4;
private void foo() {}
}
// FILE: Java5.java
public class Java5 extends KotlinInternal {
int a = 5;
void foo(){}
}
// FILE: test.kt
class A : Java1()
class B : Java1() {
override fun foo() {}
override val a: Int
get() = 5
}
class C : Java2()
class D: Java2() {
override fun foo() {}
override val a: Int
get() = 5
}
class E : Java3()
class F : Java3() {
public override fun foo() {}
override val a: Int
get() = 5
}
class G : Java4()
class H : Java4() {
override val a: Int
get() = 5
}
class I : Java5()
class J : Java5() {
public override fun foo() {}
override val a: Int
get() = 5
}
class K : JavaPublic, KotlinInternal() {
public override fun foo() {}
public override val a: Int
get() = 5
}
class L : JavaDefault, KotlinInternal() {
public override fun foo() {}
public override val a: Int
get() = 5
}
fun test(a: A, b: B, c: C, d: D, e: E, f: F, g: G, h: H, i: I, j: J, k: K, l: L){
a.foo()
a.a
b.foo()
b.a
c.foo()
c.a
d.foo()
d.a
e.foo()
e.a
f.foo()
f.a
g.a
h.a
i.foo()
i.a
j.foo()
j.a
k.foo()
k.a
l.foo()
l.a
}
@@ -0,0 +1,322 @@
Module: separate
FILE fqName:<root> fileName:/KotlinInternalSeparate.kt
CLASS CLASS name:KotlinInternalSeparate modality:OPEN visibility:public superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.KotlinInternalSeparate
CONSTRUCTOR visibility:public <> () returnType:<root>.KotlinInternalSeparate [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:KotlinInternalSeparate modality:OPEN visibility:public superTypes:[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 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:foo visibility:internal modality:OPEN <> ($this:<root>.KotlinInternalSeparate) returnType:kotlin.Unit
annotations:
PublishedApi
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInternalSeparate
BLOCK_BODY
PROPERTY name:a visibility:internal modality:OPEN [val]
annotations:
PublishedApi
FUN name:<get-a> visibility:internal modality:OPEN <> ($this:<root>.KotlinInternalSeparate) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a visibility:internal modality:OPEN [val]
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInternalSeparate
BLOCK_BODY
RETURN type=kotlin.Nothing from='internal open fun <get-a> (): kotlin.Int declared in <root>.KotlinInternalSeparate'
CONST Int type=kotlin.Int value=1
Module: main
FILE fqName:<root> fileName:/test.kt
CLASS CLASS name:A modality:FINAL visibility:public superTypes:[<root>.Java1]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.A
CONSTRUCTOR visibility:public <> () returnType:<root>.A [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java1'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:A modality:FINAL visibility:public superTypes:[<root>.Java1]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:internal modality:OPEN <> ($this:<root>.InternalVisibility) returnType:kotlin.Unit [fake_override]
annotations:
PublishedApi
overridden:
internal open fun foo (): kotlin.Unit declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.InternalVisibility
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 <root>.Java1
$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 <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
PROPERTY FAKE_OVERRIDE name:a visibility:internal modality:OPEN [fake_override,val]
annotations:
PublishedApi
overridden:
internal open a: kotlin.Int
FUN FAKE_OVERRIDE name:<get-a> visibility:internal modality:OPEN <> ($this:<root>.Java1) returnType:kotlin.Int [fake_override]
annotations:
PublishedApi
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a visibility:internal modality:OPEN [fake_override,val]
overridden:
internal open fun <get-a> (): kotlin.Int declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
CLASS CLASS name:B modality:FINAL visibility:public superTypes:[<root>.Java1]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.B
CONSTRUCTOR visibility:public <> () returnType:<root>.B [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java1'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:B modality:FINAL visibility:public superTypes:[<root>.Java1]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java1
$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 <root>.Java1
$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 <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:internal modality:OPEN <> ($this:<root>.B) returnType:kotlin.Unit
overridden:
internal open fun foo (): kotlin.Unit declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.B
BLOCK_BODY
PROPERTY FAKE_OVERRIDE name:a visibility:internal modality:OPEN [fake_override,val]
annotations:
PublishedApi
overridden:
internal open a: kotlin.Int
FUN FAKE_OVERRIDE name:<get-a> visibility:internal modality:OPEN <> ($this:<root>.Java1) returnType:kotlin.Int [fake_override]
annotations:
PublishedApi
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a visibility:internal modality:OPEN [fake_override,val]
overridden:
internal open fun <get-a> (): kotlin.Int declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
CLASS CLASS name:C modality:FINAL visibility:public superTypes:[<root>.Java2]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.C
CONSTRUCTOR visibility:public <> () returnType:<root>.C [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java2'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:C modality:FINAL visibility:public superTypes:[<root>.Java2]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:public modality:OPEN <> ($this:<root>.Java2) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (): kotlin.Unit declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.Java2
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 <root>.Java2
$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 <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
PROPERTY FAKE_OVERRIDE name:a visibility:internal modality:OPEN [fake_override,val]
annotations:
PublishedApi
overridden:
internal open a: kotlin.Int
FUN FAKE_OVERRIDE name:<get-a> visibility:internal modality:OPEN <> ($this:<root>.Java2) returnType:kotlin.Int [fake_override]
annotations:
PublishedApi
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a visibility:internal modality:OPEN [fake_override,val]
overridden:
internal open fun <get-a> (): kotlin.Int declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.Java2
CLASS CLASS name:D modality:FINAL visibility:public superTypes:[<root>.Java2]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.D
CONSTRUCTOR visibility:public <> () returnType:<root>.D [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java2'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:D modality:FINAL visibility:public superTypes:[<root>.Java2]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java2
$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 <root>.Java2
$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 <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.D) returnType:kotlin.Unit
overridden:
public open fun foo (): kotlin.Unit declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.D
BLOCK_BODY
PROPERTY name:a visibility:internal modality:OPEN [val]
overridden:
internal open a: kotlin.Int
FUN name:<get-a> visibility:internal modality:OPEN <> ($this:<root>.D) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a visibility:internal modality:OPEN [val]
overridden:
internal open fun <get-a> (): kotlin.Int declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.D
BLOCK_BODY
RETURN type=kotlin.Nothing from='internal open fun <get-a> (): kotlin.Int declared in <root>.D'
CONST Int type=kotlin.Int value=10
CLASS CLASS name:E modality:FINAL visibility:public superTypes:[<root>.Java3]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.E
CONSTRUCTOR visibility:public <> () returnType:<root>.E [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java3'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:E modality:FINAL visibility:public superTypes:[<root>.Java3]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java3
$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 <root>.Java3
$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 <root>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:F modality:FINAL visibility:public superTypes:[<root>.Java4]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.F
CONSTRUCTOR visibility:public <> () returnType:<root>.F [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java4'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:F modality:FINAL visibility:public superTypes:[<root>.Java4]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java4
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:public modality:OPEN <> ($this:<root>.Java4) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (): kotlin.Unit declared in <root>.Java4
$this: VALUE_PARAMETER name:<this> type:<root>.Java4
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 <root>.Java4
$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 <root>.Java4
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:G modality:FINAL visibility:public superTypes:[<root>.Java4]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.G
CONSTRUCTOR visibility:public <> () returnType:<root>.G [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java4'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:G modality:FINAL visibility:public superTypes:[<root>.Java4]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java4
$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 <root>.Java4
$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 <root>.Java4
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.G) returnType:kotlin.Unit
overridden:
public open fun foo (): kotlin.Unit declared in <root>.Java4
$this: VALUE_PARAMETER name:<this> type:<root>.G
BLOCK_BODY
CLASS CLASS name:InternalVisibility modality:OPEN visibility:public superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.InternalVisibility
PROPERTY name:a visibility:internal modality:OPEN [val]
annotations:
PublishedApi
FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.Int visibility:private [final]
EXPRESSION_BODY
CONST Int type=kotlin.Int value=4
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-a> visibility:internal modality:OPEN <> ($this:<root>.InternalVisibility) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a visibility:internal modality:OPEN [val]
$this: VALUE_PARAMETER name:<this> type:<root>.InternalVisibility
BLOCK_BODY
RETURN type=kotlin.Nothing from='internal open fun <get-a> (): kotlin.Int declared in <root>.InternalVisibility'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.InternalVisibility declared in <root>.InternalVisibility.<get-a>' type=<root>.InternalVisibility origin=null
CONSTRUCTOR visibility:public <> () returnType:<root>.InternalVisibility [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:InternalVisibility modality:OPEN visibility:public superTypes:[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 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:foo visibility:internal modality:OPEN <> ($this:<root>.InternalVisibility) returnType:kotlin.Unit
annotations:
PublishedApi
$this: VALUE_PARAMETER name:<this> type:<root>.InternalVisibility
BLOCK_BODY
FUN name:test visibility:public modality:FINAL <> (a:<root>.A, b:<root>.B, c:<root>.C, d:<root>.D, e:<root>.E, f:<root>.F, g:<root>.G) returnType:kotlin.Unit
VALUE_PARAMETER name:a index:0 type:<root>.A
VALUE_PARAMETER name:b index:1 type:<root>.B
VALUE_PARAMETER name:c index:2 type:<root>.C
VALUE_PARAMETER name:d index:3 type:<root>.D
VALUE_PARAMETER name:e index:4 type:<root>.E
VALUE_PARAMETER name:f index:5 type:<root>.F
VALUE_PARAMETER name:g index:6 type:<root>.G
BLOCK_BODY
CALL 'internal open fun foo (): kotlin.Unit declared in <root>.A' type=kotlin.Unit origin=null
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'internal open fun <get-a> (): kotlin.Int declared in <root>.A' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
CALL 'internal open fun foo (): kotlin.Unit declared in <root>.B' type=kotlin.Unit origin=null
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'internal open fun <get-a> (): kotlin.Int declared in <root>.B' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
CALL 'public open fun foo (): kotlin.Unit declared in <root>.C' type=kotlin.Unit origin=null
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:a type:kotlin.Int visibility:public' type=kotlin.Int origin=null
receiver: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
CALL 'public open fun foo (): kotlin.Unit declared in <root>.D' type=kotlin.Unit origin=null
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'internal open fun <get-a> (): kotlin.Int declared in <root>.D' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
CALL 'public open fun foo (): kotlin.Unit declared in <root>.F' type=kotlin.Unit origin=null
$this: GET_VAR 'f: <root>.F declared in <root>.test' type=<root>.F origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:a type:kotlin.Int visibility:public' type=kotlin.Int origin=null
receiver: GET_VAR 'f: <root>.F declared in <root>.test' type=<root>.F origin=null
CALL 'public open fun foo (): kotlin.Unit declared in <root>.G' type=kotlin.Unit origin=null
$this: GET_VAR 'g: <root>.G declared in <root>.test' type=<root>.G origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:a type:kotlin.Int visibility:public' type=kotlin.Int origin=null
receiver: GET_VAR 'g: <root>.G declared in <root>.test' type=<root>.G origin=null
@@ -0,0 +1,134 @@
// MODULE: separate
// FILE: KotlinInternalSeparate.kt
open class KotlinInternalSeparate {
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
@PublishedApi
internal open fun foo() {
}
@PublishedApi
internal open val a: Int
internal open get(): Int {
return 1
}
}
// MODULE: main
// FILE: test.kt
class A : Java1 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
}
class B : Java1 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
internal override fun foo() {
}
}
class C : Java2 {
constructor() /* primary */ {
super/*Java2*/()
/* <init>() */
}
}
class D : Java2 {
constructor() /* primary */ {
super/*Java2*/()
/* <init>() */
}
override fun foo() {
}
internal override val a: Int
internal override get(): Int {
return 10
}
}
class E : Java3 {
constructor() /* primary */ {
super/*Java3*/()
/* <init>() */
}
}
class F : Java4 {
constructor() /* primary */ {
super/*Java4*/()
/* <init>() */
}
}
class G : Java4 {
constructor() /* primary */ {
super/*Java4*/()
/* <init>() */
}
override fun foo() {
}
}
open class InternalVisibility {
@PublishedApi
internal open val a: Int
field = 4
internal open get
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
@PublishedApi
internal open fun foo() {
}
}
fun test(a: A, b: B, c: C, d: D, e: E, f: F, g: G) {
a.foo()
a.<get-a>() /*~> Unit */
b.foo()
b.<get-a>() /*~> Unit */
c.foo()
c.#a /*~> Unit */
d.foo()
d.<get-a>() /*~> Unit */
f.foo()
f.#a /*~> Unit */
g.foo()
g.#a /*~> Unit */
}
@@ -0,0 +1,244 @@
// MODULE: separate
// FILE: KotlinInternalSeparate.kt
// CHECK:
// Mangled name: KotlinInternalSeparate
// Public signature: /KotlinInternalSeparate|null[0]
open class KotlinInternalSeparate {
// CHECK:
// Mangled name: KotlinInternalSeparate#<init>(){}
// Public signature: /KotlinInternalSeparate.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: KotlinInternalSeparate#foo(){}
// Public signature: /KotlinInternalSeparate.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
@PublishedApi
internal open fun foo(): Unit
// CHECK:
// Mangled name: KotlinInternalSeparate{}a
// Public signature: /KotlinInternalSeparate.a|-1200697420457237799[0]
// Public signature debug description: {}a
@PublishedApi
internal open val a: Int
// CHECK JVM_IR:
// Mangled name: KotlinInternalSeparate#<get-a>(){}kotlin.Int
// Public signature: /KotlinInternalSeparate.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
internal open get(): Int
}
// MODULE: main
// FILE: test.kt
// CHECK:
// Mangled name: A
// Public signature: /A|null[0]
class A : Java1 {
// CHECK:
// Mangled name: A#<init>(){}
// Public signature: /A.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: A#foo(){}
// Public signature: /A.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
@PublishedApi
internal /* fake */ override fun foo(): Unit
// CHECK:
// Mangled name: A{}a
// Public signature: /A.a|-1200697420457237799[0]
// Public signature debug description: {}a
@PublishedApi
internal /* fake */ override val a: Int
// CHECK JVM_IR:
// Mangled name: A#<get-a>(){}kotlin.Int
// Public signature: /A.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
@PublishedApi
internal /* fake */ override get(): Int
}
// CHECK:
// Mangled name: B
// Public signature: /B|null[0]
class B : Java1 {
// CHECK:
// Mangled name: B#<init>(){}
// Public signature: /B.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: B#foo(){}
// Public signature: /B.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
internal override fun foo(): Unit
// CHECK:
// Mangled name: B{}a
// Public signature: /B.a|-1200697420457237799[0]
// Public signature debug description: {}a
@PublishedApi
internal /* fake */ override val a: Int
// CHECK JVM_IR:
// Mangled name: B#<get-a>(){}kotlin.Int
// Public signature: /B.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
@PublishedApi
internal /* fake */ override get(): Int
}
// CHECK:
// Mangled name: C
// Public signature: /C|null[0]
class C : Java2 {
// CHECK:
// Mangled name: C#<init>(){}
// Public signature: /C.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: C#foo(){}
// Public signature: /C.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
/* fake */ override fun foo(): Unit
// CHECK:
// Mangled name: C{}a
// Public signature: /C.a|-1200697420457237799[0]
// Public signature debug description: {}a
@PublishedApi
internal /* fake */ override val a: Int
// CHECK JVM_IR:
// Mangled name: C#<get-a>(){}kotlin.Int
// Public signature: /C.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
@PublishedApi
internal /* fake */ override get(): Int
}
// CHECK:
// Mangled name: D
// Public signature: /D|null[0]
class D : Java2 {
// CHECK:
// Mangled name: D#<init>(){}
// Public signature: /D.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: D#foo(){}
// Public signature: /D.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
override fun foo(): Unit
// CHECK:
// Mangled name: D{}a
// Public signature: /D.a|-1200697420457237799[0]
// Public signature debug description: {}a
internal override val a: Int
// CHECK JVM_IR:
// Mangled name: D#<get-a>(){}kotlin.Int
// Public signature: /D.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
internal override get(): Int
}
// CHECK:
// Mangled name: E
// Public signature: /E|null[0]
class E : Java3 {
// CHECK:
// Mangled name: E#<init>(){}
// Public signature: /E.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
}
// CHECK:
// Mangled name: F
// Public signature: /F|null[0]
class F : Java4 {
// CHECK:
// Mangled name: F#<init>(){}
// Public signature: /F.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: F#foo(){}
// Public signature: /F.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
/* fake */ override fun foo(): Unit
}
// CHECK:
// Mangled name: G
// Public signature: /G|null[0]
class G : Java4 {
// CHECK:
// Mangled name: G#<init>(){}
// Public signature: /G.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: G#foo(){}
// Public signature: /G.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
override fun foo(): Unit
}
// CHECK:
// Mangled name: InternalVisibility
// Public signature: /InternalVisibility|null[0]
open class InternalVisibility {
// CHECK:
// Mangled name: InternalVisibility{}a
// Public signature: /InternalVisibility.a|-1200697420457237799[0]
// Public signature debug description: {}a
@PublishedApi
internal open val a: Int
// CHECK JVM_IR:
// Mangled name: InternalVisibility#<get-a>(){}kotlin.Int
// Public signature: /InternalVisibility.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
internal open get
// CHECK:
// Mangled name: InternalVisibility#<init>(){}
// Public signature: /InternalVisibility.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: InternalVisibility#foo(){}
// Public signature: /InternalVisibility.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
@PublishedApi
internal open fun foo(): Unit
}
// CHECK:
// Mangled name: #test(A;B;C;D;E;F;G){}
// Public signature: /test|-3020703466980043959[0]
// Public signature debug description: test(A;B;C;D;E;F;G){}
fun test(a: A, b: B, c: C, d: D, e: E, f: F, g: G): Unit
@@ -0,0 +1,78 @@
// TARGET_BACKEND: JVM
// IGNORE_BACKEND_K1: ANY
// SEPARATE_SIGNATURE_DUMP_FOR_K2
// ^ ISSUE: KT-65679, KT-65388
// MODULE: separate
// FILE: KotlinInternalSeparate.kt
open class KotlinInternalSeparate {
@PublishedApi
internal open val a : Int
get() = 1
@PublishedApi
internal open fun foo() {}
}
// MODULE: main(separate)
// FILE: Java1.java
public class Java1 extends InternalVisibility { }
// FILE: Java2.java
public class Java2 extends InternalVisibility {
public int a = 2;
public void foo(){}
}
// FILE: Java3.java
public class Java3 extends KotlinInternalSeparate { }
// FILE: Java4.java
public class Java4 extends KotlinInternalSeparate {
public int a = 4;
public void foo(){}
}
// FILE: test.kt
open class InternalVisibility {
@PublishedApi
internal open val a: Int = 4
@PublishedApi
internal open fun foo() {}
}
class A : Java1() //Kotlin ← Java ← Kotlin(internal)
class B : Java1() {
override fun foo() {}
}
class C : Java2() //Kotlin ← Java(public) ← Kotlin(internal)
class D : Java2() {
override fun foo() {}
override val a: Int
get() = 10
}
class E : Java3() //Kotlin ← Java ← Kotlin(internal separate module)
class F : Java4() //Kotlin ← Java(public) ← Kotlin(internal separate module)
class G : Java4() {
override fun foo() {}
}
fun test(a: A, b: B, c: C, d: D, e: E, f: F, g: G){
a.foo()
a.a
b.foo()
b.a
c.foo()
c.a
d.foo()
d.a
f.foo()
f.a
g.foo()
g.a
}
@@ -0,0 +1,311 @@
FILE fqName:<root> fileName:/test.kt
CLASS CLASS name:A modality:ABSTRACT visibility:public superTypes:[<root>.JavaPublic; <root>.JavaDefault]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.A
CONSTRUCTOR visibility:public <> () returnType:<root>.A [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:A modality:ABSTRACT visibility:public superTypes:[<root>.JavaPublic; <root>.JavaDefault]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.JavaPublic
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.JavaDefault
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:public modality:ABSTRACT <> ($this:<root>.JavaPublic) returnType:kotlin.Unit [fake_override]
overridden:
public abstract fun foo (): kotlin.Unit declared in <root>.JavaPublic
public abstract fun foo (): kotlin.Unit declared in <root>.JavaDefault
$this: VALUE_PARAMETER name:<this> type:<root>.JavaPublic
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 <root>.JavaPublic
public open fun hashCode (): kotlin.Int declared in <root>.JavaDefault
$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 <root>.JavaPublic
public open fun toString (): kotlin.String declared in <root>.JavaDefault
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:B modality:FINAL visibility:public superTypes:[<root>.JavaPublic; <root>.JavaDefault]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.B
PROPERTY name:a visibility:public modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.Int visibility:private [final]
EXPRESSION_BODY
CONST Int type=kotlin.Int value=1
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-a> visibility:public modality:FINAL <> ($this:<root>.B) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a visibility:public modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.B
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-a> (): kotlin.Int declared in <root>.B'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.B declared in <root>.B.<get-a>' type=<root>.B origin=null
CONSTRUCTOR visibility:public <> () returnType:<root>.B [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:B modality:FINAL visibility:public superTypes:[<root>.JavaPublic; <root>.JavaDefault]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.JavaPublic
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.JavaDefault
$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 <root>.JavaPublic
public open fun hashCode (): kotlin.Int declared in <root>.JavaDefault
$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 <root>.JavaPublic
public open fun toString (): kotlin.String declared in <root>.JavaDefault
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.B) returnType:kotlin.Unit
overridden:
public abstract fun foo (): kotlin.Unit declared in <root>.JavaPublic
public abstract fun foo (): kotlin.Unit declared in <root>.JavaDefault
$this: VALUE_PARAMETER name:<this> type:<root>.B
BLOCK_BODY
CLASS CLASS name:C modality:FINAL visibility:public superTypes:[<root>.JavaPublic; <root>.JavaProtected]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.C
PROPERTY name:a visibility:public modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.Int visibility:private [final]
EXPRESSION_BODY
CONST Int type=kotlin.Int value=1
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-a> visibility:public modality:FINAL <> ($this:<root>.C) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a visibility:public modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.C
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-a> (): kotlin.Int declared in <root>.C'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.C declared in <root>.C.<get-a>' type=<root>.C origin=null
CONSTRUCTOR visibility:public <> () returnType:<root>.C [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.JavaProtected'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:C modality:FINAL visibility:public superTypes:[<root>.JavaPublic; <root>.JavaProtected]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.JavaPublic
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.JavaProtected
$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 <root>.JavaPublic
public open fun hashCode (): kotlin.Int declared in <root>.JavaProtected
$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 <root>.JavaPublic
public open fun toString (): kotlin.String declared in <root>.JavaProtected
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.C) returnType:kotlin.Unit
overridden:
public abstract fun foo (): kotlin.Unit declared in <root>.JavaPublic
protected/*protected and package*/ open fun foo (): kotlin.Unit declared in <root>.JavaProtected
$this: VALUE_PARAMETER name:<this> type:<root>.C
BLOCK_BODY
CLASS CLASS name:D modality:ABSTRACT visibility:public superTypes:[<root>.JavaPublic; <root>.JavaPrivate]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.D
CONSTRUCTOR visibility:public <> () returnType:<root>.D [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.JavaPrivate'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:D modality:ABSTRACT visibility:public superTypes:[<root>.JavaPublic; <root>.JavaPrivate]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.JavaPublic
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.JavaPrivate
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:public modality:ABSTRACT <> ($this:<root>.JavaPublic) returnType:kotlin.Unit [fake_override]
overridden:
public abstract fun foo (): kotlin.Unit declared in <root>.JavaPublic
$this: VALUE_PARAMETER name:<this> type:<root>.JavaPublic
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 <root>.JavaPublic
public open fun hashCode (): kotlin.Int declared in <root>.JavaPrivate
$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 <root>.JavaPublic
public open fun toString (): kotlin.String declared in <root>.JavaPrivate
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:E modality:FINAL visibility:public superTypes:[<root>.JavaPublic; <root>.JavaPrivate]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.E
PROPERTY name:a visibility:public modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.Int visibility:private [final]
EXPRESSION_BODY
CONST Int type=kotlin.Int value=1
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-a> visibility:public modality:FINAL <> ($this:<root>.E) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a visibility:public modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.E
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-a> (): kotlin.Int declared in <root>.E'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.E declared in <root>.E.<get-a>' type=<root>.E origin=null
CONSTRUCTOR visibility:public <> () returnType:<root>.E [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.JavaPrivate'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:E modality:FINAL visibility:public superTypes:[<root>.JavaPublic; <root>.JavaPrivate]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.JavaPublic
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.JavaPrivate
$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 <root>.JavaPublic
public open fun hashCode (): kotlin.Int declared in <root>.JavaPrivate
$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 <root>.JavaPublic
public open fun toString (): kotlin.String declared in <root>.JavaPrivate
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.E) returnType:kotlin.Unit
overridden:
public abstract fun foo (): kotlin.Unit declared in <root>.JavaPublic
$this: VALUE_PARAMETER name:<this> type:<root>.E
BLOCK_BODY
CLASS CLASS name:F modality:FINAL visibility:public superTypes:[<root>.JavaProtected; <root>.JavaDefault]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.F
PROPERTY name:a visibility:public modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.Int visibility:private [final]
EXPRESSION_BODY
CONST Int type=kotlin.Int value=1
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-a> visibility:public modality:FINAL <> ($this:<root>.F) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a visibility:public modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.F
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-a> (): kotlin.Int declared in <root>.F'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.F declared in <root>.F.<get-a>' type=<root>.F origin=null
CONSTRUCTOR visibility:public <> () returnType:<root>.F [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.JavaProtected'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:F modality:FINAL visibility:public superTypes:[<root>.JavaProtected; <root>.JavaDefault]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.JavaProtected
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.JavaDefault
$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 <root>.JavaProtected
public open fun hashCode (): kotlin.Int declared in <root>.JavaDefault
$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 <root>.JavaProtected
public open fun toString (): kotlin.String declared in <root>.JavaDefault
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.F) returnType:kotlin.Unit
overridden:
protected/*protected and package*/ open fun foo (): kotlin.Unit declared in <root>.JavaProtected
public abstract fun foo (): kotlin.Unit declared in <root>.JavaDefault
$this: VALUE_PARAMETER name:<this> type:<root>.F
BLOCK_BODY
CLASS CLASS name:G modality:ABSTRACT visibility:public superTypes:[<root>.JavaPrivate; <root>.JavaDefault]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.G
CONSTRUCTOR visibility:public <> () returnType:<root>.G [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.JavaPrivate'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:G modality:ABSTRACT visibility:public superTypes:[<root>.JavaPrivate; <root>.JavaDefault]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.JavaPrivate
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.JavaDefault
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:public modality:ABSTRACT <> ($this:<root>.JavaDefault) returnType:kotlin.Unit [fake_override]
overridden:
public abstract fun foo (): kotlin.Unit declared in <root>.JavaDefault
$this: VALUE_PARAMETER name:<this> type:<root>.JavaDefault
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 <root>.JavaPrivate
public open fun hashCode (): kotlin.Int declared in <root>.JavaDefault
$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 <root>.JavaPrivate
public open fun toString (): kotlin.String declared in <root>.JavaDefault
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:H modality:FINAL visibility:public superTypes:[<root>.JavaPrivate; <root>.JavaDefault]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.H
PROPERTY name:a visibility:public modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.Int visibility:private [final]
EXPRESSION_BODY
CONST Int type=kotlin.Int value=1
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-a> visibility:public modality:FINAL <> ($this:<root>.H) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a visibility:public modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.H
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-a> (): kotlin.Int declared in <root>.H'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.H declared in <root>.H.<get-a>' type=<root>.H origin=null
CONSTRUCTOR visibility:public <> () returnType:<root>.H [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.JavaPrivate'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:H modality:FINAL visibility:public superTypes:[<root>.JavaPrivate; <root>.JavaDefault]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.JavaPrivate
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.JavaDefault
$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 <root>.JavaPrivate
public open fun hashCode (): kotlin.Int declared in <root>.JavaDefault
$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 <root>.JavaPrivate
public open fun toString (): kotlin.String declared in <root>.JavaDefault
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.H) returnType:kotlin.Unit
overridden:
public abstract fun foo (): kotlin.Unit declared in <root>.JavaDefault
$this: VALUE_PARAMETER name:<this> type:<root>.H
BLOCK_BODY
FUN name:test visibility:public modality:FINAL <> (a:<root>.A, b:<root>.B, c:<root>.C, d:<root>.D, e:<root>.E, f:<root>.F, g:<root>.G, h:<root>.H) returnType:kotlin.Unit
VALUE_PARAMETER name:a index:0 type:<root>.A
VALUE_PARAMETER name:b index:1 type:<root>.B
VALUE_PARAMETER name:c index:2 type:<root>.C
VALUE_PARAMETER name:d index:3 type:<root>.D
VALUE_PARAMETER name:e index:4 type:<root>.E
VALUE_PARAMETER name:f index:5 type:<root>.F
VALUE_PARAMETER name:g index:6 type:<root>.G
VALUE_PARAMETER name:h index:7 type:<root>.H
BLOCK_BODY
CALL 'public abstract fun foo (): kotlin.Unit declared in <root>.A' type=kotlin.Unit origin=null
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public final fun <get-a> (): kotlin.Int declared in <root>.B' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
CALL 'public open fun foo (): kotlin.Unit declared in <root>.B' type=kotlin.Unit origin=null
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public final fun <get-a> (): kotlin.Int declared in <root>.C' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
CALL 'public open fun foo (): kotlin.Unit declared in <root>.C' type=kotlin.Unit origin=null
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
CALL 'public abstract fun foo (): kotlin.Unit declared in <root>.D' type=kotlin.Unit origin=null
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
CALL 'public open fun foo (): kotlin.Unit declared in <root>.E' type=kotlin.Unit origin=null
$this: GET_VAR 'e: <root>.E declared in <root>.test' type=<root>.E origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public final fun <get-a> (): kotlin.Int declared in <root>.F' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR 'f: <root>.F declared in <root>.test' type=<root>.F origin=null
CALL 'public open fun foo (): kotlin.Unit declared in <root>.F' type=kotlin.Unit origin=null
$this: GET_VAR 'f: <root>.F declared in <root>.test' type=<root>.F origin=null
CALL 'public abstract fun foo (): kotlin.Unit declared in <root>.G' type=kotlin.Unit origin=null
$this: GET_VAR 'g: <root>.G declared in <root>.test' type=<root>.G origin=null
CALL 'public open fun foo (): kotlin.Unit declared in <root>.H' type=kotlin.Unit origin=null
$this: GET_VAR 'h: <root>.H declared in <root>.test' type=<root>.H origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public final fun <get-a> (): kotlin.Int declared in <root>.H' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR 'h: <root>.H declared in <root>.test' type=<root>.H origin=null
@@ -0,0 +1,121 @@
abstract class A : JavaDefault, JavaPublic {
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
}
class B : JavaDefault, JavaPublic {
val a: Int
field = 1
get
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
override fun foo() {
}
}
class C : JavaProtected, JavaPublic {
val a: Int
field = 1
get
constructor() /* primary */ {
super/*JavaProtected*/()
/* <init>() */
}
override fun foo() {
}
}
abstract class D : JavaPrivate, JavaPublic {
constructor() /* primary */ {
super/*JavaPrivate*/()
/* <init>() */
}
}
class E : JavaPrivate, JavaPublic {
val a: Int
field = 1
get
constructor() /* primary */ {
super/*JavaPrivate*/()
/* <init>() */
}
override fun foo() {
}
}
class F : JavaProtected, JavaDefault {
val a: Int
field = 1
get
constructor() /* primary */ {
super/*JavaProtected*/()
/* <init>() */
}
override fun foo() {
}
}
abstract class G : JavaPrivate, JavaDefault {
constructor() /* primary */ {
super/*JavaPrivate*/()
/* <init>() */
}
}
class H : JavaPrivate, JavaDefault {
val a: Int
field = 1
get
constructor() /* primary */ {
super/*JavaPrivate*/()
/* <init>() */
}
override fun foo() {
}
}
fun test(a: A, b: B, c: C, d: D, e: E, f: F, g: G, h: H) {
a.foo()
b.<get-a>() /*~> Unit */
b.foo()
c.<get-a>() /*~> Unit */
c.foo()
d.foo()
e.foo()
f.<get-a>() /*~> Unit */
f.foo()
g.foo()
h.foo()
h.<get-a>() /*~> Unit */
}
@@ -0,0 +1,317 @@
FILE fqName:<root> fileName:/test.kt
CLASS CLASS name:A modality:ABSTRACT visibility:public superTypes:[<root>.JavaPublic; <root>.JavaDefault]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.A
CONSTRUCTOR visibility:public <> () returnType:<root>.A [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:A modality:ABSTRACT visibility:public superTypes:[<root>.JavaPublic; <root>.JavaDefault]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.JavaPublic
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.JavaDefault
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:public modality:ABSTRACT <> ($this:<root>.JavaPublic) returnType:kotlin.Unit [fake_override]
overridden:
public abstract fun foo (): kotlin.Unit declared in <root>.JavaPublic
public abstract fun foo (): kotlin.Unit declared in <root>.JavaDefault
$this: VALUE_PARAMETER name:<this> type:<root>.JavaPublic
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 <root>.JavaPublic
public open fun hashCode (): kotlin.Int declared in <root>.JavaDefault
$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 <root>.JavaPublic
public open fun toString (): kotlin.String declared in <root>.JavaDefault
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:B modality:FINAL visibility:public superTypes:[<root>.JavaPublic; <root>.JavaDefault]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.B
PROPERTY name:a visibility:public modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.Int visibility:private [final]
EXPRESSION_BODY
CONST Int type=kotlin.Int value=1
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-a> visibility:public modality:FINAL <> ($this:<root>.B) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a visibility:public modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.B
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-a> (): kotlin.Int declared in <root>.B'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.B declared in <root>.B.<get-a>' type=<root>.B origin=null
CONSTRUCTOR visibility:public <> () returnType:<root>.B [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:B modality:FINAL visibility:public superTypes:[<root>.JavaPublic; <root>.JavaDefault]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.JavaPublic
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.JavaDefault
$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 <root>.JavaPublic
public open fun hashCode (): kotlin.Int declared in <root>.JavaDefault
$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 <root>.JavaPublic
public open fun toString (): kotlin.String declared in <root>.JavaDefault
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.B) returnType:kotlin.Unit
overridden:
public abstract fun foo (): kotlin.Unit declared in <root>.JavaPublic
public abstract fun foo (): kotlin.Unit declared in <root>.JavaDefault
$this: VALUE_PARAMETER name:<this> type:<root>.B
BLOCK_BODY
CLASS CLASS name:C modality:FINAL visibility:public superTypes:[<root>.JavaPublic; <root>.JavaProtected]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.C
PROPERTY name:a visibility:public modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.Int visibility:private [final]
EXPRESSION_BODY
CONST Int type=kotlin.Int value=1
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-a> visibility:public modality:FINAL <> ($this:<root>.C) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a visibility:public modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.C
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-a> (): kotlin.Int declared in <root>.C'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.C declared in <root>.C.<get-a>' type=<root>.C origin=null
CONSTRUCTOR visibility:public <> () returnType:<root>.C [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.JavaProtected'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:C modality:FINAL visibility:public superTypes:[<root>.JavaPublic; <root>.JavaProtected]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.JavaPublic
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.JavaProtected
$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 <root>.JavaPublic
public open fun hashCode (): kotlin.Int declared in <root>.JavaProtected
$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 <root>.JavaPublic
public open fun toString (): kotlin.String declared in <root>.JavaProtected
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.C) returnType:kotlin.Unit
overridden:
public abstract fun foo (): kotlin.Unit declared in <root>.JavaPublic
protected/*protected and package*/ open fun foo (): kotlin.Unit declared in <root>.JavaProtected
$this: VALUE_PARAMETER name:<this> type:<root>.C
BLOCK_BODY
PROPERTY FAKE_OVERRIDE name:a visibility:protected/*protected and package*/ modality:FINAL [fake_override,var]
overridden:
protected/*protected and package*/ final a: kotlin.Int
CLASS CLASS name:D modality:ABSTRACT visibility:public superTypes:[<root>.JavaPublic; <root>.JavaPrivate]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.D
CONSTRUCTOR visibility:public <> () returnType:<root>.D [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.JavaPrivate'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:D modality:ABSTRACT visibility:public superTypes:[<root>.JavaPublic; <root>.JavaPrivate]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.JavaPublic
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.JavaPrivate
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:public modality:ABSTRACT <> ($this:<root>.JavaPublic) returnType:kotlin.Unit [fake_override]
overridden:
public abstract fun foo (): kotlin.Unit declared in <root>.JavaPublic
$this: VALUE_PARAMETER name:<this> type:<root>.JavaPublic
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 <root>.JavaPublic
public open fun hashCode (): kotlin.Int declared in <root>.JavaPrivate
$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 <root>.JavaPublic
public open fun toString (): kotlin.String declared in <root>.JavaPrivate
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:E modality:FINAL visibility:public superTypes:[<root>.JavaPublic; <root>.JavaPrivate]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.E
PROPERTY name:a visibility:public modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.Int visibility:private [final]
EXPRESSION_BODY
CONST Int type=kotlin.Int value=1
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-a> visibility:public modality:FINAL <> ($this:<root>.E) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a visibility:public modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.E
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-a> (): kotlin.Int declared in <root>.E'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.E declared in <root>.E.<get-a>' type=<root>.E origin=null
CONSTRUCTOR visibility:public <> () returnType:<root>.E [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.JavaPrivate'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:E modality:FINAL visibility:public superTypes:[<root>.JavaPublic; <root>.JavaPrivate]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.JavaPublic
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.JavaPrivate
$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 <root>.JavaPublic
public open fun hashCode (): kotlin.Int declared in <root>.JavaPrivate
$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 <root>.JavaPublic
public open fun toString (): kotlin.String declared in <root>.JavaPrivate
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.E) returnType:kotlin.Unit
overridden:
public abstract fun foo (): kotlin.Unit declared in <root>.JavaPublic
$this: VALUE_PARAMETER name:<this> type:<root>.E
BLOCK_BODY
CLASS CLASS name:F modality:FINAL visibility:public superTypes:[<root>.JavaProtected; <root>.JavaDefault]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.F
PROPERTY name:a visibility:public modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.Int visibility:private [final]
EXPRESSION_BODY
CONST Int type=kotlin.Int value=1
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-a> visibility:public modality:FINAL <> ($this:<root>.F) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a visibility:public modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.F
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-a> (): kotlin.Int declared in <root>.F'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.F declared in <root>.F.<get-a>' type=<root>.F origin=null
CONSTRUCTOR visibility:public <> () returnType:<root>.F [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.JavaProtected'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:F modality:FINAL visibility:public superTypes:[<root>.JavaProtected; <root>.JavaDefault]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.JavaProtected
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.JavaDefault
$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 <root>.JavaProtected
public open fun hashCode (): kotlin.Int declared in <root>.JavaDefault
$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 <root>.JavaProtected
public open fun toString (): kotlin.String declared in <root>.JavaDefault
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.F) returnType:kotlin.Unit
overridden:
protected/*protected and package*/ open fun foo (): kotlin.Unit declared in <root>.JavaProtected
public abstract fun foo (): kotlin.Unit declared in <root>.JavaDefault
$this: VALUE_PARAMETER name:<this> type:<root>.F
BLOCK_BODY
PROPERTY FAKE_OVERRIDE name:a visibility:protected/*protected and package*/ modality:FINAL [fake_override,var]
overridden:
protected/*protected and package*/ final a: kotlin.Int
CLASS CLASS name:G modality:ABSTRACT visibility:public superTypes:[<root>.JavaPrivate; <root>.JavaDefault]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.G
CONSTRUCTOR visibility:public <> () returnType:<root>.G [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.JavaPrivate'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:G modality:ABSTRACT visibility:public superTypes:[<root>.JavaPrivate; <root>.JavaDefault]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.JavaPrivate
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.JavaDefault
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:public modality:ABSTRACT <> ($this:<root>.JavaDefault) returnType:kotlin.Unit [fake_override]
overridden:
public abstract fun foo (): kotlin.Unit declared in <root>.JavaDefault
$this: VALUE_PARAMETER name:<this> type:<root>.JavaDefault
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 <root>.JavaPrivate
public open fun hashCode (): kotlin.Int declared in <root>.JavaDefault
$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 <root>.JavaPrivate
public open fun toString (): kotlin.String declared in <root>.JavaDefault
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:H modality:FINAL visibility:public superTypes:[<root>.JavaPrivate; <root>.JavaDefault]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.H
PROPERTY name:a visibility:public modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.Int visibility:private [final]
EXPRESSION_BODY
CONST Int type=kotlin.Int value=1
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-a> visibility:public modality:FINAL <> ($this:<root>.H) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a visibility:public modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.H
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-a> (): kotlin.Int declared in <root>.H'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.H declared in <root>.H.<get-a>' type=<root>.H origin=null
CONSTRUCTOR visibility:public <> () returnType:<root>.H [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.JavaPrivate'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:H modality:FINAL visibility:public superTypes:[<root>.JavaPrivate; <root>.JavaDefault]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.JavaPrivate
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.JavaDefault
$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 <root>.JavaPrivate
public open fun hashCode (): kotlin.Int declared in <root>.JavaDefault
$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 <root>.JavaPrivate
public open fun toString (): kotlin.String declared in <root>.JavaDefault
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.H) returnType:kotlin.Unit
overridden:
public abstract fun foo (): kotlin.Unit declared in <root>.JavaDefault
$this: VALUE_PARAMETER name:<this> type:<root>.H
BLOCK_BODY
FUN name:test visibility:public modality:FINAL <> (a:<root>.A, b:<root>.B, c:<root>.C, d:<root>.D, e:<root>.E, f:<root>.F, g:<root>.G, h:<root>.H) returnType:kotlin.Unit
VALUE_PARAMETER name:a index:0 type:<root>.A
VALUE_PARAMETER name:b index:1 type:<root>.B
VALUE_PARAMETER name:c index:2 type:<root>.C
VALUE_PARAMETER name:d index:3 type:<root>.D
VALUE_PARAMETER name:e index:4 type:<root>.E
VALUE_PARAMETER name:f index:5 type:<root>.F
VALUE_PARAMETER name:g index:6 type:<root>.G
VALUE_PARAMETER name:h index:7 type:<root>.H
BLOCK_BODY
CALL 'public abstract fun foo (): kotlin.Unit declared in <root>.A' type=kotlin.Unit origin=null
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public final fun <get-a> (): kotlin.Int declared in <root>.B' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
CALL 'public open fun foo (): kotlin.Unit declared in <root>.B' type=kotlin.Unit origin=null
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:a type:kotlin.Int visibility:protected/*protected and package*/' type=kotlin.Int origin=null
receiver: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
CALL 'public open fun foo (): kotlin.Unit declared in <root>.C' type=kotlin.Unit origin=null
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
CALL 'public abstract fun foo (): kotlin.Unit declared in <root>.D' type=kotlin.Unit origin=null
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
CALL 'public open fun foo (): kotlin.Unit declared in <root>.E' type=kotlin.Unit origin=null
$this: GET_VAR 'e: <root>.E declared in <root>.test' type=<root>.E origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:a type:kotlin.Int visibility:protected/*protected and package*/' type=kotlin.Int origin=null
receiver: GET_VAR 'f: <root>.F declared in <root>.test' type=<root>.F origin=null
CALL 'public open fun foo (): kotlin.Unit declared in <root>.F' type=kotlin.Unit origin=null
$this: GET_VAR 'f: <root>.F declared in <root>.test' type=<root>.F origin=null
CALL 'public abstract fun foo (): kotlin.Unit declared in <root>.G' type=kotlin.Unit origin=null
$this: GET_VAR 'g: <root>.G declared in <root>.test' type=<root>.G origin=null
CALL 'public open fun foo (): kotlin.Unit declared in <root>.H' type=kotlin.Unit origin=null
$this: GET_VAR 'h: <root>.H declared in <root>.test' type=<root>.H origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public final fun <get-a> (): kotlin.Int declared in <root>.H' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR 'h: <root>.H declared in <root>.test' type=<root>.H origin=null
@@ -0,0 +1,72 @@
// TARGET_BACKEND: JVM
// FILE: JavaProtected.java
public class JavaProtected {
protected int a = 3;
protected void foo() {}
}
// FILE: JavaDefault.java
public interface JavaDefault {
int a = 2;
void foo();
}
// FILE: JavaPublic.java
public interface JavaPublic {
public int a = 1;
public void foo();
}
// FILE: JavaPrivate.java
public class JavaPrivate {
private int a = 2;
private void foo(){}
}
// FILE: test.kt
abstract class A : JavaPublic, JavaDefault
class B : JavaPublic, JavaDefault {
override fun foo() {}
val a = 1
}
class C : JavaPublic, JavaProtected() {
override fun foo() {}
val a = 1
}
abstract class D : JavaPublic, JavaPrivate()
class E : JavaPublic, JavaPrivate() {
override fun foo() {}
val a = 1
}
class F : JavaProtected(), JavaDefault {
override fun foo() {}
val a = 1
}
abstract class G : JavaPrivate(), JavaDefault
class H : JavaPrivate(), JavaDefault {
override fun foo() {}
val a = 1
}
fun test(a: A, b: B, c: C, d: D, e: E, f: F, g: G, h: H) {
a.foo()
b.a
b.foo()
c.a
c.foo()
d.foo()
e.foo()
f.a
f.foo()
g.foo()
h.foo()
h.a
}
@@ -0,0 +1,121 @@
abstract class A : JavaDefault, JavaPublic {
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
}
class B : JavaDefault, JavaPublic {
val a: Int
field = 1
get
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
override fun foo() {
}
}
class C : JavaProtected, JavaPublic {
val a: Int
field = 1
get
constructor() /* primary */ {
super/*JavaProtected*/()
/* <init>() */
}
override fun foo() {
}
}
abstract class D : JavaPrivate, JavaPublic {
constructor() /* primary */ {
super/*JavaPrivate*/()
/* <init>() */
}
}
class E : JavaPrivate, JavaPublic {
val a: Int
field = 1
get
constructor() /* primary */ {
super/*JavaPrivate*/()
/* <init>() */
}
override fun foo() {
}
}
class F : JavaProtected, JavaDefault {
val a: Int
field = 1
get
constructor() /* primary */ {
super/*JavaProtected*/()
/* <init>() */
}
override fun foo() {
}
}
abstract class G : JavaPrivate, JavaDefault {
constructor() /* primary */ {
super/*JavaPrivate*/()
/* <init>() */
}
}
class H : JavaPrivate, JavaDefault {
val a: Int
field = 1
get
constructor() /* primary */ {
super/*JavaPrivate*/()
/* <init>() */
}
override fun foo() {
}
}
fun test(a: A, b: B, c: C, d: D, e: E, f: F, g: G, h: H) {
a.foo()
b.<get-a>() /*~> Unit */
b.foo()
c(super<C>).#a /*~> Unit */
c.foo()
d.foo()
e.foo()
f(super<F>).#a /*~> Unit */
f.foo()
g.foo()
h.foo()
h.<get-a>() /*~> Unit */
}
@@ -0,0 +1,204 @@
// CHECK:
// Mangled name: A
// Public signature: /A|null[0]
abstract class A : JavaDefault, JavaPublic {
// CHECK:
// Mangled name: A#<init>(){}
// Public signature: /A.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: A#foo(){}
// Public signature: /A.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
abstract /* fake */ override fun foo(): Unit
}
// CHECK:
// Mangled name: B
// Public signature: /B|null[0]
class B : JavaDefault, JavaPublic {
// CHECK:
// Mangled name: B{}a
// Public signature: /B.a|-1200697420457237799[0]
// Public signature debug description: {}a
val a: Int
// CHECK JVM_IR:
// Mangled name: B#<get-a>(){}kotlin.Int
// Public signature: /B.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
get
// CHECK:
// Mangled name: B#<init>(){}
// Public signature: /B.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: B#foo(){}
// Public signature: /B.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
override fun foo(): Unit
}
// CHECK:
// Mangled name: C
// Public signature: /C|null[0]
class C : JavaProtected, JavaPublic {
// CHECK:
// Mangled name: C{}a
// Public signature: /C.a|-1200697420457237799[0]
// Public signature debug description: {}a
val a: Int
// CHECK JVM_IR:
// Mangled name: C#<get-a>(){}kotlin.Int
// Public signature: /C.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
get
// CHECK:
// Mangled name: C#<init>(){}
// Public signature: /C.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: C#foo(){}
// Public signature: /C.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
override fun foo(): Unit
}
// CHECK:
// Mangled name: D
// Public signature: /D|null[0]
abstract class D : JavaPrivate, JavaPublic {
// CHECK:
// Mangled name: D#<init>(){}
// Public signature: /D.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: D#foo(){}
// Public signature: /D.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
abstract /* fake */ override fun foo(): Unit
}
// CHECK:
// Mangled name: E
// Public signature: /E|null[0]
class E : JavaPrivate, JavaPublic {
// CHECK:
// Mangled name: E{}a
// Public signature: /E.a|-1200697420457237799[0]
// Public signature debug description: {}a
val a: Int
// CHECK JVM_IR:
// Mangled name: E#<get-a>(){}kotlin.Int
// Public signature: /E.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
get
// CHECK:
// Mangled name: E#<init>(){}
// Public signature: /E.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: E#foo(){}
// Public signature: /E.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
override fun foo(): Unit
}
// CHECK:
// Mangled name: F
// Public signature: /F|null[0]
class F : JavaProtected, JavaDefault {
// CHECK:
// Mangled name: F{}a
// Public signature: /F.a|-1200697420457237799[0]
// Public signature debug description: {}a
val a: Int
// CHECK JVM_IR:
// Mangled name: F#<get-a>(){}kotlin.Int
// Public signature: /F.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
get
// CHECK:
// Mangled name: F#<init>(){}
// Public signature: /F.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: F#foo(){}
// Public signature: /F.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
override fun foo(): Unit
}
// CHECK:
// Mangled name: G
// Public signature: /G|null[0]
abstract class G : JavaPrivate, JavaDefault {
// CHECK:
// Mangled name: G#<init>(){}
// Public signature: /G.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: G#foo(){}
// Public signature: /G.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
abstract /* fake */ override fun foo(): Unit
}
// CHECK:
// Mangled name: H
// Public signature: /H|null[0]
class H : JavaPrivate, JavaDefault {
// CHECK:
// Mangled name: H{}a
// Public signature: /H.a|-1200697420457237799[0]
// Public signature debug description: {}a
val a: Int
// CHECK JVM_IR:
// Mangled name: H#<get-a>(){}kotlin.Int
// Public signature: /H.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
get
// CHECK:
// Mangled name: H#<init>(){}
// Public signature: /H.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: H#foo(){}
// Public signature: /H.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
override fun foo(): Unit
}
// CHECK:
// Mangled name: #test(A;B;C;D;E;F;G;H){}
// Public signature: /test|-2663909601123444132[0]
// Public signature debug description: test(A;B;C;D;E;F;G;H){}
fun test(a: A, b: B, c: C, d: D, e: E, f: F, g: G, h: H): Unit
@@ -0,0 +1,508 @@
abstract class A : JavaDefault, KotlinDefault {
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
override fun foo() {
}
fun test() {
<this>.<get-a>() /*~> Unit */
<this>.foo()
}
override val a: Int
override get(): Int {
return 5
}
}
abstract class B : JavaDefault, KotlinPrivate {
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
fun test() {
<this>.foo()
}
}
class C : JavaDefault, KotlinPrivate {
val a: Int
field = 5
get
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
override fun foo() {
}
fun test() {
<this>.<get-a>() /*~> Unit */
<this>.foo()
}
}
class D : KotlinProtected, JavaDefault {
constructor() /* primary */ {
super/*KotlinProtected*/()
/* <init>() */
}
override fun foo() {
}
fun test() {
<this>.<get-a>() /*~> Unit */
<this>.foo()
}
protected override val a: Int
protected override get(): Int {
return 5
}
}
class E : JavaDefault, KotlinPublic {
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
override fun foo() {
}
fun test() {
<this>.<get-a>() /*~> Unit */
<this>.foo()
}
override val a: Int
override get(): Int {
return 5
}
}
class F : KotlinInternal, JavaDefault {
constructor() /* primary */ {
super/*KotlinInternal*/()
/* <init>() */
}
override fun foo() {
}
fun test() {
<this>.<get-a>() /*~> Unit */
<this>.foo()
}
override val a: Int
override get(): Int {
return 5
}
}
class G : JavaPrivate, KotlinDefault {
constructor() /* primary */ {
super/*JavaPrivate*/()
/* <init>() */
}
fun test() {
<this>.<get-a>() /*~> Unit */
<this>.foo()
}
}
class H : JavaPrivate, KotlinDefault {
constructor() /* primary */ {
super/*JavaPrivate*/()
/* <init>() */
}
override fun foo() {
}
fun test() {
<this>.<get-a>() /*~> Unit */
<this>.foo()
}
override val a: Int
override get(): Int {
return 5
}
}
class I : JavaPrivate, KotlinPrivate {
constructor() /* primary */ {
super/*JavaPrivate*/()
/* <init>() */
}
}
class J : JavaPrivate, KotlinPublic {
constructor() /* primary */ {
super/*JavaPrivate*/()
/* <init>() */
}
fun test() {
<this>.<get-a>() /*~> Unit */
<this>.foo()
}
}
class K : JavaPrivate, KotlinPublic {
constructor() /* primary */ {
super/*JavaPrivate*/()
/* <init>() */
}
override fun foo() {
}
fun test() {
<this>.<get-a>() /*~> Unit */
<this>.foo()
}
override val a: Int
override get(): Int {
return 5
}
}
open class KotlinInternal {
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
internal open fun foo() {
}
internal open val a: Int
internal open get(): Int {
return 1
}
}
open class KotlinProtected {
protected open val a: Int
field = 1
protected open get
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
protected open fun foo() {
}
}
class L : JavaProtected, KotlinDefault {
constructor() /* primary */ {
super/*JavaProtected*/()
/* <init>() */
}
override fun foo() {
}
fun test() {
<this>.<get-a>() /*~> Unit */
<this>.foo()
}
override val a: Int
override get(): Int {
return 5
}
}
class M : JavaProtected, KotlinPrivate {
constructor() /* primary */ {
super/*JavaProtected*/()
/* <init>() */
}
fun test() {
<this>.#a /*~> Unit */
<this>.foo()
}
}
class N : JavaProtected, KotlinPrivate {
val a: Int
field = 5
get
constructor() /* primary */ {
super/*JavaProtected*/()
/* <init>() */
}
override fun foo() {
}
fun test() {
<this>.<get-a>() /*~> Unit */
<this>.foo()
}
}
class O : JavaProtected, KotlinPublic {
constructor() /* primary */ {
super/*JavaProtected*/()
/* <init>() */
}
override fun foo() {
}
fun test() {
<this>.<get-a>() /*~> Unit */
<this>.foo()
}
override val a: Int
override get(): Int {
return 5
}
}
class P : JavaPublic, KotlinDefault {
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
override fun foo() {
}
fun test() {
<this>.<get-a>() /*~> Unit */
<this>.foo()
}
override val a: Int
override get(): Int {
return 5
}
}
class Q : JavaPublic, KotlinPrivate {
val a: Int
field = 5
get
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
override fun foo() {
}
fun test() {
<this>.<get-a>() /*~> Unit */
<this>.foo()
}
}
class R : KotlinProtected, JavaPublic {
constructor() /* primary */ {
super/*KotlinProtected*/()
/* <init>() */
}
override fun foo() {
}
fun test() {
<this>.<get-a>() /*~> Unit */
<this>.foo()
}
protected override val a: Int
protected override get(): Int {
return 5
}
}
class S : JavaPublic, KotlinPublic {
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
override fun foo() {
}
fun test() {
<this>.<get-a>() /*~> Unit */
<this>.foo()
}
override val a: Int
override get(): Int {
return 5
}
}
class T : KotlinInternal, JavaPublic {
constructor() /* primary */ {
super/*KotlinInternal*/()
/* <init>() */
}
override fun foo() {
}
fun test() {
<this>.<get-a>() /*~> Unit */
<this>.foo()
}
internal override val a: Int
internal override get(): Int {
return 5
}
}
interface KotlinDefault {
fun foo() {
}
val a: Int
get(): Int {
return 1
}
}
interface KotlinPrivate {
private final fun foo() {
}
private final val a: Int
private final get(): Int {
return 1
}
}
interface KotlinPublic {
fun foo() {
}
val a: Int
get(): Int {
return 1
}
}
fun test(a: A, b: B, c: C, d: D, e: E, f: F, h: H, j: J, k: K, l: L, m: M, n: N, o: O, p: P, q: Q, r: R, s: S, t: T) {
a.foo()
a.<get-a>() /*~> Unit */
a.test()
b.foo()
b.test()
c.foo()
c.test()
d.foo()
d.foo()
e.foo()
e.<get-a>() /*~> Unit */
e.test()
f.foo()
f.<get-a>() /*~> Unit */
f.test()
h.foo()
h.<get-a>() /*~> Unit */
h.test()
j.foo()
j.<get-a>() /*~> Unit */
j.test()
k.foo()
k.<get-a>() /*~> Unit */
k.test()
l.foo()
l.<get-a>() /*~> Unit */
l.test()
m.foo()
m.#a /*~> Unit */
m.test()
n.foo()
n.<get-a>() /*~> Unit */
n.test()
o.foo()
o.<get-a>() /*~> Unit */
o.test()
p.foo()
p.<get-a>() /*~> Unit */
p.test()
q.foo()
q.test()
r.foo()
r.test()
s.foo()
s.test()
s.<get-a>() /*~> Unit */
t.foo()
t.test()
t.<get-a>() /*~> Unit */
}
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,283 @@
// TARGET_BACKEND: JVM
// FILE: JavaProtected.java
public class JavaProtected {
protected int a = 3;
protected void foo() {}
}
// FILE: JavaDefault.java
public interface JavaDefault {
int a = 2;
void foo();
}
// FILE: JavaPublic.java
public interface JavaPublic {
public int a = 1;
public void foo();
}
// FILE: JavaPrivate.java
public class JavaPrivate {
private int a = 2;
private void foo(){}
}
// FILE: test.kt
abstract class A: JavaDefault, KotlinDefault {
public override fun foo() { }
public override val a: Int
get() = 5
fun test() {
a
foo()
}
}
abstract class B : JavaDefault, KotlinPrivate{
fun test() {
foo()
}
}
class C : JavaDefault, KotlinPrivate {
public override fun foo() {}
val a = 5
fun test() {
a
foo()
}
}
class D : JavaDefault, KotlinProtected() {
public override fun foo() {}
protected override val a: Int
get() = 5
fun test() {
a
foo()
}
}
class E : JavaDefault, KotlinPublic {
public override fun foo() {}
override val a: Int
get() = 5
fun test() {
a
foo()
}
}
class F : JavaDefault, KotlinInternal() {
public override fun foo() {}
public override val a: Int
get() = 5
fun test() {
a
foo()
}
}
class G : JavaPrivate(), KotlinDefault{
fun test() {
a
foo()
}
}
class H : JavaPrivate(), KotlinDefault {
override fun foo() {}
override val a: Int
get() = 5
fun test() {
a
foo()
}
}
class I : JavaPrivate(), KotlinPrivate
class J : JavaPrivate(), KotlinPublic {
fun test() {
a
foo()
}
}
class K : JavaPrivate(), KotlinPublic {
override fun foo() {}
override val a: Int
get() = 5
fun test() {
a
foo()
}
}
class L : JavaProtected(), KotlinDefault {
public override fun foo() {}
public override val a: Int
get() = 5
fun test() {
a
foo()
}
}
class M : JavaProtected(), KotlinPrivate {
fun test() {
a
foo()
}
}
class N : JavaProtected(), KotlinPrivate {
public override fun foo() {}
val a = 5
fun test() {
a
foo()
}
}
class O : JavaProtected(), KotlinPublic {
public override fun foo() {}
override val a: Int
get() = 5
fun test() {
a
foo()
}
}
class P : JavaPublic, KotlinDefault {
override fun foo() {}
override val a: Int
get() = 5
fun test() {
a
foo()
}
}
class Q : JavaPublic, KotlinPrivate {
override fun foo() {}
val a = 5
fun test() {
a
foo()
}
}
class R : JavaPublic, KotlinProtected() {
public override fun foo() {}
protected override val a: Int
get() = 5
fun test() {
a
foo()
}
}
class S : JavaPublic, KotlinPublic {
override fun foo() {}
override val a: Int
get() = 5
fun test() {
a
foo()
}
}
class T : JavaPublic, KotlinInternal() {
public override fun foo() {}
internal override val a: Int
get() = 5
fun test() {
a
foo()
}
}
interface KotlinPrivate {
private val a : Int
get() = 1
private fun foo(){}
}
open class KotlinProtected {
protected open val a : Int = 1
protected open fun foo(){}
}
interface KotlinDefault {
val a : Int
get() = 1
fun foo(){}
}
interface KotlinPublic {
public val a : Int
get() = 1
public fun foo(){}
}
open class KotlinInternal {
internal open val a : Int
get() = 1
internal open fun foo(){}
}
fun test(a: A, b: B, c: C, d: D, e: E, f: F, h: H, j: J, k: K, l: L, m: M, n: N, o: O, p: P, q: Q, r: R, s: S, t: T){
a.foo()
a.a
a.test()
b.foo()
b.test()
c.foo()
c.test()
d.foo()
d.foo()
e.foo()
e.a
e.test()
f.foo()
f.a
f.test()
h.foo()
h.a
h.test()
j.foo()
j.a
j.test()
k.foo()
k.a
k.test()
l.foo()
l.a
l.test()
m.foo()
m.a
m.test()
n.foo()
n.a
n.test()
o.foo()
o.a
o.test()
p.foo()
p.a
p.test()
q.foo()
q.test()
r.foo()
r.test()
s.foo()
s.test()
s.a
t.foo()
t.test()
t.a
}
@@ -0,0 +1,508 @@
abstract class A : JavaDefault, KotlinDefault {
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
override fun foo() {
}
fun test() {
<this>.<get-a>() /*~> Unit */
<this>.foo()
}
override val a: Int
override get(): Int {
return 5
}
}
abstract class B : JavaDefault, KotlinPrivate {
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
fun test() {
<this>.foo()
}
}
class C : JavaDefault, KotlinPrivate {
val a: Int
field = 5
get
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
override fun foo() {
}
fun test() {
<this>.<get-a>() /*~> Unit */
<this>.foo()
}
}
class D : KotlinProtected, JavaDefault {
constructor() /* primary */ {
super/*KotlinProtected*/()
/* <init>() */
}
override fun foo() {
}
fun test() {
<this>.<get-a>() /*~> Unit */
<this>.foo()
}
protected override val a: Int
protected override get(): Int {
return 5
}
}
class E : JavaDefault, KotlinPublic {
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
override fun foo() {
}
fun test() {
<this>.<get-a>() /*~> Unit */
<this>.foo()
}
override val a: Int
override get(): Int {
return 5
}
}
class F : KotlinInternal, JavaDefault {
constructor() /* primary */ {
super/*KotlinInternal*/()
/* <init>() */
}
override fun foo() {
}
fun test() {
<this>.<get-a>() /*~> Unit */
<this>.foo()
}
override val a: Int
override get(): Int {
return 5
}
}
class G : JavaPrivate, KotlinDefault {
constructor() /* primary */ {
super/*JavaPrivate*/()
/* <init>() */
}
fun test() {
<this>.<get-a>() /*~> Unit */
<this>.foo()
}
}
class H : JavaPrivate, KotlinDefault {
constructor() /* primary */ {
super/*JavaPrivate*/()
/* <init>() */
}
override fun foo() {
}
fun test() {
<this>.<get-a>() /*~> Unit */
<this>.foo()
}
override val a: Int
override get(): Int {
return 5
}
}
class I : JavaPrivate, KotlinPrivate {
constructor() /* primary */ {
super/*JavaPrivate*/()
/* <init>() */
}
}
class J : JavaPrivate, KotlinPublic {
constructor() /* primary */ {
super/*JavaPrivate*/()
/* <init>() */
}
fun test() {
<this>.<get-a>() /*~> Unit */
<this>.foo()
}
}
class K : JavaPrivate, KotlinPublic {
constructor() /* primary */ {
super/*JavaPrivate*/()
/* <init>() */
}
override fun foo() {
}
fun test() {
<this>.<get-a>() /*~> Unit */
<this>.foo()
}
override val a: Int
override get(): Int {
return 5
}
}
open class KotlinInternal {
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
internal open fun foo() {
}
internal open val a: Int
internal open get(): Int {
return 1
}
}
open class KotlinProtected {
protected open val a: Int
field = 1
protected open get
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
protected open fun foo() {
}
}
class L : JavaProtected, KotlinDefault {
constructor() /* primary */ {
super/*JavaProtected*/()
/* <init>() */
}
override fun foo() {
}
fun test() {
<this>(super<L>).#a /*~> Unit */
<this>.foo()
}
override val a: Int
override get(): Int {
return 5
}
}
class M : JavaProtected, KotlinPrivate {
constructor() /* primary */ {
super/*JavaProtected*/()
/* <init>() */
}
fun test() {
<this>(super<M>).#a /*~> Unit */
<this>.foo()
}
}
class N : JavaProtected, KotlinPrivate {
val a: Int
field = 5
get
constructor() /* primary */ {
super/*JavaProtected*/()
/* <init>() */
}
override fun foo() {
}
fun test() {
<this>(super<N>).#a /*~> Unit */
<this>.foo()
}
}
class O : JavaProtected, KotlinPublic {
constructor() /* primary */ {
super/*JavaProtected*/()
/* <init>() */
}
override fun foo() {
}
fun test() {
<this>(super<O>).#a /*~> Unit */
<this>.foo()
}
override val a: Int
override get(): Int {
return 5
}
}
class P : JavaPublic, KotlinDefault {
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
override fun foo() {
}
fun test() {
<this>.<get-a>() /*~> Unit */
<this>.foo()
}
override val a: Int
override get(): Int {
return 5
}
}
class Q : JavaPublic, KotlinPrivate {
val a: Int
field = 5
get
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
override fun foo() {
}
fun test() {
<this>.<get-a>() /*~> Unit */
<this>.foo()
}
}
class R : KotlinProtected, JavaPublic {
constructor() /* primary */ {
super/*KotlinProtected*/()
/* <init>() */
}
override fun foo() {
}
fun test() {
<this>.<get-a>() /*~> Unit */
<this>.foo()
}
protected override val a: Int
protected override get(): Int {
return 5
}
}
class S : JavaPublic, KotlinPublic {
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
override fun foo() {
}
fun test() {
<this>.<get-a>() /*~> Unit */
<this>.foo()
}
override val a: Int
override get(): Int {
return 5
}
}
class T : KotlinInternal, JavaPublic {
constructor() /* primary */ {
super/*KotlinInternal*/()
/* <init>() */
}
override fun foo() {
}
fun test() {
<this>.<get-a>() /*~> Unit */
<this>.foo()
}
internal override val a: Int
internal override get(): Int {
return 5
}
}
interface KotlinDefault {
fun foo() {
}
val a: Int
get(): Int {
return 1
}
}
interface KotlinPrivate {
private final fun foo() {
}
private final val a: Int
private final get(): Int {
return 1
}
}
interface KotlinPublic {
fun foo() {
}
val a: Int
get(): Int {
return 1
}
}
fun test(a: A, b: B, c: C, d: D, e: E, f: F, h: H, j: J, k: K, l: L, m: M, n: N, o: O, p: P, q: Q, r: R, s: S, t: T) {
a.foo()
a.<get-a>() /*~> Unit */
a.test()
b.foo()
b.test()
c.foo()
c.test()
d.foo()
d.foo()
e.foo()
e.<get-a>() /*~> Unit */
e.test()
f.foo()
f.<get-a>() /*~> Unit */
f.test()
h.foo()
h.<get-a>() /*~> Unit */
h.test()
j.foo()
j.<get-a>() /*~> Unit */
j.test()
k.foo()
k.<get-a>() /*~> Unit */
k.test()
l.foo()
l(super<L>).#a /*~> Unit */
l.test()
m.foo()
m(super<M>).#a /*~> Unit */
m.test()
n.foo()
n(super<N>).#a /*~> Unit */
n.test()
o.foo()
o(super<O>).#a /*~> Unit */
o.test()
p.foo()
p.<get-a>() /*~> Unit */
p.test()
q.foo()
q.test()
r.foo()
r.test()
s.foo()
s.test()
s.<get-a>() /*~> Unit */
t.foo()
t.test()
t.<get-a>() /*~> Unit */
}
@@ -0,0 +1,787 @@
// CHECK:
// Mangled name: A
// Public signature: /A|null[0]
abstract class A : JavaDefault, KotlinDefault {
// CHECK:
// Mangled name: A#<init>(){}
// Public signature: /A.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: A#foo(){}
// Public signature: /A.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
override fun foo(): Unit
// CHECK:
// Mangled name: A#test(){}
// Public signature: /A.test|6620506149988718649[0]
// Public signature debug description: test(){}
fun test(): Unit
// CHECK:
// Mangled name: A{}a
// Public signature: /A.a|-1200697420457237799[0]
// Public signature debug description: {}a
override val a: Int
// CHECK JVM_IR:
// Mangled name: A#<get-a>(){}kotlin.Int
// Public signature: /A.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
override get(): Int
}
// CHECK:
// Mangled name: B
// Public signature: /B|null[0]
abstract class B : JavaDefault, KotlinPrivate {
// CHECK:
// Mangled name: B#<init>(){}
// Public signature: /B.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: B#foo(){}
// Public signature: /B.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
abstract /* fake */ override fun foo(): Unit
// CHECK:
// Mangled name: B#test(){}
// Public signature: /B.test|6620506149988718649[0]
// Public signature debug description: test(){}
fun test(): Unit
}
// CHECK:
// Mangled name: C
// Public signature: /C|null[0]
class C : JavaDefault, KotlinPrivate {
// CHECK:
// Mangled name: C{}a
// Public signature: /C.a|-1200697420457237799[0]
// Public signature debug description: {}a
val a: Int
// CHECK JVM_IR:
// Mangled name: C#<get-a>(){}kotlin.Int
// Public signature: /C.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
get
// CHECK:
// Mangled name: C#<init>(){}
// Public signature: /C.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: C#foo(){}
// Public signature: /C.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
override fun foo(): Unit
// CHECK:
// Mangled name: C#test(){}
// Public signature: /C.test|6620506149988718649[0]
// Public signature debug description: test(){}
fun test(): Unit
}
// CHECK:
// Mangled name: D
// Public signature: /D|null[0]
class D : KotlinProtected, JavaDefault {
// CHECK:
// Mangled name: D#<init>(){}
// Public signature: /D.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: D#foo(){}
// Public signature: /D.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
override fun foo(): Unit
// CHECK:
// Mangled name: D#test(){}
// Public signature: /D.test|6620506149988718649[0]
// Public signature debug description: test(){}
fun test(): Unit
// CHECK:
// Mangled name: D{}a
// Public signature: /D.a|-1200697420457237799[0]
// Public signature debug description: {}a
protected override val a: Int
// CHECK JVM_IR:
// Mangled name: D#<get-a>(){}kotlin.Int
// Public signature: /D.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
protected override get(): Int
}
// CHECK:
// Mangled name: E
// Public signature: /E|null[0]
class E : JavaDefault, KotlinPublic {
// CHECK:
// Mangled name: E#<init>(){}
// Public signature: /E.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: E#foo(){}
// Public signature: /E.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
override fun foo(): Unit
// CHECK:
// Mangled name: E#test(){}
// Public signature: /E.test|6620506149988718649[0]
// Public signature debug description: test(){}
fun test(): Unit
// CHECK:
// Mangled name: E{}a
// Public signature: /E.a|-1200697420457237799[0]
// Public signature debug description: {}a
override val a: Int
// CHECK JVM_IR:
// Mangled name: E#<get-a>(){}kotlin.Int
// Public signature: /E.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
override get(): Int
}
// CHECK:
// Mangled name: F
// Public signature: /F|null[0]
class F : KotlinInternal, JavaDefault {
// CHECK:
// Mangled name: F#<init>(){}
// Public signature: /F.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: F#foo(){}
// Public signature: /F.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
override fun foo(): Unit
// CHECK:
// Mangled name: F#test(){}
// Public signature: /F.test|6620506149988718649[0]
// Public signature debug description: test(){}
fun test(): Unit
// CHECK:
// Mangled name: F{}a
// Public signature: /F.a|-1200697420457237799[0]
// Public signature debug description: {}a
override val a: Int
// CHECK JVM_IR:
// Mangled name: F#<get-a>(){}kotlin.Int
// Public signature: /F.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
override get(): Int
}
// CHECK:
// Mangled name: G
// Public signature: /G|null[0]
class G : JavaPrivate, KotlinDefault {
// CHECK:
// Mangled name: G#<init>(){}
// Public signature: /G.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: G#foo(){}
// Public signature: /G.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
/* fake */ override fun foo(): Unit
// CHECK:
// Mangled name: G#test(){}
// Public signature: /G.test|6620506149988718649[0]
// Public signature debug description: test(){}
fun test(): Unit
// CHECK:
// Mangled name: G{}a
// Public signature: /G.a|-1200697420457237799[0]
// Public signature debug description: {}a
/* fake */ override val a: Int
// CHECK JVM_IR:
// Mangled name: G#<get-a>(){}kotlin.Int
// Public signature: /G.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
/* fake */ override get(): Int
}
// CHECK:
// Mangled name: H
// Public signature: /H|null[0]
class H : JavaPrivate, KotlinDefault {
// CHECK:
// Mangled name: H#<init>(){}
// Public signature: /H.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: H#foo(){}
// Public signature: /H.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
override fun foo(): Unit
// CHECK:
// Mangled name: H#test(){}
// Public signature: /H.test|6620506149988718649[0]
// Public signature debug description: test(){}
fun test(): Unit
// CHECK:
// Mangled name: H{}a
// Public signature: /H.a|-1200697420457237799[0]
// Public signature debug description: {}a
override val a: Int
// CHECK JVM_IR:
// Mangled name: H#<get-a>(){}kotlin.Int
// Public signature: /H.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
override get(): Int
}
// CHECK:
// Mangled name: I
// Public signature: /I|null[0]
class I : JavaPrivate, KotlinPrivate {
// CHECK:
// Mangled name: I#<init>(){}
// Public signature: /I.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
}
// CHECK:
// Mangled name: J
// Public signature: /J|null[0]
class J : JavaPrivate, KotlinPublic {
// CHECK:
// Mangled name: J#<init>(){}
// Public signature: /J.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: J#foo(){}
// Public signature: /J.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
/* fake */ override fun foo(): Unit
// CHECK:
// Mangled name: J#test(){}
// Public signature: /J.test|6620506149988718649[0]
// Public signature debug description: test(){}
fun test(): Unit
// CHECK:
// Mangled name: J{}a
// Public signature: /J.a|-1200697420457237799[0]
// Public signature debug description: {}a
/* fake */ override val a: Int
// CHECK JVM_IR:
// Mangled name: J#<get-a>(){}kotlin.Int
// Public signature: /J.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
/* fake */ override get(): Int
}
// CHECK:
// Mangled name: K
// Public signature: /K|null[0]
class K : JavaPrivate, KotlinPublic {
// CHECK:
// Mangled name: K#<init>(){}
// Public signature: /K.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: K#foo(){}
// Public signature: /K.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
override fun foo(): Unit
// CHECK:
// Mangled name: K#test(){}
// Public signature: /K.test|6620506149988718649[0]
// Public signature debug description: test(){}
fun test(): Unit
// CHECK:
// Mangled name: K{}a
// Public signature: /K.a|-1200697420457237799[0]
// Public signature debug description: {}a
override val a: Int
// CHECK JVM_IR:
// Mangled name: K#<get-a>(){}kotlin.Int
// Public signature: /K.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
override get(): Int
}
// CHECK:
// Mangled name: KotlinInternal
// Public signature: /KotlinInternal|null[0]
open class KotlinInternal {
// CHECK:
// Mangled name: KotlinInternal#<init>(){}
// Public signature: /KotlinInternal.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: KotlinInternal#foo(){}
// Public signature: /KotlinInternal.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
internal open fun foo(): Unit
// CHECK:
// Mangled name: KotlinInternal{}a
// Public signature: /KotlinInternal.a|-1200697420457237799[0]
// Public signature debug description: {}a
internal open val a: Int
// CHECK JVM_IR:
// Mangled name: KotlinInternal#<get-a>(){}kotlin.Int
// Public signature: /KotlinInternal.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
internal open get(): Int
}
// CHECK:
// Mangled name: KotlinProtected
// Public signature: /KotlinProtected|null[0]
open class KotlinProtected {
// CHECK:
// Mangled name: KotlinProtected{}a
// Public signature: /KotlinProtected.a|-1200697420457237799[0]
// Public signature debug description: {}a
protected open val a: Int
// CHECK JVM_IR:
// Mangled name: KotlinProtected#<get-a>(){}kotlin.Int
// Public signature: /KotlinProtected.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
protected open get
// CHECK:
// Mangled name: KotlinProtected#<init>(){}
// Public signature: /KotlinProtected.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: KotlinProtected#foo(){}
// Public signature: /KotlinProtected.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
protected open fun foo(): Unit
}
// CHECK:
// Mangled name: L
// Public signature: /L|null[0]
class L : JavaProtected, KotlinDefault {
// CHECK:
// Mangled name: L#<init>(){}
// Public signature: /L.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: L#foo(){}
// Public signature: /L.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
override fun foo(): Unit
// CHECK:
// Mangled name: L#test(){}
// Public signature: /L.test|6620506149988718649[0]
// Public signature debug description: test(){}
fun test(): Unit
// CHECK:
// Mangled name: L{}a
// Public signature: /L.a|-1200697420457237799[0]
// Public signature debug description: {}a
override val a: Int
// CHECK JVM_IR:
// Mangled name: L#<get-a>(){}kotlin.Int
// Public signature: /L.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
override get(): Int
}
// CHECK:
// Mangled name: M
// Public signature: /M|null[0]
class M : JavaProtected, KotlinPrivate {
// CHECK:
// Mangled name: M#<init>(){}
// Public signature: /M.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: M#foo(){}
// Public signature: /M.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
protected_and_package /* fake */ override fun foo(): Unit
// CHECK:
// Mangled name: M#test(){}
// Public signature: /M.test|6620506149988718649[0]
// Public signature debug description: test(){}
fun test(): Unit
}
// CHECK:
// Mangled name: N
// Public signature: /N|null[0]
class N : JavaProtected, KotlinPrivate {
// CHECK:
// Mangled name: N{}a
// Public signature: /N.a|-1200697420457237799[0]
// Public signature debug description: {}a
val a: Int
// CHECK JVM_IR:
// Mangled name: N#<get-a>(){}kotlin.Int
// Public signature: /N.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
get
// CHECK:
// Mangled name: N#<init>(){}
// Public signature: /N.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: N#foo(){}
// Public signature: /N.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
override fun foo(): Unit
// CHECK:
// Mangled name: N#test(){}
// Public signature: /N.test|6620506149988718649[0]
// Public signature debug description: test(){}
fun test(): Unit
}
// CHECK:
// Mangled name: O
// Public signature: /O|null[0]
class O : JavaProtected, KotlinPublic {
// CHECK:
// Mangled name: O#<init>(){}
// Public signature: /O.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: O#foo(){}
// Public signature: /O.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
override fun foo(): Unit
// CHECK:
// Mangled name: O#test(){}
// Public signature: /O.test|6620506149988718649[0]
// Public signature debug description: test(){}
fun test(): Unit
// CHECK:
// Mangled name: O{}a
// Public signature: /O.a|-1200697420457237799[0]
// Public signature debug description: {}a
override val a: Int
// CHECK JVM_IR:
// Mangled name: O#<get-a>(){}kotlin.Int
// Public signature: /O.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
override get(): Int
}
// CHECK:
// Mangled name: P
// Public signature: /P|null[0]
class P : JavaPublic, KotlinDefault {
// CHECK:
// Mangled name: P#<init>(){}
// Public signature: /P.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: P#foo(){}
// Public signature: /P.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
override fun foo(): Unit
// CHECK:
// Mangled name: P#test(){}
// Public signature: /P.test|6620506149988718649[0]
// Public signature debug description: test(){}
fun test(): Unit
// CHECK:
// Mangled name: P{}a
// Public signature: /P.a|-1200697420457237799[0]
// Public signature debug description: {}a
override val a: Int
// CHECK JVM_IR:
// Mangled name: P#<get-a>(){}kotlin.Int
// Public signature: /P.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
override get(): Int
}
// CHECK:
// Mangled name: Q
// Public signature: /Q|null[0]
class Q : JavaPublic, KotlinPrivate {
// CHECK:
// Mangled name: Q{}a
// Public signature: /Q.a|-1200697420457237799[0]
// Public signature debug description: {}a
val a: Int
// CHECK JVM_IR:
// Mangled name: Q#<get-a>(){}kotlin.Int
// Public signature: /Q.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
get
// CHECK:
// Mangled name: Q#<init>(){}
// Public signature: /Q.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: Q#foo(){}
// Public signature: /Q.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
override fun foo(): Unit
// CHECK:
// Mangled name: Q#test(){}
// Public signature: /Q.test|6620506149988718649[0]
// Public signature debug description: test(){}
fun test(): Unit
}
// CHECK:
// Mangled name: R
// Public signature: /R|null[0]
class R : KotlinProtected, JavaPublic {
// CHECK:
// Mangled name: R#<init>(){}
// Public signature: /R.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: R#foo(){}
// Public signature: /R.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
override fun foo(): Unit
// CHECK:
// Mangled name: R#test(){}
// Public signature: /R.test|6620506149988718649[0]
// Public signature debug description: test(){}
fun test(): Unit
// CHECK:
// Mangled name: R{}a
// Public signature: /R.a|-1200697420457237799[0]
// Public signature debug description: {}a
protected override val a: Int
// CHECK JVM_IR:
// Mangled name: R#<get-a>(){}kotlin.Int
// Public signature: /R.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
protected override get(): Int
}
// CHECK:
// Mangled name: S
// Public signature: /S|null[0]
class S : JavaPublic, KotlinPublic {
// CHECK:
// Mangled name: S#<init>(){}
// Public signature: /S.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: S#foo(){}
// Public signature: /S.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
override fun foo(): Unit
// CHECK:
// Mangled name: S#test(){}
// Public signature: /S.test|6620506149988718649[0]
// Public signature debug description: test(){}
fun test(): Unit
// CHECK:
// Mangled name: S{}a
// Public signature: /S.a|-1200697420457237799[0]
// Public signature debug description: {}a
override val a: Int
// CHECK JVM_IR:
// Mangled name: S#<get-a>(){}kotlin.Int
// Public signature: /S.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
override get(): Int
}
// CHECK:
// Mangled name: T
// Public signature: /T|null[0]
class T : KotlinInternal, JavaPublic {
// CHECK:
// Mangled name: T#<init>(){}
// Public signature: /T.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: T#foo(){}
// Public signature: /T.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
override fun foo(): Unit
// CHECK:
// Mangled name: T#test(){}
// Public signature: /T.test|6620506149988718649[0]
// Public signature debug description: test(){}
fun test(): Unit
// CHECK:
// Mangled name: T{}a
// Public signature: /T.a|-1200697420457237799[0]
// Public signature debug description: {}a
internal override val a: Int
// CHECK JVM_IR:
// Mangled name: T#<get-a>(){}kotlin.Int
// Public signature: /T.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
internal override get(): Int
}
// CHECK:
// Mangled name: KotlinDefault
// Public signature: /KotlinDefault|null[0]
interface KotlinDefault {
// CHECK:
// Mangled name: KotlinDefault#foo(){}
// Public signature: /KotlinDefault.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
fun foo(): Unit
// CHECK:
// Mangled name: KotlinDefault{}a
// Public signature: /KotlinDefault.a|-1200697420457237799[0]
// Public signature debug description: {}a
val a: Int
// CHECK JVM_IR:
// Mangled name: KotlinDefault#<get-a>(){}kotlin.Int
// Public signature: /KotlinDefault.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
get(): Int
}
// CHECK:
// Mangled name: KotlinPrivate
// Public signature: /KotlinPrivate|null[0]
interface KotlinPrivate {
// CHECK:
// Mangled name: KotlinPrivate#foo(){}
// Public signature: /KotlinPrivate.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
private final fun foo(): Unit
// CHECK:
// Mangled name: KotlinPrivate{}a
// Public signature: /KotlinPrivate.a|-1200697420457237799[0]
// Public signature debug description: {}a
private final val a: Int
// CHECK JVM_IR:
// Mangled name: KotlinPrivate#<get-a>(){}kotlin.Int
// Public signature: /KotlinPrivate.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
private final get(): Int
}
// CHECK:
// Mangled name: KotlinPublic
// Public signature: /KotlinPublic|null[0]
interface KotlinPublic {
// CHECK:
// Mangled name: KotlinPublic#foo(){}
// Public signature: /KotlinPublic.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
fun foo(): Unit
// CHECK:
// Mangled name: KotlinPublic{}a
// Public signature: /KotlinPublic.a|-1200697420457237799[0]
// Public signature debug description: {}a
val a: Int
// CHECK JVM_IR:
// Mangled name: KotlinPublic#<get-a>(){}kotlin.Int
// Public signature: /KotlinPublic.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
get(): Int
}
// CHECK:
// Mangled name: #test(A;B;C;D;E;F;H;J;K;L;M;N;O;P;Q;R;S;T){}
// Public signature: /test|1741693058192791612[0]
// Public signature debug description: test(A;B;C;D;E;F;H;J;K;L;M;N;O;P;Q;R;S;T){}
fun test(a: A, b: B, c: C, d: D, e: E, f: F, h: H, j: J, k: K, l: L, m: M, n: N, o: O, p: P, q: Q, r: R, s: S, t: T): Unit
@@ -0,0 +1,326 @@
Module: separate
FILE fqName:<root> fileName:/KotlinInternalSeparate.kt
CLASS CLASS name:KotlinInternalSeparate modality:OPEN visibility:public superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.KotlinInternalSeparate
CONSTRUCTOR visibility:public <> () returnType:<root>.KotlinInternalSeparate [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:KotlinInternalSeparate modality:OPEN visibility:public superTypes:[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 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:foo visibility:internal modality:OPEN <> ($this:<root>.KotlinInternalSeparate) returnType:kotlin.Unit
annotations:
PublishedApi
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInternalSeparate
BLOCK_BODY
PROPERTY name:a visibility:internal modality:OPEN [val]
annotations:
PublishedApi
FUN name:<get-a> visibility:internal modality:OPEN <> ($this:<root>.KotlinInternalSeparate) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a visibility:internal modality:OPEN [val]
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInternalSeparate
BLOCK_BODY
RETURN type=kotlin.Nothing from='internal open fun <get-a> (): kotlin.Int declared in <root>.KotlinInternalSeparate'
CONST Int type=kotlin.Int value=1
Module: main
FILE fqName:<root> fileName:/test.kt
CLASS CLASS name:A modality:FINAL visibility:public superTypes:[<root>.JavaDefault; <root>.InternalVisibility]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.A
CONSTRUCTOR visibility:public <> () returnType:<root>.A [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.InternalVisibility'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:A modality:FINAL visibility:public superTypes:[<root>.JavaDefault; <root>.InternalVisibility]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.JavaDefault
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.InternalVisibility
$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 <root>.JavaDefault
public open fun hashCode (): kotlin.Int declared in <root>.InternalVisibility
$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 <root>.JavaDefault
public open fun toString (): kotlin.String declared in <root>.InternalVisibility
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.A) returnType:kotlin.Unit
overridden:
public abstract fun foo (): kotlin.Unit declared in <root>.JavaDefault
internal open fun foo (): kotlin.Unit declared in <root>.InternalVisibility
$this: VALUE_PARAMETER name:<this> type:<root>.A
BLOCK_BODY
PROPERTY name:a visibility:internal modality:OPEN [val]
overridden:
internal open a: kotlin.Int
FUN name:<get-a> visibility:internal modality:OPEN <> ($this:<root>.A) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a visibility:internal modality:OPEN [val]
overridden:
internal open fun <get-a> (): kotlin.Int declared in <root>.InternalVisibility
$this: VALUE_PARAMETER name:<this> type:<root>.A
BLOCK_BODY
RETURN type=kotlin.Nothing from='internal open fun <get-a> (): kotlin.Int declared in <root>.A'
CONST Int type=kotlin.Int value=10
CLASS CLASS name:B modality:FINAL visibility:public superTypes:[<root>.JavaPublic; <root>.InternalVisibility]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.B
CONSTRUCTOR visibility:public <> () returnType:<root>.B [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.InternalVisibility'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:B modality:FINAL visibility:public superTypes:[<root>.JavaPublic; <root>.InternalVisibility]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.JavaPublic
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.InternalVisibility
$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 <root>.JavaPublic
public open fun hashCode (): kotlin.Int declared in <root>.InternalVisibility
$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 <root>.JavaPublic
public open fun toString (): kotlin.String declared in <root>.InternalVisibility
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.B) returnType:kotlin.Unit
overridden:
public abstract fun foo (): kotlin.Unit declared in <root>.JavaPublic
internal open fun foo (): kotlin.Unit declared in <root>.InternalVisibility
$this: VALUE_PARAMETER name:<this> type:<root>.B
BLOCK_BODY
PROPERTY name:a visibility:internal modality:OPEN [val]
overridden:
internal open a: kotlin.Int
FUN name:<get-a> visibility:internal modality:OPEN <> ($this:<root>.B) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a visibility:internal modality:OPEN [val]
overridden:
internal open fun <get-a> (): kotlin.Int declared in <root>.InternalVisibility
$this: VALUE_PARAMETER name:<this> type:<root>.B
BLOCK_BODY
RETURN type=kotlin.Nothing from='internal open fun <get-a> (): kotlin.Int declared in <root>.B'
CONST Int type=kotlin.Int value=10
CLASS CLASS name:C modality:ABSTRACT visibility:public superTypes:[<root>.JavaDefault; <root>.KotlinInternalSeparate]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.C
CONSTRUCTOR visibility:public <> () returnType:<root>.C [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.KotlinInternalSeparate'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:C modality:ABSTRACT visibility:public superTypes:[<root>.JavaDefault; <root>.KotlinInternalSeparate]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.JavaDefault
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.KotlinInternalSeparate
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:public modality:OPEN <> ($this:<root>.JavaDefault) returnType:kotlin.Unit [fake_override]
overridden:
public abstract fun foo (): kotlin.Unit declared in <root>.JavaDefault
internal open fun foo (): kotlin.Unit declared in <root>.KotlinInternalSeparate
$this: VALUE_PARAMETER name:<this> type:<root>.JavaDefault
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 <root>.JavaDefault
public open fun hashCode (): kotlin.Int declared in <root>.KotlinInternalSeparate
$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 <root>.JavaDefault
public open fun toString (): kotlin.String declared in <root>.KotlinInternalSeparate
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
PROPERTY FAKE_OVERRIDE name:a visibility:internal modality:OPEN [fake_override,val]
annotations:
PublishedApi
overridden:
internal open a: kotlin.Int
FUN FAKE_OVERRIDE name:<get-a> visibility:internal modality:OPEN <> ($this:<root>.KotlinInternalSeparate) returnType:kotlin.Int [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a visibility:internal modality:OPEN [fake_override,val]
overridden:
internal open fun <get-a> (): kotlin.Int declared in <root>.KotlinInternalSeparate
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInternalSeparate
CLASS CLASS name:D modality:FINAL visibility:public superTypes:[<root>.JavaDefault; <root>.KotlinInternalSeparate]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.D
CONSTRUCTOR visibility:public <> () returnType:<root>.D [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.KotlinInternalSeparate'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:D modality:FINAL visibility:public superTypes:[<root>.JavaDefault; <root>.KotlinInternalSeparate]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.JavaDefault
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.KotlinInternalSeparate
$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 <root>.JavaDefault
public open fun hashCode (): kotlin.Int declared in <root>.KotlinInternalSeparate
$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 <root>.JavaDefault
public open fun toString (): kotlin.String declared in <root>.KotlinInternalSeparate
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.D) returnType:kotlin.Unit
overridden:
public abstract fun foo (): kotlin.Unit declared in <root>.JavaDefault
internal open fun foo (): kotlin.Unit declared in <root>.KotlinInternalSeparate
$this: VALUE_PARAMETER name:<this> type:<root>.D
BLOCK_BODY
PROPERTY FAKE_OVERRIDE name:a visibility:internal modality:OPEN [fake_override,val]
annotations:
PublishedApi
overridden:
internal open a: kotlin.Int
FUN FAKE_OVERRIDE name:<get-a> visibility:internal modality:OPEN <> ($this:<root>.KotlinInternalSeparate) returnType:kotlin.Int [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a visibility:internal modality:OPEN [fake_override,val]
overridden:
internal open fun <get-a> (): kotlin.Int declared in <root>.KotlinInternalSeparate
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInternalSeparate
CLASS CLASS name:E modality:ABSTRACT visibility:public superTypes:[<root>.JavaPublic; <root>.KotlinInternalSeparate]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.E
CONSTRUCTOR visibility:public <> () returnType:<root>.E [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.KotlinInternalSeparate'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:E modality:ABSTRACT visibility:public superTypes:[<root>.JavaPublic; <root>.KotlinInternalSeparate]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.JavaPublic
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.KotlinInternalSeparate
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:public modality:OPEN <> ($this:<root>.JavaPublic) returnType:kotlin.Unit [fake_override]
overridden:
public abstract fun foo (): kotlin.Unit declared in <root>.JavaPublic
internal open fun foo (): kotlin.Unit declared in <root>.KotlinInternalSeparate
$this: VALUE_PARAMETER name:<this> type:<root>.JavaPublic
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 <root>.JavaPublic
public open fun hashCode (): kotlin.Int declared in <root>.KotlinInternalSeparate
$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 <root>.JavaPublic
public open fun toString (): kotlin.String declared in <root>.KotlinInternalSeparate
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
PROPERTY FAKE_OVERRIDE name:a visibility:internal modality:OPEN [fake_override,val]
annotations:
PublishedApi
overridden:
internal open a: kotlin.Int
FUN FAKE_OVERRIDE name:<get-a> visibility:internal modality:OPEN <> ($this:<root>.KotlinInternalSeparate) returnType:kotlin.Int [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a visibility:internal modality:OPEN [fake_override,val]
overridden:
internal open fun <get-a> (): kotlin.Int declared in <root>.KotlinInternalSeparate
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInternalSeparate
CLASS CLASS name:F modality:FINAL visibility:public superTypes:[<root>.JavaPublic; <root>.KotlinInternalSeparate]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.F
CONSTRUCTOR visibility:public <> () returnType:<root>.F [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.KotlinInternalSeparate'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:F modality:FINAL visibility:public superTypes:[<root>.JavaPublic; <root>.KotlinInternalSeparate]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.JavaPublic
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.KotlinInternalSeparate
$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 <root>.JavaPublic
public open fun hashCode (): kotlin.Int declared in <root>.KotlinInternalSeparate
$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 <root>.JavaPublic
public open fun toString (): kotlin.String declared in <root>.KotlinInternalSeparate
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.F) returnType:kotlin.Unit
overridden:
public abstract fun foo (): kotlin.Unit declared in <root>.JavaPublic
internal open fun foo (): kotlin.Unit declared in <root>.KotlinInternalSeparate
$this: VALUE_PARAMETER name:<this> type:<root>.F
BLOCK_BODY
PROPERTY FAKE_OVERRIDE name:a visibility:internal modality:OPEN [fake_override,val]
annotations:
PublishedApi
overridden:
internal open a: kotlin.Int
FUN FAKE_OVERRIDE name:<get-a> visibility:internal modality:OPEN <> ($this:<root>.KotlinInternalSeparate) returnType:kotlin.Int [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a visibility:internal modality:OPEN [fake_override,val]
overridden:
internal open fun <get-a> (): kotlin.Int declared in <root>.KotlinInternalSeparate
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInternalSeparate
CLASS CLASS name:InternalVisibility modality:OPEN visibility:public superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.InternalVisibility
PROPERTY name:a visibility:internal modality:OPEN [val]
annotations:
PublishedApi
FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.Int visibility:private [final]
EXPRESSION_BODY
CONST Int type=kotlin.Int value=4
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-a> visibility:internal modality:OPEN <> ($this:<root>.InternalVisibility) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a visibility:internal modality:OPEN [val]
$this: VALUE_PARAMETER name:<this> type:<root>.InternalVisibility
BLOCK_BODY
RETURN type=kotlin.Nothing from='internal open fun <get-a> (): kotlin.Int declared in <root>.InternalVisibility'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.InternalVisibility declared in <root>.InternalVisibility.<get-a>' type=<root>.InternalVisibility origin=null
CONSTRUCTOR visibility:public <> () returnType:<root>.InternalVisibility [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:InternalVisibility modality:OPEN visibility:public superTypes:[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 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:foo visibility:internal modality:OPEN <> ($this:<root>.InternalVisibility) returnType:kotlin.Unit
annotations:
PublishedApi
$this: VALUE_PARAMETER name:<this> type:<root>.InternalVisibility
BLOCK_BODY
FUN name:test visibility:public modality:FINAL <> (a:<root>.A, b:<root>.B, c:<root>.C, d:<root>.D, e:<root>.E, f:<root>.F) returnType:kotlin.Unit
VALUE_PARAMETER name:a index:0 type:<root>.A
VALUE_PARAMETER name:b index:1 type:<root>.B
VALUE_PARAMETER name:c index:2 type:<root>.C
VALUE_PARAMETER name:d index:3 type:<root>.D
VALUE_PARAMETER name:e index:4 type:<root>.E
VALUE_PARAMETER name:f index:5 type:<root>.F
BLOCK_BODY
CALL 'public open fun foo (): kotlin.Unit declared in <root>.A' type=kotlin.Unit origin=null
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'internal open fun <get-a> (): kotlin.Int declared in <root>.A' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
CALL 'public open fun foo (): kotlin.Unit declared in <root>.B' type=kotlin.Unit origin=null
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'internal open fun <get-a> (): kotlin.Int declared in <root>.B' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
CALL 'public open fun foo (): kotlin.Unit declared in <root>.C' type=kotlin.Unit origin=null
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
CALL 'public open fun foo (): kotlin.Unit declared in <root>.D' type=kotlin.Unit origin=null
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
CALL 'public open fun foo (): kotlin.Unit declared in <root>.F' type=kotlin.Unit origin=null
$this: GET_VAR 'f: <root>.F declared in <root>.test' type=<root>.F origin=null
@@ -0,0 +1,128 @@
// MODULE: separate
// FILE: KotlinInternalSeparate.kt
open class KotlinInternalSeparate {
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
@PublishedApi
internal open fun foo() {
}
@PublishedApi
internal open val a: Int
internal open get(): Int {
return 1
}
}
// MODULE: main
// FILE: test.kt
class A : InternalVisibility, JavaDefault {
constructor() /* primary */ {
super/*InternalVisibility*/()
/* <init>() */
}
override fun foo() {
}
internal override val a: Int
internal override get(): Int {
return 10
}
}
class B : InternalVisibility, JavaPublic {
constructor() /* primary */ {
super/*InternalVisibility*/()
/* <init>() */
}
override fun foo() {
}
internal override val a: Int
internal override get(): Int {
return 10
}
}
abstract class C : KotlinInternalSeparate, JavaDefault {
constructor() /* primary */ {
super/*KotlinInternalSeparate*/()
/* <init>() */
}
}
class D : KotlinInternalSeparate, JavaDefault {
constructor() /* primary */ {
super/*KotlinInternalSeparate*/()
/* <init>() */
}
override fun foo() {
}
}
abstract class E : KotlinInternalSeparate, JavaPublic {
constructor() /* primary */ {
super/*KotlinInternalSeparate*/()
/* <init>() */
}
}
class F : KotlinInternalSeparate, JavaPublic {
constructor() /* primary */ {
super/*KotlinInternalSeparate*/()
/* <init>() */
}
override fun foo() {
}
}
open class InternalVisibility {
@PublishedApi
internal open val a: Int
field = 4
internal open get
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
@PublishedApi
internal open fun foo() {
}
}
fun test(a: A, b: B, c: C, d: D, e: E, f: F) {
a.foo()
a.<get-a>() /*~> Unit */
b.foo()
b.<get-a>() /*~> Unit */
c.foo()
d.foo()
f.foo()
}
@@ -0,0 +1,251 @@
// MODULE: separate
// FILE: KotlinInternalSeparate.kt
// CHECK:
// Mangled name: KotlinInternalSeparate
// Public signature: /KotlinInternalSeparate|null[0]
open class KotlinInternalSeparate {
// CHECK:
// Mangled name: KotlinInternalSeparate#<init>(){}
// Public signature: /KotlinInternalSeparate.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: KotlinInternalSeparate#foo(){}
// Public signature: /KotlinInternalSeparate.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
@PublishedApi
internal open fun foo(): Unit
// CHECK:
// Mangled name: KotlinInternalSeparate{}a
// Public signature: /KotlinInternalSeparate.a|-1200697420457237799[0]
// Public signature debug description: {}a
@PublishedApi
internal open val a: Int
// CHECK JVM_IR:
// Mangled name: KotlinInternalSeparate#<get-a>(){}kotlin.Int
// Public signature: /KotlinInternalSeparate.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
internal open get(): Int
}
// MODULE: main
// FILE: test.kt
// CHECK:
// Mangled name: A
// Public signature: /A|null[0]
class A : InternalVisibility, JavaDefault {
// CHECK:
// Mangled name: A#<init>(){}
// Public signature: /A.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: A#foo(){}
// Public signature: /A.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
override fun foo(): Unit
// CHECK:
// Mangled name: A{}a
// Public signature: /A.a|-1200697420457237799[0]
// Public signature debug description: {}a
internal override val a: Int
// CHECK JVM_IR:
// Mangled name: A#<get-a>(){}kotlin.Int
// Public signature: /A.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
internal override get(): Int
}
// CHECK:
// Mangled name: B
// Public signature: /B|null[0]
class B : InternalVisibility, JavaPublic {
// CHECK:
// Mangled name: B#<init>(){}
// Public signature: /B.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: B#foo(){}
// Public signature: /B.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
override fun foo(): Unit
// CHECK:
// Mangled name: B{}a
// Public signature: /B.a|-1200697420457237799[0]
// Public signature debug description: {}a
internal override val a: Int
// CHECK JVM_IR:
// Mangled name: B#<get-a>(){}kotlin.Int
// Public signature: /B.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
internal override get(): Int
}
// CHECK:
// Mangled name: C
// Public signature: /C|null[0]
abstract class C : KotlinInternalSeparate, JavaDefault {
// CHECK:
// Mangled name: C#<init>(){}
// Public signature: /C.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: C#foo(){}
// Public signature: /C.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
/* fake */ override fun foo(): Unit
// CHECK:
// Mangled name: C{}a
// Public signature: /C.a|-1200697420457237799[0]
// Public signature debug description: {}a
@PublishedApi
internal /* fake */ override val a: Int
// CHECK JVM_IR:
// Mangled name: C#<get-a>(){}kotlin.Int
// Public signature: /C.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
internal /* fake */ override get(): Int
}
// CHECK:
// Mangled name: D
// Public signature: /D|null[0]
class D : KotlinInternalSeparate, JavaDefault {
// CHECK:
// Mangled name: D#<init>(){}
// Public signature: /D.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: D#foo(){}
// Public signature: /D.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
override fun foo(): Unit
// CHECK:
// Mangled name: D{}a
// Public signature: /D.a|-1200697420457237799[0]
// Public signature debug description: {}a
@PublishedApi
internal /* fake */ override val a: Int
// CHECK JVM_IR:
// Mangled name: D#<get-a>(){}kotlin.Int
// Public signature: /D.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
internal /* fake */ override get(): Int
}
// CHECK:
// Mangled name: E
// Public signature: /E|null[0]
abstract class E : KotlinInternalSeparate, JavaPublic {
// CHECK:
// Mangled name: E#<init>(){}
// Public signature: /E.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: E#foo(){}
// Public signature: /E.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
/* fake */ override fun foo(): Unit
// CHECK:
// Mangled name: E{}a
// Public signature: /E.a|-1200697420457237799[0]
// Public signature debug description: {}a
@PublishedApi
internal /* fake */ override val a: Int
// CHECK JVM_IR:
// Mangled name: E#<get-a>(){}kotlin.Int
// Public signature: /E.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
internal /* fake */ override get(): Int
}
// CHECK:
// Mangled name: F
// Public signature: /F|null[0]
class F : KotlinInternalSeparate, JavaPublic {
// CHECK:
// Mangled name: F#<init>(){}
// Public signature: /F.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: F#foo(){}
// Public signature: /F.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
override fun foo(): Unit
// CHECK:
// Mangled name: F{}a
// Public signature: /F.a|-1200697420457237799[0]
// Public signature debug description: {}a
@PublishedApi
internal /* fake */ override val a: Int
// CHECK JVM_IR:
// Mangled name: F#<get-a>(){}kotlin.Int
// Public signature: /F.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
internal /* fake */ override get(): Int
}
// CHECK:
// Mangled name: InternalVisibility
// Public signature: /InternalVisibility|null[0]
open class InternalVisibility {
// CHECK:
// Mangled name: InternalVisibility{}a
// Public signature: /InternalVisibility.a|-1200697420457237799[0]
// Public signature debug description: {}a
@PublishedApi
internal open val a: Int
// CHECK JVM_IR:
// Mangled name: InternalVisibility#<get-a>(){}kotlin.Int
// Public signature: /InternalVisibility.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
internal open get
// CHECK:
// Mangled name: InternalVisibility#<init>(){}
// Public signature: /InternalVisibility.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: InternalVisibility#foo(){}
// Public signature: /InternalVisibility.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
@PublishedApi
internal open fun foo(): Unit
}
// CHECK:
// Mangled name: #test(A;B;C;D;E;F){}
// Public signature: /test|-4390352378432875580[0]
// Public signature debug description: test(A;B;C;D;E;F){}
fun test(a: A, b: B, c: C, d: D, e: E, f: F): Unit
@@ -0,0 +1,282 @@
Module: separate
FILE fqName:<root> fileName:/KotlinInternalSeparate.kt
CLASS CLASS name:KotlinInternalSeparate modality:OPEN visibility:public superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.KotlinInternalSeparate
CONSTRUCTOR visibility:public <> () returnType:<root>.KotlinInternalSeparate [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:KotlinInternalSeparate modality:OPEN visibility:public superTypes:[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 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:foo visibility:internal modality:OPEN <> ($this:<root>.KotlinInternalSeparate) returnType:kotlin.Unit
annotations:
PublishedApi
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInternalSeparate
BLOCK_BODY
PROPERTY name:a visibility:internal modality:OPEN [val]
annotations:
PublishedApi
FUN name:<get-a> visibility:internal modality:OPEN <> ($this:<root>.KotlinInternalSeparate) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a visibility:internal modality:OPEN [val]
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInternalSeparate
BLOCK_BODY
RETURN type=kotlin.Nothing from='internal open fun <get-a> (): kotlin.Int declared in <root>.KotlinInternalSeparate'
CONST Int type=kotlin.Int value=1
Module: main
FILE fqName:<root> fileName:/test.kt
CLASS CLASS name:A modality:FINAL visibility:public superTypes:[<root>.JavaDefault; <root>.InternalVisibility]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.A
CONSTRUCTOR visibility:public <> () returnType:<root>.A [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.InternalVisibility'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:A modality:FINAL visibility:public superTypes:[<root>.JavaDefault; <root>.InternalVisibility]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.JavaDefault
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.InternalVisibility
$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 <root>.JavaDefault
public open fun hashCode (): kotlin.Int declared in <root>.InternalVisibility
$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 <root>.JavaDefault
public open fun toString (): kotlin.String declared in <root>.InternalVisibility
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.A) returnType:kotlin.Unit
overridden:
public abstract fun foo (): kotlin.Unit declared in <root>.JavaDefault
internal open fun foo (): kotlin.Unit declared in <root>.InternalVisibility
$this: VALUE_PARAMETER name:<this> type:<root>.A
BLOCK_BODY
PROPERTY name:a visibility:internal modality:OPEN [val]
overridden:
internal open a: kotlin.Int
FUN name:<get-a> visibility:internal modality:OPEN <> ($this:<root>.A) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a visibility:internal modality:OPEN [val]
overridden:
internal open fun <get-a> (): kotlin.Int declared in <root>.InternalVisibility
$this: VALUE_PARAMETER name:<this> type:<root>.A
BLOCK_BODY
RETURN type=kotlin.Nothing from='internal open fun <get-a> (): kotlin.Int declared in <root>.A'
CONST Int type=kotlin.Int value=10
CLASS CLASS name:B modality:FINAL visibility:public superTypes:[<root>.JavaPublic; <root>.InternalVisibility]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.B
CONSTRUCTOR visibility:public <> () returnType:<root>.B [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.InternalVisibility'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:B modality:FINAL visibility:public superTypes:[<root>.JavaPublic; <root>.InternalVisibility]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.JavaPublic
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.InternalVisibility
$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 <root>.JavaPublic
public open fun hashCode (): kotlin.Int declared in <root>.InternalVisibility
$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 <root>.JavaPublic
public open fun toString (): kotlin.String declared in <root>.InternalVisibility
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.B) returnType:kotlin.Unit
overridden:
public abstract fun foo (): kotlin.Unit declared in <root>.JavaPublic
internal open fun foo (): kotlin.Unit declared in <root>.InternalVisibility
$this: VALUE_PARAMETER name:<this> type:<root>.B
BLOCK_BODY
PROPERTY name:a visibility:internal modality:OPEN [val]
overridden:
internal open a: kotlin.Int
FUN name:<get-a> visibility:internal modality:OPEN <> ($this:<root>.B) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a visibility:internal modality:OPEN [val]
overridden:
internal open fun <get-a> (): kotlin.Int declared in <root>.InternalVisibility
$this: VALUE_PARAMETER name:<this> type:<root>.B
BLOCK_BODY
RETURN type=kotlin.Nothing from='internal open fun <get-a> (): kotlin.Int declared in <root>.B'
CONST Int type=kotlin.Int value=10
CLASS CLASS name:C modality:ABSTRACT visibility:public superTypes:[<root>.JavaDefault; <root>.KotlinInternalSeparate]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.C
CONSTRUCTOR visibility:public <> () returnType:<root>.C [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.KotlinInternalSeparate'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:C modality:ABSTRACT visibility:public superTypes:[<root>.JavaDefault; <root>.KotlinInternalSeparate]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.JavaDefault
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.KotlinInternalSeparate
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:public modality:ABSTRACT <> ($this:<root>.JavaDefault) returnType:kotlin.Unit [fake_override]
overridden:
public abstract fun foo (): kotlin.Unit declared in <root>.JavaDefault
$this: VALUE_PARAMETER name:<this> type:<root>.JavaDefault
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 <root>.JavaDefault
public open fun hashCode (): kotlin.Int declared in <root>.KotlinInternalSeparate
$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 <root>.JavaDefault
public open fun toString (): kotlin.String declared in <root>.KotlinInternalSeparate
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:D modality:FINAL visibility:public superTypes:[<root>.JavaDefault; <root>.KotlinInternalSeparate]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.D
CONSTRUCTOR visibility:public <> () returnType:<root>.D [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.KotlinInternalSeparate'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:D modality:FINAL visibility:public superTypes:[<root>.JavaDefault; <root>.KotlinInternalSeparate]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.JavaDefault
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.KotlinInternalSeparate
$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 <root>.JavaDefault
public open fun hashCode (): kotlin.Int declared in <root>.KotlinInternalSeparate
$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 <root>.JavaDefault
public open fun toString (): kotlin.String declared in <root>.KotlinInternalSeparate
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.D) returnType:kotlin.Unit
overridden:
public abstract fun foo (): kotlin.Unit declared in <root>.JavaDefault
$this: VALUE_PARAMETER name:<this> type:<root>.D
BLOCK_BODY
CLASS CLASS name:E modality:ABSTRACT visibility:public superTypes:[<root>.JavaPublic; <root>.KotlinInternalSeparate]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.E
CONSTRUCTOR visibility:public <> () returnType:<root>.E [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.KotlinInternalSeparate'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:E modality:ABSTRACT visibility:public superTypes:[<root>.JavaPublic; <root>.KotlinInternalSeparate]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.JavaPublic
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.KotlinInternalSeparate
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:public modality:ABSTRACT <> ($this:<root>.JavaPublic) returnType:kotlin.Unit [fake_override]
overridden:
public abstract fun foo (): kotlin.Unit declared in <root>.JavaPublic
$this: VALUE_PARAMETER name:<this> type:<root>.JavaPublic
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 <root>.JavaPublic
public open fun hashCode (): kotlin.Int declared in <root>.KotlinInternalSeparate
$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 <root>.JavaPublic
public open fun toString (): kotlin.String declared in <root>.KotlinInternalSeparate
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:F modality:FINAL visibility:public superTypes:[<root>.JavaPublic; <root>.KotlinInternalSeparate]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.F
CONSTRUCTOR visibility:public <> () returnType:<root>.F [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.KotlinInternalSeparate'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:F modality:FINAL visibility:public superTypes:[<root>.JavaPublic; <root>.KotlinInternalSeparate]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.JavaPublic
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.KotlinInternalSeparate
$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 <root>.JavaPublic
public open fun hashCode (): kotlin.Int declared in <root>.KotlinInternalSeparate
$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 <root>.JavaPublic
public open fun toString (): kotlin.String declared in <root>.KotlinInternalSeparate
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.F) returnType:kotlin.Unit
overridden:
public abstract fun foo (): kotlin.Unit declared in <root>.JavaPublic
$this: VALUE_PARAMETER name:<this> type:<root>.F
BLOCK_BODY
CLASS CLASS name:InternalVisibility modality:OPEN visibility:public superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.InternalVisibility
PROPERTY name:a visibility:internal modality:OPEN [val]
annotations:
PublishedApi
FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.Int visibility:private [final]
EXPRESSION_BODY
CONST Int type=kotlin.Int value=4
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-a> visibility:internal modality:OPEN <> ($this:<root>.InternalVisibility) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a visibility:internal modality:OPEN [val]
$this: VALUE_PARAMETER name:<this> type:<root>.InternalVisibility
BLOCK_BODY
RETURN type=kotlin.Nothing from='internal open fun <get-a> (): kotlin.Int declared in <root>.InternalVisibility'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.InternalVisibility declared in <root>.InternalVisibility.<get-a>' type=<root>.InternalVisibility origin=null
CONSTRUCTOR visibility:public <> () returnType:<root>.InternalVisibility [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:InternalVisibility modality:OPEN visibility:public superTypes:[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 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:foo visibility:internal modality:OPEN <> ($this:<root>.InternalVisibility) returnType:kotlin.Unit
annotations:
PublishedApi
$this: VALUE_PARAMETER name:<this> type:<root>.InternalVisibility
BLOCK_BODY
FUN name:test visibility:public modality:FINAL <> (a:<root>.A, b:<root>.B, c:<root>.C, d:<root>.D, e:<root>.E, f:<root>.F) returnType:kotlin.Unit
VALUE_PARAMETER name:a index:0 type:<root>.A
VALUE_PARAMETER name:b index:1 type:<root>.B
VALUE_PARAMETER name:c index:2 type:<root>.C
VALUE_PARAMETER name:d index:3 type:<root>.D
VALUE_PARAMETER name:e index:4 type:<root>.E
VALUE_PARAMETER name:f index:5 type:<root>.F
BLOCK_BODY
CALL 'public open fun foo (): kotlin.Unit declared in <root>.A' type=kotlin.Unit origin=null
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'internal open fun <get-a> (): kotlin.Int declared in <root>.A' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
CALL 'public open fun foo (): kotlin.Unit declared in <root>.B' type=kotlin.Unit origin=null
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'internal open fun <get-a> (): kotlin.Int declared in <root>.B' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
CALL 'public abstract fun foo (): kotlin.Unit declared in <root>.C' type=kotlin.Unit origin=null
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
CALL 'public open fun foo (): kotlin.Unit declared in <root>.D' type=kotlin.Unit origin=null
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
CALL 'public open fun foo (): kotlin.Unit declared in <root>.F' type=kotlin.Unit origin=null
$this: GET_VAR 'f: <root>.F declared in <root>.test' type=<root>.F origin=null
@@ -0,0 +1,68 @@
// TARGET_BACKEND: JVM
// SEPARATE_SIGNATURE_DUMP_FOR_K2
// ^ ISSUE: KT-63381
// MODULE: separate
// FILE: KotlinInternalSeparate.kt
open class KotlinInternalSeparate {
@PublishedApi
internal open val a : Int
get() = 1
@PublishedApi
internal open fun foo() {}
}
// MODULE: main(separate)
// FILE: JavaDefault.java
public interface JavaDefault {
int a = 2;
void foo();
}
// FILE: JavaPublic.java
public interface JavaPublic {
public int a = 2;
public void foo();
}
// FILE: test.kt
open class InternalVisibility {
@PublishedApi
internal open val a: Int = 4
@PublishedApi
internal open fun foo() {}
}
class A : JavaDefault, InternalVisibility() {
override fun foo() {}
override val a: Int
get() = 10
}
class B : JavaPublic, InternalVisibility() {
override fun foo() {}
override val a: Int
get() = 10
}
abstract class C : JavaDefault, KotlinInternalSeparate()
class D : JavaDefault, KotlinInternalSeparate() {
override fun foo() {}
}
abstract class E : JavaPublic, KotlinInternalSeparate()
class F : JavaPublic, KotlinInternalSeparate() {
override fun foo() {}
}
fun test(a: A, b: B, c: C, d: D, e: E, f: F){
a.foo()
a.a
b.foo()
b.a
c.foo()
d.foo()
f.foo()
}
@@ -0,0 +1,128 @@
// MODULE: separate
// FILE: KotlinInternalSeparate.kt
open class KotlinInternalSeparate {
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
@PublishedApi
internal open fun foo() {
}
@PublishedApi
internal open val a: Int
internal open get(): Int {
return 1
}
}
// MODULE: main
// FILE: test.kt
class A : InternalVisibility, JavaDefault {
constructor() /* primary */ {
super/*InternalVisibility*/()
/* <init>() */
}
override fun foo() {
}
internal override val a: Int
internal override get(): Int {
return 10
}
}
class B : InternalVisibility, JavaPublic {
constructor() /* primary */ {
super/*InternalVisibility*/()
/* <init>() */
}
override fun foo() {
}
internal override val a: Int
internal override get(): Int {
return 10
}
}
abstract class C : KotlinInternalSeparate, JavaDefault {
constructor() /* primary */ {
super/*KotlinInternalSeparate*/()
/* <init>() */
}
}
class D : KotlinInternalSeparate, JavaDefault {
constructor() /* primary */ {
super/*KotlinInternalSeparate*/()
/* <init>() */
}
override fun foo() {
}
}
abstract class E : KotlinInternalSeparate, JavaPublic {
constructor() /* primary */ {
super/*KotlinInternalSeparate*/()
/* <init>() */
}
}
class F : KotlinInternalSeparate, JavaPublic {
constructor() /* primary */ {
super/*KotlinInternalSeparate*/()
/* <init>() */
}
override fun foo() {
}
}
open class InternalVisibility {
@PublishedApi
internal open val a: Int
field = 4
internal open get
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
@PublishedApi
internal open fun foo() {
}
}
fun test(a: A, b: B, c: C, d: D, e: E, f: F) {
a.foo()
a.<get-a>() /*~> Unit */
b.foo()
b.<get-a>() /*~> Unit */
c.foo()
d.foo()
f.foo()
}
@@ -0,0 +1,203 @@
// MODULE: separate
// FILE: KotlinInternalSeparate.kt
// CHECK:
// Mangled name: KotlinInternalSeparate
// Public signature: /KotlinInternalSeparate|null[0]
open class KotlinInternalSeparate {
// CHECK:
// Mangled name: KotlinInternalSeparate#<init>(){}
// Public signature: /KotlinInternalSeparate.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: KotlinInternalSeparate#foo(){}
// Public signature: /KotlinInternalSeparate.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
@PublishedApi
internal open fun foo(): Unit
// CHECK:
// Mangled name: KotlinInternalSeparate{}a
// Public signature: /KotlinInternalSeparate.a|-1200697420457237799[0]
// Public signature debug description: {}a
@PublishedApi
internal open val a: Int
// CHECK JVM_IR:
// Mangled name: KotlinInternalSeparate#<get-a>(){}kotlin.Int
// Public signature: /KotlinInternalSeparate.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
internal open get(): Int
}
// MODULE: main
// FILE: test.kt
// CHECK:
// Mangled name: A
// Public signature: /A|null[0]
class A : InternalVisibility, JavaDefault {
// CHECK:
// Mangled name: A#<init>(){}
// Public signature: /A.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: A#foo(){}
// Public signature: /A.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
override fun foo(): Unit
// CHECK:
// Mangled name: A{}a
// Public signature: /A.a|-1200697420457237799[0]
// Public signature debug description: {}a
internal override val a: Int
// CHECK JVM_IR:
// Mangled name: A#<get-a>(){}kotlin.Int
// Public signature: /A.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
internal override get(): Int
}
// CHECK:
// Mangled name: B
// Public signature: /B|null[0]
class B : InternalVisibility, JavaPublic {
// CHECK:
// Mangled name: B#<init>(){}
// Public signature: /B.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: B#foo(){}
// Public signature: /B.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
override fun foo(): Unit
// CHECK:
// Mangled name: B{}a
// Public signature: /B.a|-1200697420457237799[0]
// Public signature debug description: {}a
internal override val a: Int
// CHECK JVM_IR:
// Mangled name: B#<get-a>(){}kotlin.Int
// Public signature: /B.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
internal override get(): Int
}
// CHECK:
// Mangled name: C
// Public signature: /C|null[0]
abstract class C : KotlinInternalSeparate, JavaDefault {
// CHECK:
// Mangled name: C#<init>(){}
// Public signature: /C.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: C#foo(){}
// Public signature: /C.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
abstract /* fake */ override fun foo(): Unit
}
// CHECK:
// Mangled name: D
// Public signature: /D|null[0]
class D : KotlinInternalSeparate, JavaDefault {
// CHECK:
// Mangled name: D#<init>(){}
// Public signature: /D.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: D#foo(){}
// Public signature: /D.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
override fun foo(): Unit
}
// CHECK:
// Mangled name: E
// Public signature: /E|null[0]
abstract class E : KotlinInternalSeparate, JavaPublic {
// CHECK:
// Mangled name: E#<init>(){}
// Public signature: /E.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: E#foo(){}
// Public signature: /E.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
abstract /* fake */ override fun foo(): Unit
}
// CHECK:
// Mangled name: F
// Public signature: /F|null[0]
class F : KotlinInternalSeparate, JavaPublic {
// CHECK:
// Mangled name: F#<init>(){}
// Public signature: /F.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: F#foo(){}
// Public signature: /F.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
override fun foo(): Unit
}
// CHECK:
// Mangled name: InternalVisibility
// Public signature: /InternalVisibility|null[0]
open class InternalVisibility {
// CHECK:
// Mangled name: InternalVisibility{}a
// Public signature: /InternalVisibility.a|-1200697420457237799[0]
// Public signature debug description: {}a
@PublishedApi
internal open val a: Int
// CHECK JVM_IR:
// Mangled name: InternalVisibility#<get-a>(){}kotlin.Int
// Public signature: /InternalVisibility.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
internal open get
// CHECK:
// Mangled name: InternalVisibility#<init>(){}
// Public signature: /InternalVisibility.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: InternalVisibility#foo(){}
// Public signature: /InternalVisibility.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
@PublishedApi
internal open fun foo(): Unit
}
// CHECK:
// Mangled name: #test(A;B;C;D;E;F){}
// Public signature: /test|-4390352378432875580[0]
// Public signature debug description: test(A;B;C;D;E;F){}
fun test(a: A, b: B, c: C, d: D, e: E, f: F): Unit
@@ -0,0 +1,832 @@
Module: separate
Module: main
FILE fqName:<root> fileName:/test.kt
CLASS CLASS name:A modality:ABSTRACT visibility:public superTypes:[<root>.JavaDefaultSeparateModule; <root>.KotlinDefault]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.A
CONSTRUCTOR visibility:public <> () returnType:<root>.A [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:A modality:ABSTRACT visibility:public superTypes:[<root>.JavaDefaultSeparateModule; <root>.KotlinDefault]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.JavaDefaultSeparateModule
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.KotlinDefault
$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 <root>.JavaDefaultSeparateModule
public open fun hashCode (): kotlin.Int declared in <root>.KotlinDefault
$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 <root>.JavaDefaultSeparateModule
public open fun toString (): kotlin.String declared in <root>.KotlinDefault
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.A) returnType:kotlin.Unit
overridden:
public abstract fun foo (): kotlin.Unit declared in <root>.JavaDefaultSeparateModule
public open fun foo (): kotlin.Unit declared in <root>.KotlinDefault
$this: VALUE_PARAMETER name:<this> type:<root>.A
BLOCK_BODY
PROPERTY name:a visibility:public modality:OPEN [val]
overridden:
public open a: kotlin.Int
FUN name:<get-a> visibility:public modality:OPEN <> ($this:<root>.A) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a visibility:public modality:OPEN [val]
overridden:
public open fun <get-a> (): kotlin.Int declared in <root>.KotlinDefault
$this: VALUE_PARAMETER name:<this> type:<root>.A
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun <get-a> (): kotlin.Int declared in <root>.A'
CONST Int type=kotlin.Int value=5
CLASS CLASS name:B modality:ABSTRACT visibility:public superTypes:[<root>.JavaDefaultSeparateModule; <root>.KotlinPrivate]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.B
CONSTRUCTOR visibility:public <> () returnType:<root>.B [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:B modality:ABSTRACT visibility:public superTypes:[<root>.JavaDefaultSeparateModule; <root>.KotlinPrivate]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.JavaDefaultSeparateModule
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.KotlinPrivate
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:public modality:ABSTRACT <> ($this:<root>.JavaDefaultSeparateModule) returnType:kotlin.Unit [fake_override]
overridden:
public abstract fun foo (): kotlin.Unit declared in <root>.JavaDefaultSeparateModule
$this: VALUE_PARAMETER name:<this> type:<root>.JavaDefaultSeparateModule
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 <root>.JavaDefaultSeparateModule
public open fun hashCode (): kotlin.Int declared in <root>.KotlinPrivate
$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 <root>.JavaDefaultSeparateModule
public open fun toString (): kotlin.String declared in <root>.KotlinPrivate
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:C modality:FINAL visibility:public superTypes:[<root>.JavaDefaultSeparateModule; <root>.KotlinPrivate]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.C
PROPERTY name:a visibility:public modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.Int visibility:private [final]
EXPRESSION_BODY
CONST Int type=kotlin.Int value=5
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-a> visibility:public modality:FINAL <> ($this:<root>.C) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a visibility:public modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.C
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-a> (): kotlin.Int declared in <root>.C'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.C declared in <root>.C.<get-a>' type=<root>.C origin=null
CONSTRUCTOR visibility:public <> () returnType:<root>.C [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:C modality:FINAL visibility:public superTypes:[<root>.JavaDefaultSeparateModule; <root>.KotlinPrivate]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.JavaDefaultSeparateModule
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.KotlinPrivate
$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 <root>.JavaDefaultSeparateModule
public open fun hashCode (): kotlin.Int declared in <root>.KotlinPrivate
$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 <root>.JavaDefaultSeparateModule
public open fun toString (): kotlin.String declared in <root>.KotlinPrivate
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.C) returnType:kotlin.Unit
overridden:
public abstract fun foo (): kotlin.Unit declared in <root>.JavaDefaultSeparateModule
$this: VALUE_PARAMETER name:<this> type:<root>.C
BLOCK_BODY
CLASS CLASS name:D modality:FINAL visibility:public superTypes:[<root>.JavaDefaultSeparateModule; <root>.KotlinProtected]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.D
CONSTRUCTOR visibility:public <> () returnType:<root>.D [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.KotlinProtected'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:D modality:FINAL visibility:public superTypes:[<root>.JavaDefaultSeparateModule; <root>.KotlinProtected]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.JavaDefaultSeparateModule
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.KotlinProtected
$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 <root>.JavaDefaultSeparateModule
public open fun hashCode (): kotlin.Int declared in <root>.KotlinProtected
$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 <root>.JavaDefaultSeparateModule
public open fun toString (): kotlin.String declared in <root>.KotlinProtected
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.D) returnType:kotlin.Unit
overridden:
public abstract fun foo (): kotlin.Unit declared in <root>.JavaDefaultSeparateModule
protected open fun foo (): kotlin.Unit declared in <root>.KotlinProtected
$this: VALUE_PARAMETER name:<this> type:<root>.D
BLOCK_BODY
PROPERTY name:a visibility:protected modality:OPEN [val]
overridden:
protected open a: kotlin.Int
FUN name:<get-a> visibility:protected modality:OPEN <> ($this:<root>.D) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a visibility:protected modality:OPEN [val]
overridden:
protected open fun <get-a> (): kotlin.Int declared in <root>.KotlinProtected
$this: VALUE_PARAMETER name:<this> type:<root>.D
BLOCK_BODY
RETURN type=kotlin.Nothing from='protected open fun <get-a> (): kotlin.Int declared in <root>.D'
CONST Int type=kotlin.Int value=5
CLASS CLASS name:E modality:FINAL visibility:public superTypes:[<root>.JavaDefaultSeparateModule; <root>.KotlinPublic]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.E
CONSTRUCTOR visibility:public <> () returnType:<root>.E [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:E modality:FINAL visibility:public superTypes:[<root>.JavaDefaultSeparateModule; <root>.KotlinPublic]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.JavaDefaultSeparateModule
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.KotlinPublic
$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 <root>.JavaDefaultSeparateModule
public open fun hashCode (): kotlin.Int declared in <root>.KotlinPublic
$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 <root>.JavaDefaultSeparateModule
public open fun toString (): kotlin.String declared in <root>.KotlinPublic
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.E) returnType:kotlin.Unit
overridden:
public abstract fun foo (): kotlin.Unit declared in <root>.JavaDefaultSeparateModule
public open fun foo (): kotlin.Unit declared in <root>.KotlinPublic
$this: VALUE_PARAMETER name:<this> type:<root>.E
BLOCK_BODY
PROPERTY name:a visibility:public modality:OPEN [val]
overridden:
public open a: kotlin.Int
FUN name:<get-a> visibility:public modality:OPEN <> ($this:<root>.E) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a visibility:public modality:OPEN [val]
overridden:
public open fun <get-a> (): kotlin.Int declared in <root>.KotlinPublic
$this: VALUE_PARAMETER name:<this> type:<root>.E
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun <get-a> (): kotlin.Int declared in <root>.E'
CONST Int type=kotlin.Int value=5
CLASS CLASS name:F modality:FINAL visibility:public superTypes:[<root>.JavaDefaultSeparateModule; <root>.KotlinInternal]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.F
CONSTRUCTOR visibility:public <> () returnType:<root>.F [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.KotlinInternal'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:F modality:FINAL visibility:public superTypes:[<root>.JavaDefaultSeparateModule; <root>.KotlinInternal]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.JavaDefaultSeparateModule
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.KotlinInternal
$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 <root>.JavaDefaultSeparateModule
public open fun hashCode (): kotlin.Int declared in <root>.KotlinInternal
$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 <root>.JavaDefaultSeparateModule
public open fun toString (): kotlin.String declared in <root>.KotlinInternal
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.F) returnType:kotlin.Unit
overridden:
public abstract fun foo (): kotlin.Unit declared in <root>.JavaDefaultSeparateModule
internal open fun foo (): kotlin.Unit declared in <root>.KotlinInternal
$this: VALUE_PARAMETER name:<this> type:<root>.F
BLOCK_BODY
PROPERTY name:a visibility:public modality:OPEN [val]
overridden:
internal open a: kotlin.Int
FUN name:<get-a> visibility:public modality:OPEN <> ($this:<root>.F) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a visibility:public modality:OPEN [val]
overridden:
internal open fun <get-a> (): kotlin.Int declared in <root>.KotlinInternal
$this: VALUE_PARAMETER name:<this> type:<root>.F
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun <get-a> (): kotlin.Int declared in <root>.F'
CONST Int type=kotlin.Int value=5
CLASS CLASS name:G modality:FINAL visibility:public superTypes:[<root>.JavaProtectedSeparateModule; <root>.KotlinDefault]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.G
CONSTRUCTOR visibility:public <> () returnType:<root>.G [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.JavaProtectedSeparateModule'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:G modality:FINAL visibility:public superTypes:[<root>.JavaProtectedSeparateModule; <root>.KotlinDefault]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.JavaProtectedSeparateModule
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.KotlinDefault
$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 <root>.JavaProtectedSeparateModule
public open fun hashCode (): kotlin.Int declared in <root>.KotlinDefault
$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 <root>.JavaProtectedSeparateModule
public open fun toString (): kotlin.String declared in <root>.KotlinDefault
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.G) returnType:kotlin.Unit
overridden:
protected/*protected and package*/ open fun foo (): kotlin.Unit declared in <root>.JavaProtectedSeparateModule
public open fun foo (): kotlin.Unit declared in <root>.KotlinDefault
$this: VALUE_PARAMETER name:<this> type:<root>.G
BLOCK_BODY
PROPERTY name:a visibility:public modality:OPEN [val]
overridden:
public open a: kotlin.Int
FUN name:<get-a> visibility:public modality:OPEN <> ($this:<root>.G) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a visibility:public modality:OPEN [val]
overridden:
public open fun <get-a> (): kotlin.Int declared in <root>.KotlinDefault
$this: VALUE_PARAMETER name:<this> type:<root>.G
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun <get-a> (): kotlin.Int declared in <root>.G'
CONST Int type=kotlin.Int value=5
CLASS CLASS name:H modality:FINAL visibility:public superTypes:[<root>.JavaProtectedSeparateModule; <root>.KotlinPrivate]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.H
CONSTRUCTOR visibility:public <> () returnType:<root>.H [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.JavaProtectedSeparateModule'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:H modality:FINAL visibility:public superTypes:[<root>.JavaProtectedSeparateModule; <root>.KotlinPrivate]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.JavaProtectedSeparateModule
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.KotlinPrivate
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:protected/*protected and package*/ modality:OPEN <> ($this:<root>.JavaProtectedSeparateModule) returnType:kotlin.Unit [fake_override]
overridden:
protected/*protected and package*/ open fun foo (): kotlin.Unit declared in <root>.JavaProtectedSeparateModule
$this: VALUE_PARAMETER name:<this> type:<root>.JavaProtectedSeparateModule
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 <root>.JavaProtectedSeparateModule
public open fun hashCode (): kotlin.Int declared in <root>.KotlinPrivate
$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 <root>.JavaProtectedSeparateModule
public open fun toString (): kotlin.String declared in <root>.KotlinPrivate
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:I modality:FINAL visibility:public superTypes:[<root>.JavaProtectedSeparateModule; <root>.KotlinPrivate]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.I
PROPERTY name:a visibility:public modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.Int visibility:private [final]
EXPRESSION_BODY
CONST Int type=kotlin.Int value=5
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-a> visibility:public modality:FINAL <> ($this:<root>.I) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a visibility:public modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.I
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-a> (): kotlin.Int declared in <root>.I'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.I declared in <root>.I.<get-a>' type=<root>.I origin=null
CONSTRUCTOR visibility:public <> () returnType:<root>.I [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.JavaProtectedSeparateModule'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:I modality:FINAL visibility:public superTypes:[<root>.JavaProtectedSeparateModule; <root>.KotlinPrivate]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.JavaProtectedSeparateModule
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.KotlinPrivate
$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 <root>.JavaProtectedSeparateModule
public open fun hashCode (): kotlin.Int declared in <root>.KotlinPrivate
$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 <root>.JavaProtectedSeparateModule
public open fun toString (): kotlin.String declared in <root>.KotlinPrivate
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.I) returnType:kotlin.Unit
overridden:
protected/*protected and package*/ open fun foo (): kotlin.Unit declared in <root>.JavaProtectedSeparateModule
$this: VALUE_PARAMETER name:<this> type:<root>.I
BLOCK_BODY
CLASS CLASS name:J modality:FINAL visibility:public superTypes:[<root>.JavaProtectedSeparateModule; <root>.KotlinPublic]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.J
CONSTRUCTOR visibility:public <> () returnType:<root>.J [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.JavaProtectedSeparateModule'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:J modality:FINAL visibility:public superTypes:[<root>.JavaProtectedSeparateModule; <root>.KotlinPublic]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.JavaProtectedSeparateModule
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.KotlinPublic
$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 <root>.JavaProtectedSeparateModule
public open fun hashCode (): kotlin.Int declared in <root>.KotlinPublic
$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 <root>.JavaProtectedSeparateModule
public open fun toString (): kotlin.String declared in <root>.KotlinPublic
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.J) returnType:kotlin.Unit
overridden:
protected/*protected and package*/ open fun foo (): kotlin.Unit declared in <root>.JavaProtectedSeparateModule
public open fun foo (): kotlin.Unit declared in <root>.KotlinPublic
$this: VALUE_PARAMETER name:<this> type:<root>.J
BLOCK_BODY
PROPERTY name:a visibility:public modality:OPEN [val]
overridden:
public open a: kotlin.Int
FUN name:<get-a> visibility:public modality:OPEN <> ($this:<root>.J) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a visibility:public modality:OPEN [val]
overridden:
public open fun <get-a> (): kotlin.Int declared in <root>.KotlinPublic
$this: VALUE_PARAMETER name:<this> type:<root>.J
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun <get-a> (): kotlin.Int declared in <root>.J'
CONST Int type=kotlin.Int value=5
CLASS CLASS name:K modality:ABSTRACT visibility:public superTypes:[<root>.JavaPublic; <root>.JavaDefaultSeparateModule]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.K
CONSTRUCTOR visibility:public <> () returnType:<root>.K [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:K modality:ABSTRACT visibility:public superTypes:[<root>.JavaPublic; <root>.JavaDefaultSeparateModule]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.JavaPublic
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.JavaDefaultSeparateModule
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:public modality:ABSTRACT <> ($this:<root>.JavaPublic) returnType:kotlin.Unit [fake_override]
overridden:
public abstract fun foo (): kotlin.Unit declared in <root>.JavaPublic
public abstract fun foo (): kotlin.Unit declared in <root>.JavaDefaultSeparateModule
$this: VALUE_PARAMETER name:<this> type:<root>.JavaPublic
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 <root>.JavaPublic
public open fun hashCode (): kotlin.Int declared in <root>.JavaDefaultSeparateModule
$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 <root>.JavaPublic
public open fun toString (): kotlin.String declared in <root>.JavaDefaultSeparateModule
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:KotlinInternal modality:OPEN visibility:public superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.KotlinInternal
CONSTRUCTOR visibility:public <> () returnType:<root>.KotlinInternal [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:KotlinInternal modality:OPEN visibility:public superTypes:[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 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:foo visibility:internal modality:OPEN <> ($this:<root>.KotlinInternal) returnType:kotlin.Unit
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInternal
BLOCK_BODY
PROPERTY name:a visibility:internal modality:OPEN [val]
FUN name:<get-a> visibility:internal modality:OPEN <> ($this:<root>.KotlinInternal) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a visibility:internal modality:OPEN [val]
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInternal
BLOCK_BODY
RETURN type=kotlin.Nothing from='internal open fun <get-a> (): kotlin.Int declared in <root>.KotlinInternal'
CONST Int type=kotlin.Int value=1
CLASS CLASS name:KotlinProtected modality:OPEN visibility:public superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.KotlinProtected
PROPERTY name:a visibility:protected modality:OPEN [val]
FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.Int visibility:private [final]
EXPRESSION_BODY
CONST Int type=kotlin.Int value=1
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-a> visibility:protected modality:OPEN <> ($this:<root>.KotlinProtected) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a visibility:protected modality:OPEN [val]
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinProtected
BLOCK_BODY
RETURN type=kotlin.Nothing from='protected open fun <get-a> (): kotlin.Int declared in <root>.KotlinProtected'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.KotlinProtected declared in <root>.KotlinProtected.<get-a>' type=<root>.KotlinProtected origin=null
CONSTRUCTOR visibility:public <> () returnType:<root>.KotlinProtected [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:KotlinProtected modality:OPEN visibility:public superTypes:[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 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:foo visibility:protected modality:OPEN <> ($this:<root>.KotlinProtected) returnType:kotlin.Unit
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinProtected
BLOCK_BODY
CLASS CLASS name:L modality:FINAL visibility:public superTypes:[<root>.JavaPublic; <root>.JavaDefaultSeparateModule]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.L
PROPERTY name:a visibility:public modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.Int visibility:private [final]
EXPRESSION_BODY
CONST Int type=kotlin.Int value=1
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-a> visibility:public modality:FINAL <> ($this:<root>.L) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a visibility:public modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.L
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-a> (): kotlin.Int declared in <root>.L'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.L declared in <root>.L.<get-a>' type=<root>.L origin=null
CONSTRUCTOR visibility:public <> () returnType:<root>.L [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:L modality:FINAL visibility:public superTypes:[<root>.JavaPublic; <root>.JavaDefaultSeparateModule]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.JavaPublic
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.JavaDefaultSeparateModule
$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 <root>.JavaPublic
public open fun hashCode (): kotlin.Int declared in <root>.JavaDefaultSeparateModule
$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 <root>.JavaPublic
public open fun toString (): kotlin.String declared in <root>.JavaDefaultSeparateModule
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.L) returnType:kotlin.Unit
overridden:
public abstract fun foo (): kotlin.Unit declared in <root>.JavaPublic
public abstract fun foo (): kotlin.Unit declared in <root>.JavaDefaultSeparateModule
$this: VALUE_PARAMETER name:<this> type:<root>.L
BLOCK_BODY
CLASS CLASS name:M modality:FINAL visibility:public superTypes:[<root>.JavaPublic; <root>.JavaProtectedSeparateModule]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.M
PROPERTY name:a visibility:public modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.Int visibility:private [final]
EXPRESSION_BODY
CONST Int type=kotlin.Int value=1
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-a> visibility:public modality:FINAL <> ($this:<root>.M) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a visibility:public modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.M
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-a> (): kotlin.Int declared in <root>.M'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.M declared in <root>.M.<get-a>' type=<root>.M origin=null
CONSTRUCTOR visibility:public <> () returnType:<root>.M [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.JavaProtectedSeparateModule'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:M modality:FINAL visibility:public superTypes:[<root>.JavaPublic; <root>.JavaProtectedSeparateModule]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.JavaPublic
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.JavaProtectedSeparateModule
$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 <root>.JavaPublic
public open fun hashCode (): kotlin.Int declared in <root>.JavaProtectedSeparateModule
$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 <root>.JavaPublic
public open fun toString (): kotlin.String declared in <root>.JavaProtectedSeparateModule
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.M) returnType:kotlin.Unit
overridden:
public abstract fun foo (): kotlin.Unit declared in <root>.JavaPublic
protected/*protected and package*/ open fun foo (): kotlin.Unit declared in <root>.JavaProtectedSeparateModule
$this: VALUE_PARAMETER name:<this> type:<root>.M
BLOCK_BODY
CLASS CLASS name:N modality:FINAL visibility:public superTypes:[<root>.JavaProtectedSeparateModule; <root>.JavaDefault]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.N
PROPERTY name:a visibility:public modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.Int visibility:private [final]
EXPRESSION_BODY
CONST Int type=kotlin.Int value=1
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-a> visibility:public modality:FINAL <> ($this:<root>.N) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a visibility:public modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.N
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-a> (): kotlin.Int declared in <root>.N'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.N declared in <root>.N.<get-a>' type=<root>.N origin=null
CONSTRUCTOR visibility:public <> () returnType:<root>.N [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.JavaProtectedSeparateModule'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:N modality:FINAL visibility:public superTypes:[<root>.JavaProtectedSeparateModule; <root>.JavaDefault]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.JavaProtectedSeparateModule
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.JavaDefault
$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 <root>.JavaProtectedSeparateModule
public open fun hashCode (): kotlin.Int declared in <root>.JavaDefault
$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 <root>.JavaProtectedSeparateModule
public open fun toString (): kotlin.String declared in <root>.JavaDefault
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.N) returnType:kotlin.Unit
overridden:
protected/*protected and package*/ open fun foo (): kotlin.Unit declared in <root>.JavaProtectedSeparateModule
public abstract fun foo (): kotlin.Unit declared in <root>.JavaDefault
$this: VALUE_PARAMETER name:<this> type:<root>.N
BLOCK_BODY
CLASS CLASS name:O modality:ABSTRACT visibility:public superTypes:[<root>.JavaPrivate; <root>.JavaDefaultSeparateModule]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.O
CONSTRUCTOR visibility:public <> () returnType:<root>.O [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.JavaPrivate'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:O modality:ABSTRACT visibility:public superTypes:[<root>.JavaPrivate; <root>.JavaDefaultSeparateModule]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.JavaPrivate
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.JavaDefaultSeparateModule
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:public modality:ABSTRACT <> ($this:<root>.JavaDefaultSeparateModule) returnType:kotlin.Unit [fake_override]
overridden:
public abstract fun foo (): kotlin.Unit declared in <root>.JavaDefaultSeparateModule
$this: VALUE_PARAMETER name:<this> type:<root>.JavaDefaultSeparateModule
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 <root>.JavaPrivate
public open fun hashCode (): kotlin.Int declared in <root>.JavaDefaultSeparateModule
$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 <root>.JavaPrivate
public open fun toString (): kotlin.String declared in <root>.JavaDefaultSeparateModule
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:P modality:FINAL visibility:public superTypes:[<root>.JavaPrivate; <root>.JavaDefaultSeparateModule]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.P
PROPERTY name:a visibility:public modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.Int visibility:private [final]
EXPRESSION_BODY
CONST Int type=kotlin.Int value=1
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-a> visibility:public modality:FINAL <> ($this:<root>.P) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a visibility:public modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.P
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-a> (): kotlin.Int declared in <root>.P'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.P declared in <root>.P.<get-a>' type=<root>.P origin=null
CONSTRUCTOR visibility:public <> () returnType:<root>.P [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.JavaPrivate'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:P modality:FINAL visibility:public superTypes:[<root>.JavaPrivate; <root>.JavaDefaultSeparateModule]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.JavaPrivate
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.JavaDefaultSeparateModule
$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 <root>.JavaPrivate
public open fun hashCode (): kotlin.Int declared in <root>.JavaDefaultSeparateModule
$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 <root>.JavaPrivate
public open fun toString (): kotlin.String declared in <root>.JavaDefaultSeparateModule
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.P) returnType:kotlin.Unit
overridden:
public abstract fun foo (): kotlin.Unit declared in <root>.JavaDefaultSeparateModule
$this: VALUE_PARAMETER name:<this> type:<root>.P
BLOCK_BODY
CLASS CLASS name:R modality:FINAL visibility:public superTypes:[<root>.JavaProtected; <root>.JavaDefaultSeparateModule]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.R
PROPERTY name:a visibility:public modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.Int visibility:private [final]
EXPRESSION_BODY
CONST Int type=kotlin.Int value=1
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-a> visibility:public modality:FINAL <> ($this:<root>.R) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a visibility:public modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.R
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-a> (): kotlin.Int declared in <root>.R'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.R declared in <root>.R.<get-a>' type=<root>.R origin=null
CONSTRUCTOR visibility:public <> () returnType:<root>.R [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.JavaProtected'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:R modality:FINAL visibility:public superTypes:[<root>.JavaProtected; <root>.JavaDefaultSeparateModule]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.JavaProtected
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.JavaDefaultSeparateModule
$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 <root>.JavaProtected
public open fun hashCode (): kotlin.Int declared in <root>.JavaDefaultSeparateModule
$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 <root>.JavaProtected
public open fun toString (): kotlin.String declared in <root>.JavaDefaultSeparateModule
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.R) returnType:kotlin.Unit
overridden:
protected/*protected and package*/ open fun foo (): kotlin.Unit declared in <root>.JavaProtected
public abstract fun foo (): kotlin.Unit declared in <root>.JavaDefaultSeparateModule
$this: VALUE_PARAMETER name:<this> type:<root>.R
BLOCK_BODY
CLASS INTERFACE name:KotlinDefault modality:ABSTRACT visibility:public superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.KotlinDefault
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in 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:foo visibility:public modality:OPEN <> ($this:<root>.KotlinDefault) returnType:kotlin.Unit
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinDefault
BLOCK_BODY
PROPERTY name:a visibility:public modality:OPEN [val]
FUN name:<get-a> visibility:public modality:OPEN <> ($this:<root>.KotlinDefault) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a visibility:public modality:OPEN [val]
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinDefault
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun <get-a> (): kotlin.Int declared in <root>.KotlinDefault'
CONST Int type=kotlin.Int value=1
CLASS INTERFACE name:KotlinPrivate modality:ABSTRACT visibility:public superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.KotlinPrivate
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in 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:foo visibility:private modality:FINAL <> ($this:<root>.KotlinPrivate) returnType:kotlin.Unit
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinPrivate
BLOCK_BODY
PROPERTY name:a visibility:private modality:FINAL [val]
FUN name:<get-a> visibility:private modality:FINAL <> ($this:<root>.KotlinPrivate) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a visibility:private modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinPrivate
BLOCK_BODY
RETURN type=kotlin.Nothing from='private final fun <get-a> (): kotlin.Int declared in <root>.KotlinPrivate'
CONST Int type=kotlin.Int value=1
CLASS INTERFACE name:KotlinPublic modality:ABSTRACT visibility:public superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.KotlinPublic
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in 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:foo visibility:public modality:OPEN <> ($this:<root>.KotlinPublic) returnType:kotlin.Unit
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinPublic
BLOCK_BODY
PROPERTY name:a visibility:public modality:OPEN [val]
FUN name:<get-a> visibility:public modality:OPEN <> ($this:<root>.KotlinPublic) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a visibility:public modality:OPEN [val]
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinPublic
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun <get-a> (): kotlin.Int declared in <root>.KotlinPublic'
CONST Int type=kotlin.Int value=1
FUN name:test visibility:public modality:FINAL <> (a:<root>.A, b:<root>.B, c:<root>.C, d:<root>.D, e:<root>.E, f:<root>.F, g:<root>.G, i:<root>.I, j:<root>.J, k:<root>.K, l:<root>.L, m:<root>.M, n:<root>.N, o:<root>.O, p:<root>.P, r:<root>.R) returnType:kotlin.Unit
VALUE_PARAMETER name:a index:0 type:<root>.A
VALUE_PARAMETER name:b index:1 type:<root>.B
VALUE_PARAMETER name:c index:2 type:<root>.C
VALUE_PARAMETER name:d index:3 type:<root>.D
VALUE_PARAMETER name:e index:4 type:<root>.E
VALUE_PARAMETER name:f index:5 type:<root>.F
VALUE_PARAMETER name:g index:6 type:<root>.G
VALUE_PARAMETER name:i index:7 type:<root>.I
VALUE_PARAMETER name:j index:8 type:<root>.J
VALUE_PARAMETER name:k index:9 type:<root>.K
VALUE_PARAMETER name:l index:10 type:<root>.L
VALUE_PARAMETER name:m index:11 type:<root>.M
VALUE_PARAMETER name:n index:12 type:<root>.N
VALUE_PARAMETER name:o index:13 type:<root>.O
VALUE_PARAMETER name:p index:14 type:<root>.P
VALUE_PARAMETER name:r index:15 type:<root>.R
BLOCK_BODY
CALL 'public open fun foo (): kotlin.Unit declared in <root>.A' type=kotlin.Unit origin=null
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun <get-a> (): kotlin.Int declared in <root>.A' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
CALL 'public abstract fun foo (): kotlin.Unit declared in <root>.B' type=kotlin.Unit origin=null
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
CALL 'public open fun foo (): kotlin.Unit declared in <root>.C' type=kotlin.Unit origin=null
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
CALL 'public open fun foo (): kotlin.Unit declared in <root>.D' type=kotlin.Unit origin=null
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
CALL 'public open fun foo (): kotlin.Unit declared in <root>.E' type=kotlin.Unit origin=null
$this: GET_VAR 'e: <root>.E declared in <root>.test' type=<root>.E origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun <get-a> (): kotlin.Int declared in <root>.E' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR 'e: <root>.E declared in <root>.test' type=<root>.E origin=null
CALL 'public open fun foo (): kotlin.Unit declared in <root>.F' type=kotlin.Unit origin=null
$this: GET_VAR 'f: <root>.F declared in <root>.test' type=<root>.F origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun <get-a> (): kotlin.Int declared in <root>.F' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR 'f: <root>.F declared in <root>.test' type=<root>.F origin=null
CALL 'public open fun foo (): kotlin.Unit declared in <root>.G' type=kotlin.Unit origin=null
$this: GET_VAR 'g: <root>.G declared in <root>.test' type=<root>.G origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun <get-a> (): kotlin.Int declared in <root>.G' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR 'g: <root>.G declared in <root>.test' type=<root>.G origin=null
CALL 'public open fun foo (): kotlin.Unit declared in <root>.I' type=kotlin.Unit origin=null
$this: GET_VAR 'i: <root>.I declared in <root>.test' type=<root>.I origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public final fun <get-a> (): kotlin.Int declared in <root>.I' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR 'i: <root>.I declared in <root>.test' type=<root>.I origin=null
CALL 'public open fun foo (): kotlin.Unit declared in <root>.J' type=kotlin.Unit origin=null
$this: GET_VAR 'j: <root>.J declared in <root>.test' type=<root>.J origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun <get-a> (): kotlin.Int declared in <root>.J' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR 'j: <root>.J declared in <root>.test' type=<root>.J origin=null
CALL 'public abstract fun foo (): kotlin.Unit declared in <root>.K' type=kotlin.Unit origin=null
$this: GET_VAR 'k: <root>.K declared in <root>.test' type=<root>.K origin=null
CALL 'public open fun foo (): kotlin.Unit declared in <root>.L' type=kotlin.Unit origin=null
$this: GET_VAR 'l: <root>.L declared in <root>.test' type=<root>.L origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public final fun <get-a> (): kotlin.Int declared in <root>.L' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR 'l: <root>.L declared in <root>.test' type=<root>.L origin=null
CALL 'public open fun foo (): kotlin.Unit declared in <root>.M' type=kotlin.Unit origin=null
$this: GET_VAR 'm: <root>.M declared in <root>.test' type=<root>.M origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public final fun <get-a> (): kotlin.Int declared in <root>.M' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR 'm: <root>.M declared in <root>.test' type=<root>.M origin=null
CALL 'public open fun foo (): kotlin.Unit declared in <root>.N' type=kotlin.Unit origin=null
$this: GET_VAR 'n: <root>.N declared in <root>.test' type=<root>.N origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public final fun <get-a> (): kotlin.Int declared in <root>.N' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR 'n: <root>.N declared in <root>.test' type=<root>.N origin=null
CALL 'public abstract fun foo (): kotlin.Unit declared in <root>.O' type=kotlin.Unit origin=null
$this: GET_VAR 'o: <root>.O declared in <root>.test' type=<root>.O origin=null
CALL 'public open fun foo (): kotlin.Unit declared in <root>.P' type=kotlin.Unit origin=null
$this: GET_VAR 'p: <root>.P declared in <root>.test' type=<root>.P origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public final fun <get-a> (): kotlin.Int declared in <root>.P' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR 'p: <root>.P declared in <root>.test' type=<root>.P origin=null
CALL 'public open fun foo (): kotlin.Unit declared in <root>.R' type=kotlin.Unit origin=null
$this: GET_VAR 'r: <root>.R declared in <root>.test' type=<root>.R origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public final fun <get-a> (): kotlin.Int declared in <root>.R' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR 'r: <root>.R declared in <root>.test' type=<root>.R origin=null
@@ -0,0 +1,349 @@
// MODULE: separate
// MODULE: main
// FILE: test.kt
abstract class A : JavaDefaultSeparateModule, KotlinDefault {
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
override fun foo() {
}
override val a: Int
override get(): Int {
return 5
}
}
abstract class B : JavaDefaultSeparateModule, KotlinPrivate {
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
}
class C : JavaDefaultSeparateModule, KotlinPrivate {
val a: Int
field = 5
get
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
override fun foo() {
}
}
class D : KotlinProtected, JavaDefaultSeparateModule {
constructor() /* primary */ {
super/*KotlinProtected*/()
/* <init>() */
}
override fun foo() {
}
protected override val a: Int
protected override get(): Int {
return 5
}
}
class E : JavaDefaultSeparateModule, KotlinPublic {
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
override fun foo() {
}
override val a: Int
override get(): Int {
return 5
}
}
class F : KotlinInternal, JavaDefaultSeparateModule {
constructor() /* primary */ {
super/*KotlinInternal*/()
/* <init>() */
}
override fun foo() {
}
override val a: Int
override get(): Int {
return 5
}
}
class G : JavaProtectedSeparateModule, KotlinDefault {
constructor() /* primary */ {
super/*JavaProtectedSeparateModule*/()
/* <init>() */
}
override fun foo() {
}
override val a: Int
override get(): Int {
return 5
}
}
class H : JavaProtectedSeparateModule, KotlinPrivate {
constructor() /* primary */ {
super/*JavaProtectedSeparateModule*/()
/* <init>() */
}
}
class I : JavaProtectedSeparateModule, KotlinPrivate {
val a: Int
field = 5
get
constructor() /* primary */ {
super/*JavaProtectedSeparateModule*/()
/* <init>() */
}
override fun foo() {
}
}
class J : JavaProtectedSeparateModule, KotlinPublic {
constructor() /* primary */ {
super/*JavaProtectedSeparateModule*/()
/* <init>() */
}
override fun foo() {
}
override val a: Int
override get(): Int {
return 5
}
}
abstract class K : JavaDefaultSeparateModule, JavaPublic {
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
}
open class KotlinInternal {
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
internal open fun foo() {
}
internal open val a: Int
internal open get(): Int {
return 1
}
}
open class KotlinProtected {
protected open val a: Int
field = 1
protected open get
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
protected open fun foo() {
}
}
class L : JavaDefaultSeparateModule, JavaPublic {
val a: Int
field = 1
get
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
override fun foo() {
}
}
class M : JavaProtectedSeparateModule, JavaPublic {
val a: Int
field = 1
get
constructor() /* primary */ {
super/*JavaProtectedSeparateModule*/()
/* <init>() */
}
override fun foo() {
}
}
class N : JavaProtectedSeparateModule, JavaDefault {
val a: Int
field = 1
get
constructor() /* primary */ {
super/*JavaProtectedSeparateModule*/()
/* <init>() */
}
override fun foo() {
}
}
abstract class O : JavaPrivate, JavaDefaultSeparateModule {
constructor() /* primary */ {
super/*JavaPrivate*/()
/* <init>() */
}
}
class P : JavaPrivate, JavaDefaultSeparateModule {
val a: Int
field = 1
get
constructor() /* primary */ {
super/*JavaPrivate*/()
/* <init>() */
}
override fun foo() {
}
}
class R : JavaProtected, JavaDefaultSeparateModule {
val a: Int
field = 1
get
constructor() /* primary */ {
super/*JavaProtected*/()
/* <init>() */
}
override fun foo() {
}
}
interface KotlinDefault {
fun foo() {
}
val a: Int
get(): Int {
return 1
}
}
interface KotlinPrivate {
private final fun foo() {
}
private final val a: Int
private final get(): Int {
return 1
}
}
interface KotlinPublic {
fun foo() {
}
val a: Int
get(): Int {
return 1
}
}
fun test(a: A, b: B, c: C, d: D, e: E, f: F, g: G, i: I, j: J, k: K, l: L, m: M, n: N, o: O, p: P, r: R) {
a.foo()
a.<get-a>() /*~> Unit */
b.foo()
c.foo()
d.foo()
e.foo()
e.<get-a>() /*~> Unit */
f.foo()
f.<get-a>() /*~> Unit */
g.foo()
g.<get-a>() /*~> Unit */
i.foo()
i.<get-a>() /*~> Unit */
j.foo()
j.<get-a>() /*~> Unit */
k.foo()
l.foo()
l.<get-a>() /*~> Unit */
m.foo()
m.<get-a>() /*~> Unit */
n.foo()
n.<get-a>() /*~> Unit */
o.foo()
p.foo()
p.<get-a>() /*~> Unit */
r.foo()
r.<get-a>() /*~> Unit */
}
@@ -0,0 +1,853 @@
Module: separate
Module: main
FILE fqName:<root> fileName:/test.kt
CLASS CLASS name:A modality:ABSTRACT visibility:public superTypes:[<root>.JavaDefaultSeparateModule; <root>.KotlinDefault]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.A
CONSTRUCTOR visibility:public <> () returnType:<root>.A [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:A modality:ABSTRACT visibility:public superTypes:[<root>.JavaDefaultSeparateModule; <root>.KotlinDefault]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.JavaDefaultSeparateModule
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.KotlinDefault
$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 <root>.JavaDefaultSeparateModule
public open fun hashCode (): kotlin.Int declared in <root>.KotlinDefault
$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 <root>.JavaDefaultSeparateModule
public open fun toString (): kotlin.String declared in <root>.KotlinDefault
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.A) returnType:kotlin.Unit
overridden:
public abstract fun foo (): kotlin.Unit declared in <root>.JavaDefaultSeparateModule
public open fun foo (): kotlin.Unit declared in <root>.KotlinDefault
$this: VALUE_PARAMETER name:<this> type:<root>.A
BLOCK_BODY
PROPERTY name:a visibility:public modality:OPEN [val]
overridden:
public open a: kotlin.Int
FUN name:<get-a> visibility:public modality:OPEN <> ($this:<root>.A) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a visibility:public modality:OPEN [val]
overridden:
public open fun <get-a> (): kotlin.Int declared in <root>.KotlinDefault
$this: VALUE_PARAMETER name:<this> type:<root>.A
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun <get-a> (): kotlin.Int declared in <root>.A'
CONST Int type=kotlin.Int value=5
CLASS CLASS name:B modality:ABSTRACT visibility:public superTypes:[<root>.JavaDefaultSeparateModule; <root>.KotlinPrivate]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.B
CONSTRUCTOR visibility:public <> () returnType:<root>.B [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:B modality:ABSTRACT visibility:public superTypes:[<root>.JavaDefaultSeparateModule; <root>.KotlinPrivate]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.JavaDefaultSeparateModule
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.KotlinPrivate
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:public modality:ABSTRACT <> ($this:<root>.JavaDefaultSeparateModule) returnType:kotlin.Unit [fake_override]
overridden:
public abstract fun foo (): kotlin.Unit declared in <root>.JavaDefaultSeparateModule
$this: VALUE_PARAMETER name:<this> type:<root>.JavaDefaultSeparateModule
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 <root>.JavaDefaultSeparateModule
public open fun hashCode (): kotlin.Int declared in <root>.KotlinPrivate
$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 <root>.JavaDefaultSeparateModule
public open fun toString (): kotlin.String declared in <root>.KotlinPrivate
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:C modality:FINAL visibility:public superTypes:[<root>.JavaDefaultSeparateModule; <root>.KotlinPrivate]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.C
PROPERTY name:a visibility:public modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.Int visibility:private [final]
EXPRESSION_BODY
CONST Int type=kotlin.Int value=5
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-a> visibility:public modality:FINAL <> ($this:<root>.C) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a visibility:public modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.C
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-a> (): kotlin.Int declared in <root>.C'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.C declared in <root>.C.<get-a>' type=<root>.C origin=null
CONSTRUCTOR visibility:public <> () returnType:<root>.C [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:C modality:FINAL visibility:public superTypes:[<root>.JavaDefaultSeparateModule; <root>.KotlinPrivate]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.JavaDefaultSeparateModule
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.KotlinPrivate
$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 <root>.JavaDefaultSeparateModule
public open fun hashCode (): kotlin.Int declared in <root>.KotlinPrivate
$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 <root>.JavaDefaultSeparateModule
public open fun toString (): kotlin.String declared in <root>.KotlinPrivate
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.C) returnType:kotlin.Unit
overridden:
public abstract fun foo (): kotlin.Unit declared in <root>.JavaDefaultSeparateModule
$this: VALUE_PARAMETER name:<this> type:<root>.C
BLOCK_BODY
CLASS CLASS name:D modality:FINAL visibility:public superTypes:[<root>.JavaDefaultSeparateModule; <root>.KotlinProtected]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.D
CONSTRUCTOR visibility:public <> () returnType:<root>.D [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.KotlinProtected'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:D modality:FINAL visibility:public superTypes:[<root>.JavaDefaultSeparateModule; <root>.KotlinProtected]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.JavaDefaultSeparateModule
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.KotlinProtected
$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 <root>.JavaDefaultSeparateModule
public open fun hashCode (): kotlin.Int declared in <root>.KotlinProtected
$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 <root>.JavaDefaultSeparateModule
public open fun toString (): kotlin.String declared in <root>.KotlinProtected
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.D) returnType:kotlin.Unit
overridden:
public abstract fun foo (): kotlin.Unit declared in <root>.JavaDefaultSeparateModule
protected open fun foo (): kotlin.Unit declared in <root>.KotlinProtected
$this: VALUE_PARAMETER name:<this> type:<root>.D
BLOCK_BODY
PROPERTY name:a visibility:protected modality:OPEN [val]
overridden:
protected open a: kotlin.Int
FUN name:<get-a> visibility:protected modality:OPEN <> ($this:<root>.D) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a visibility:protected modality:OPEN [val]
overridden:
protected open fun <get-a> (): kotlin.Int declared in <root>.KotlinProtected
$this: VALUE_PARAMETER name:<this> type:<root>.D
BLOCK_BODY
RETURN type=kotlin.Nothing from='protected open fun <get-a> (): kotlin.Int declared in <root>.D'
CONST Int type=kotlin.Int value=5
CLASS CLASS name:E modality:FINAL visibility:public superTypes:[<root>.JavaDefaultSeparateModule; <root>.KotlinPublic]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.E
CONSTRUCTOR visibility:public <> () returnType:<root>.E [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:E modality:FINAL visibility:public superTypes:[<root>.JavaDefaultSeparateModule; <root>.KotlinPublic]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.JavaDefaultSeparateModule
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.KotlinPublic
$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 <root>.JavaDefaultSeparateModule
public open fun hashCode (): kotlin.Int declared in <root>.KotlinPublic
$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 <root>.JavaDefaultSeparateModule
public open fun toString (): kotlin.String declared in <root>.KotlinPublic
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.E) returnType:kotlin.Unit
overridden:
public abstract fun foo (): kotlin.Unit declared in <root>.JavaDefaultSeparateModule
public open fun foo (): kotlin.Unit declared in <root>.KotlinPublic
$this: VALUE_PARAMETER name:<this> type:<root>.E
BLOCK_BODY
PROPERTY name:a visibility:public modality:OPEN [val]
overridden:
public open a: kotlin.Int
FUN name:<get-a> visibility:public modality:OPEN <> ($this:<root>.E) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a visibility:public modality:OPEN [val]
overridden:
public open fun <get-a> (): kotlin.Int declared in <root>.KotlinPublic
$this: VALUE_PARAMETER name:<this> type:<root>.E
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun <get-a> (): kotlin.Int declared in <root>.E'
CONST Int type=kotlin.Int value=5
CLASS CLASS name:F modality:FINAL visibility:public superTypes:[<root>.JavaDefaultSeparateModule; <root>.KotlinInternal]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.F
CONSTRUCTOR visibility:public <> () returnType:<root>.F [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.KotlinInternal'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:F modality:FINAL visibility:public superTypes:[<root>.JavaDefaultSeparateModule; <root>.KotlinInternal]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.JavaDefaultSeparateModule
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.KotlinInternal
$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 <root>.JavaDefaultSeparateModule
public open fun hashCode (): kotlin.Int declared in <root>.KotlinInternal
$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 <root>.JavaDefaultSeparateModule
public open fun toString (): kotlin.String declared in <root>.KotlinInternal
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.F) returnType:kotlin.Unit
overridden:
public abstract fun foo (): kotlin.Unit declared in <root>.JavaDefaultSeparateModule
internal open fun foo (): kotlin.Unit declared in <root>.KotlinInternal
$this: VALUE_PARAMETER name:<this> type:<root>.F
BLOCK_BODY
PROPERTY name:a visibility:public modality:OPEN [val]
overridden:
internal open a: kotlin.Int
FUN name:<get-a> visibility:public modality:OPEN <> ($this:<root>.F) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a visibility:public modality:OPEN [val]
overridden:
internal open fun <get-a> (): kotlin.Int declared in <root>.KotlinInternal
$this: VALUE_PARAMETER name:<this> type:<root>.F
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun <get-a> (): kotlin.Int declared in <root>.F'
CONST Int type=kotlin.Int value=5
CLASS CLASS name:G modality:FINAL visibility:public superTypes:[<root>.JavaProtectedSeparateModule; <root>.KotlinDefault]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.G
CONSTRUCTOR visibility:public <> () returnType:<root>.G [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.JavaProtectedSeparateModule'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:G modality:FINAL visibility:public superTypes:[<root>.JavaProtectedSeparateModule; <root>.KotlinDefault]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.JavaProtectedSeparateModule
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.KotlinDefault
$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 <root>.JavaProtectedSeparateModule
public open fun hashCode (): kotlin.Int declared in <root>.KotlinDefault
$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 <root>.JavaProtectedSeparateModule
public open fun toString (): kotlin.String declared in <root>.KotlinDefault
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.G) returnType:kotlin.Unit
overridden:
protected/*protected and package*/ open fun foo (): kotlin.Unit declared in <root>.JavaProtectedSeparateModule
public open fun foo (): kotlin.Unit declared in <root>.KotlinDefault
$this: VALUE_PARAMETER name:<this> type:<root>.G
BLOCK_BODY
PROPERTY FAKE_OVERRIDE name:a visibility:protected/*protected and package*/ modality:FINAL [fake_override,var]
overridden:
protected/*protected and package*/ final a: kotlin.Int
PROPERTY name:a visibility:public modality:OPEN [val]
overridden:
public open a: kotlin.Int
FUN name:<get-a> visibility:public modality:OPEN <> ($this:<root>.G) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a visibility:public modality:OPEN [val]
overridden:
public open fun <get-a> (): kotlin.Int declared in <root>.KotlinDefault
$this: VALUE_PARAMETER name:<this> type:<root>.G
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun <get-a> (): kotlin.Int declared in <root>.G'
CONST Int type=kotlin.Int value=5
CLASS CLASS name:H modality:FINAL visibility:public superTypes:[<root>.JavaProtectedSeparateModule; <root>.KotlinPrivate]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.H
CONSTRUCTOR visibility:public <> () returnType:<root>.H [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.JavaProtectedSeparateModule'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:H modality:FINAL visibility:public superTypes:[<root>.JavaProtectedSeparateModule; <root>.KotlinPrivate]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.JavaProtectedSeparateModule
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.KotlinPrivate
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:protected/*protected and package*/ modality:OPEN <> ($this:<root>.JavaProtectedSeparateModule) returnType:kotlin.Unit [fake_override]
overridden:
protected/*protected and package*/ open fun foo (): kotlin.Unit declared in <root>.JavaProtectedSeparateModule
$this: VALUE_PARAMETER name:<this> type:<root>.JavaProtectedSeparateModule
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 <root>.JavaProtectedSeparateModule
public open fun hashCode (): kotlin.Int declared in <root>.KotlinPrivate
$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 <root>.JavaProtectedSeparateModule
public open fun toString (): kotlin.String declared in <root>.KotlinPrivate
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
PROPERTY FAKE_OVERRIDE name:a visibility:protected/*protected and package*/ modality:FINAL [fake_override,var]
overridden:
protected/*protected and package*/ final a: kotlin.Int
CLASS CLASS name:I modality:FINAL visibility:public superTypes:[<root>.JavaProtectedSeparateModule; <root>.KotlinPrivate]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.I
PROPERTY name:a visibility:public modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.Int visibility:private [final]
EXPRESSION_BODY
CONST Int type=kotlin.Int value=5
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-a> visibility:public modality:FINAL <> ($this:<root>.I) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a visibility:public modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.I
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-a> (): kotlin.Int declared in <root>.I'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.I declared in <root>.I.<get-a>' type=<root>.I origin=null
CONSTRUCTOR visibility:public <> () returnType:<root>.I [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.JavaProtectedSeparateModule'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:I modality:FINAL visibility:public superTypes:[<root>.JavaProtectedSeparateModule; <root>.KotlinPrivate]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.JavaProtectedSeparateModule
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.KotlinPrivate
$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 <root>.JavaProtectedSeparateModule
public open fun hashCode (): kotlin.Int declared in <root>.KotlinPrivate
$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 <root>.JavaProtectedSeparateModule
public open fun toString (): kotlin.String declared in <root>.KotlinPrivate
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.I) returnType:kotlin.Unit
overridden:
protected/*protected and package*/ open fun foo (): kotlin.Unit declared in <root>.JavaProtectedSeparateModule
$this: VALUE_PARAMETER name:<this> type:<root>.I
BLOCK_BODY
PROPERTY FAKE_OVERRIDE name:a visibility:protected/*protected and package*/ modality:FINAL [fake_override,var]
overridden:
protected/*protected and package*/ final a: kotlin.Int
CLASS CLASS name:J modality:FINAL visibility:public superTypes:[<root>.JavaProtectedSeparateModule; <root>.KotlinPublic]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.J
CONSTRUCTOR visibility:public <> () returnType:<root>.J [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.JavaProtectedSeparateModule'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:J modality:FINAL visibility:public superTypes:[<root>.JavaProtectedSeparateModule; <root>.KotlinPublic]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.JavaProtectedSeparateModule
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.KotlinPublic
$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 <root>.JavaProtectedSeparateModule
public open fun hashCode (): kotlin.Int declared in <root>.KotlinPublic
$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 <root>.JavaProtectedSeparateModule
public open fun toString (): kotlin.String declared in <root>.KotlinPublic
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.J) returnType:kotlin.Unit
overridden:
protected/*protected and package*/ open fun foo (): kotlin.Unit declared in <root>.JavaProtectedSeparateModule
public open fun foo (): kotlin.Unit declared in <root>.KotlinPublic
$this: VALUE_PARAMETER name:<this> type:<root>.J
BLOCK_BODY
PROPERTY FAKE_OVERRIDE name:a visibility:protected/*protected and package*/ modality:FINAL [fake_override,var]
overridden:
protected/*protected and package*/ final a: kotlin.Int
PROPERTY name:a visibility:public modality:OPEN [val]
overridden:
public open a: kotlin.Int
FUN name:<get-a> visibility:public modality:OPEN <> ($this:<root>.J) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a visibility:public modality:OPEN [val]
overridden:
public open fun <get-a> (): kotlin.Int declared in <root>.KotlinPublic
$this: VALUE_PARAMETER name:<this> type:<root>.J
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun <get-a> (): kotlin.Int declared in <root>.J'
CONST Int type=kotlin.Int value=5
CLASS CLASS name:K modality:ABSTRACT visibility:public superTypes:[<root>.JavaPublic; <root>.JavaDefaultSeparateModule]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.K
CONSTRUCTOR visibility:public <> () returnType:<root>.K [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:K modality:ABSTRACT visibility:public superTypes:[<root>.JavaPublic; <root>.JavaDefaultSeparateModule]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.JavaPublic
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.JavaDefaultSeparateModule
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:public modality:ABSTRACT <> ($this:<root>.JavaPublic) returnType:kotlin.Unit [fake_override]
overridden:
public abstract fun foo (): kotlin.Unit declared in <root>.JavaPublic
public abstract fun foo (): kotlin.Unit declared in <root>.JavaDefaultSeparateModule
$this: VALUE_PARAMETER name:<this> type:<root>.JavaPublic
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 <root>.JavaPublic
public open fun hashCode (): kotlin.Int declared in <root>.JavaDefaultSeparateModule
$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 <root>.JavaPublic
public open fun toString (): kotlin.String declared in <root>.JavaDefaultSeparateModule
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:KotlinInternal modality:OPEN visibility:public superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.KotlinInternal
CONSTRUCTOR visibility:public <> () returnType:<root>.KotlinInternal [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:KotlinInternal modality:OPEN visibility:public superTypes:[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 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:foo visibility:internal modality:OPEN <> ($this:<root>.KotlinInternal) returnType:kotlin.Unit
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInternal
BLOCK_BODY
PROPERTY name:a visibility:internal modality:OPEN [val]
FUN name:<get-a> visibility:internal modality:OPEN <> ($this:<root>.KotlinInternal) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a visibility:internal modality:OPEN [val]
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInternal
BLOCK_BODY
RETURN type=kotlin.Nothing from='internal open fun <get-a> (): kotlin.Int declared in <root>.KotlinInternal'
CONST Int type=kotlin.Int value=1
CLASS CLASS name:KotlinProtected modality:OPEN visibility:public superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.KotlinProtected
PROPERTY name:a visibility:protected modality:OPEN [val]
FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.Int visibility:private [final]
EXPRESSION_BODY
CONST Int type=kotlin.Int value=1
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-a> visibility:protected modality:OPEN <> ($this:<root>.KotlinProtected) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a visibility:protected modality:OPEN [val]
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinProtected
BLOCK_BODY
RETURN type=kotlin.Nothing from='protected open fun <get-a> (): kotlin.Int declared in <root>.KotlinProtected'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.KotlinProtected declared in <root>.KotlinProtected.<get-a>' type=<root>.KotlinProtected origin=null
CONSTRUCTOR visibility:public <> () returnType:<root>.KotlinProtected [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:KotlinProtected modality:OPEN visibility:public superTypes:[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 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:foo visibility:protected modality:OPEN <> ($this:<root>.KotlinProtected) returnType:kotlin.Unit
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinProtected
BLOCK_BODY
CLASS CLASS name:L modality:FINAL visibility:public superTypes:[<root>.JavaPublic; <root>.JavaDefaultSeparateModule]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.L
PROPERTY name:a visibility:public modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.Int visibility:private [final]
EXPRESSION_BODY
CONST Int type=kotlin.Int value=1
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-a> visibility:public modality:FINAL <> ($this:<root>.L) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a visibility:public modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.L
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-a> (): kotlin.Int declared in <root>.L'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.L declared in <root>.L.<get-a>' type=<root>.L origin=null
CONSTRUCTOR visibility:public <> () returnType:<root>.L [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:L modality:FINAL visibility:public superTypes:[<root>.JavaPublic; <root>.JavaDefaultSeparateModule]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.JavaPublic
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.JavaDefaultSeparateModule
$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 <root>.JavaPublic
public open fun hashCode (): kotlin.Int declared in <root>.JavaDefaultSeparateModule
$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 <root>.JavaPublic
public open fun toString (): kotlin.String declared in <root>.JavaDefaultSeparateModule
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.L) returnType:kotlin.Unit
overridden:
public abstract fun foo (): kotlin.Unit declared in <root>.JavaPublic
public abstract fun foo (): kotlin.Unit declared in <root>.JavaDefaultSeparateModule
$this: VALUE_PARAMETER name:<this> type:<root>.L
BLOCK_BODY
CLASS CLASS name:M modality:FINAL visibility:public superTypes:[<root>.JavaPublic; <root>.JavaProtectedSeparateModule]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.M
PROPERTY name:a visibility:public modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.Int visibility:private [final]
EXPRESSION_BODY
CONST Int type=kotlin.Int value=1
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-a> visibility:public modality:FINAL <> ($this:<root>.M) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a visibility:public modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.M
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-a> (): kotlin.Int declared in <root>.M'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.M declared in <root>.M.<get-a>' type=<root>.M origin=null
CONSTRUCTOR visibility:public <> () returnType:<root>.M [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.JavaProtectedSeparateModule'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:M modality:FINAL visibility:public superTypes:[<root>.JavaPublic; <root>.JavaProtectedSeparateModule]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.JavaPublic
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.JavaProtectedSeparateModule
$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 <root>.JavaPublic
public open fun hashCode (): kotlin.Int declared in <root>.JavaProtectedSeparateModule
$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 <root>.JavaPublic
public open fun toString (): kotlin.String declared in <root>.JavaProtectedSeparateModule
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.M) returnType:kotlin.Unit
overridden:
public abstract fun foo (): kotlin.Unit declared in <root>.JavaPublic
protected/*protected and package*/ open fun foo (): kotlin.Unit declared in <root>.JavaProtectedSeparateModule
$this: VALUE_PARAMETER name:<this> type:<root>.M
BLOCK_BODY
PROPERTY FAKE_OVERRIDE name:a visibility:protected/*protected and package*/ modality:FINAL [fake_override,var]
overridden:
protected/*protected and package*/ final a: kotlin.Int
CLASS CLASS name:N modality:FINAL visibility:public superTypes:[<root>.JavaProtectedSeparateModule; <root>.JavaDefault]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.N
PROPERTY name:a visibility:public modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.Int visibility:private [final]
EXPRESSION_BODY
CONST Int type=kotlin.Int value=1
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-a> visibility:public modality:FINAL <> ($this:<root>.N) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a visibility:public modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.N
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-a> (): kotlin.Int declared in <root>.N'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.N declared in <root>.N.<get-a>' type=<root>.N origin=null
CONSTRUCTOR visibility:public <> () returnType:<root>.N [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.JavaProtectedSeparateModule'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:N modality:FINAL visibility:public superTypes:[<root>.JavaProtectedSeparateModule; <root>.JavaDefault]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.JavaProtectedSeparateModule
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.JavaDefault
$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 <root>.JavaProtectedSeparateModule
public open fun hashCode (): kotlin.Int declared in <root>.JavaDefault
$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 <root>.JavaProtectedSeparateModule
public open fun toString (): kotlin.String declared in <root>.JavaDefault
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.N) returnType:kotlin.Unit
overridden:
protected/*protected and package*/ open fun foo (): kotlin.Unit declared in <root>.JavaProtectedSeparateModule
public abstract fun foo (): kotlin.Unit declared in <root>.JavaDefault
$this: VALUE_PARAMETER name:<this> type:<root>.N
BLOCK_BODY
PROPERTY FAKE_OVERRIDE name:a visibility:protected/*protected and package*/ modality:FINAL [fake_override,var]
overridden:
protected/*protected and package*/ final a: kotlin.Int
CLASS CLASS name:O modality:ABSTRACT visibility:public superTypes:[<root>.JavaPrivate; <root>.JavaDefaultSeparateModule]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.O
CONSTRUCTOR visibility:public <> () returnType:<root>.O [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.JavaPrivate'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:O modality:ABSTRACT visibility:public superTypes:[<root>.JavaPrivate; <root>.JavaDefaultSeparateModule]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.JavaPrivate
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.JavaDefaultSeparateModule
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:public modality:ABSTRACT <> ($this:<root>.JavaDefaultSeparateModule) returnType:kotlin.Unit [fake_override]
overridden:
public abstract fun foo (): kotlin.Unit declared in <root>.JavaDefaultSeparateModule
$this: VALUE_PARAMETER name:<this> type:<root>.JavaDefaultSeparateModule
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 <root>.JavaPrivate
public open fun hashCode (): kotlin.Int declared in <root>.JavaDefaultSeparateModule
$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 <root>.JavaPrivate
public open fun toString (): kotlin.String declared in <root>.JavaDefaultSeparateModule
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:P modality:FINAL visibility:public superTypes:[<root>.JavaPrivate; <root>.JavaDefaultSeparateModule]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.P
PROPERTY name:a visibility:public modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.Int visibility:private [final]
EXPRESSION_BODY
CONST Int type=kotlin.Int value=1
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-a> visibility:public modality:FINAL <> ($this:<root>.P) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a visibility:public modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.P
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-a> (): kotlin.Int declared in <root>.P'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.P declared in <root>.P.<get-a>' type=<root>.P origin=null
CONSTRUCTOR visibility:public <> () returnType:<root>.P [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.JavaPrivate'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:P modality:FINAL visibility:public superTypes:[<root>.JavaPrivate; <root>.JavaDefaultSeparateModule]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.JavaPrivate
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.JavaDefaultSeparateModule
$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 <root>.JavaPrivate
public open fun hashCode (): kotlin.Int declared in <root>.JavaDefaultSeparateModule
$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 <root>.JavaPrivate
public open fun toString (): kotlin.String declared in <root>.JavaDefaultSeparateModule
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.P) returnType:kotlin.Unit
overridden:
public abstract fun foo (): kotlin.Unit declared in <root>.JavaDefaultSeparateModule
$this: VALUE_PARAMETER name:<this> type:<root>.P
BLOCK_BODY
CLASS CLASS name:R modality:FINAL visibility:public superTypes:[<root>.JavaProtected; <root>.JavaDefaultSeparateModule]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.R
PROPERTY name:a visibility:public modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.Int visibility:private [final]
EXPRESSION_BODY
CONST Int type=kotlin.Int value=1
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-a> visibility:public modality:FINAL <> ($this:<root>.R) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a visibility:public modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.R
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-a> (): kotlin.Int declared in <root>.R'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.R declared in <root>.R.<get-a>' type=<root>.R origin=null
CONSTRUCTOR visibility:public <> () returnType:<root>.R [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.JavaProtected'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:R modality:FINAL visibility:public superTypes:[<root>.JavaProtected; <root>.JavaDefaultSeparateModule]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.JavaProtected
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.JavaDefaultSeparateModule
$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 <root>.JavaProtected
public open fun hashCode (): kotlin.Int declared in <root>.JavaDefaultSeparateModule
$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 <root>.JavaProtected
public open fun toString (): kotlin.String declared in <root>.JavaDefaultSeparateModule
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.R) returnType:kotlin.Unit
overridden:
protected/*protected and package*/ open fun foo (): kotlin.Unit declared in <root>.JavaProtected
public abstract fun foo (): kotlin.Unit declared in <root>.JavaDefaultSeparateModule
$this: VALUE_PARAMETER name:<this> type:<root>.R
BLOCK_BODY
PROPERTY FAKE_OVERRIDE name:a visibility:protected/*protected and package*/ modality:FINAL [fake_override,var]
overridden:
protected/*protected and package*/ final a: kotlin.Int
CLASS INTERFACE name:KotlinDefault modality:ABSTRACT visibility:public superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.KotlinDefault
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in 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:foo visibility:public modality:OPEN <> ($this:<root>.KotlinDefault) returnType:kotlin.Unit
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinDefault
BLOCK_BODY
PROPERTY name:a visibility:public modality:OPEN [val]
FUN name:<get-a> visibility:public modality:OPEN <> ($this:<root>.KotlinDefault) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a visibility:public modality:OPEN [val]
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinDefault
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun <get-a> (): kotlin.Int declared in <root>.KotlinDefault'
CONST Int type=kotlin.Int value=1
CLASS INTERFACE name:KotlinPrivate modality:ABSTRACT visibility:public superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.KotlinPrivate
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in 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:foo visibility:private modality:FINAL <> ($this:<root>.KotlinPrivate) returnType:kotlin.Unit
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinPrivate
BLOCK_BODY
PROPERTY name:a visibility:private modality:FINAL [val]
FUN name:<get-a> visibility:private modality:FINAL <> ($this:<root>.KotlinPrivate) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a visibility:private modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinPrivate
BLOCK_BODY
RETURN type=kotlin.Nothing from='private final fun <get-a> (): kotlin.Int declared in <root>.KotlinPrivate'
CONST Int type=kotlin.Int value=1
CLASS INTERFACE name:KotlinPublic modality:ABSTRACT visibility:public superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.KotlinPublic
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in 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:foo visibility:public modality:OPEN <> ($this:<root>.KotlinPublic) returnType:kotlin.Unit
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinPublic
BLOCK_BODY
PROPERTY name:a visibility:public modality:OPEN [val]
FUN name:<get-a> visibility:public modality:OPEN <> ($this:<root>.KotlinPublic) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a visibility:public modality:OPEN [val]
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinPublic
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun <get-a> (): kotlin.Int declared in <root>.KotlinPublic'
CONST Int type=kotlin.Int value=1
FUN name:test visibility:public modality:FINAL <> (a:<root>.A, b:<root>.B, c:<root>.C, d:<root>.D, e:<root>.E, f:<root>.F, g:<root>.G, i:<root>.I, j:<root>.J, k:<root>.K, l:<root>.L, m:<root>.M, n:<root>.N, o:<root>.O, p:<root>.P, r:<root>.R) returnType:kotlin.Unit
VALUE_PARAMETER name:a index:0 type:<root>.A
VALUE_PARAMETER name:b index:1 type:<root>.B
VALUE_PARAMETER name:c index:2 type:<root>.C
VALUE_PARAMETER name:d index:3 type:<root>.D
VALUE_PARAMETER name:e index:4 type:<root>.E
VALUE_PARAMETER name:f index:5 type:<root>.F
VALUE_PARAMETER name:g index:6 type:<root>.G
VALUE_PARAMETER name:i index:7 type:<root>.I
VALUE_PARAMETER name:j index:8 type:<root>.J
VALUE_PARAMETER name:k index:9 type:<root>.K
VALUE_PARAMETER name:l index:10 type:<root>.L
VALUE_PARAMETER name:m index:11 type:<root>.M
VALUE_PARAMETER name:n index:12 type:<root>.N
VALUE_PARAMETER name:o index:13 type:<root>.O
VALUE_PARAMETER name:p index:14 type:<root>.P
VALUE_PARAMETER name:r index:15 type:<root>.R
BLOCK_BODY
CALL 'public open fun foo (): kotlin.Unit declared in <root>.A' type=kotlin.Unit origin=null
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun <get-a> (): kotlin.Int declared in <root>.A' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
CALL 'public abstract fun foo (): kotlin.Unit declared in <root>.B' type=kotlin.Unit origin=null
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
CALL 'public open fun foo (): kotlin.Unit declared in <root>.C' type=kotlin.Unit origin=null
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
CALL 'public open fun foo (): kotlin.Unit declared in <root>.D' type=kotlin.Unit origin=null
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
CALL 'public open fun foo (): kotlin.Unit declared in <root>.E' type=kotlin.Unit origin=null
$this: GET_VAR 'e: <root>.E declared in <root>.test' type=<root>.E origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun <get-a> (): kotlin.Int declared in <root>.E' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR 'e: <root>.E declared in <root>.test' type=<root>.E origin=null
CALL 'public open fun foo (): kotlin.Unit declared in <root>.F' type=kotlin.Unit origin=null
$this: GET_VAR 'f: <root>.F declared in <root>.test' type=<root>.F origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun <get-a> (): kotlin.Int declared in <root>.F' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR 'f: <root>.F declared in <root>.test' type=<root>.F origin=null
CALL 'public open fun foo (): kotlin.Unit declared in <root>.G' type=kotlin.Unit origin=null
$this: GET_VAR 'g: <root>.G declared in <root>.test' type=<root>.G origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:a type:kotlin.Int visibility:protected/*protected and package*/' type=kotlin.Int origin=null
receiver: GET_VAR 'g: <root>.G declared in <root>.test' type=<root>.G origin=null
CALL 'public open fun foo (): kotlin.Unit declared in <root>.I' type=kotlin.Unit origin=null
$this: GET_VAR 'i: <root>.I declared in <root>.test' type=<root>.I origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:a type:kotlin.Int visibility:protected/*protected and package*/' type=kotlin.Int origin=null
receiver: GET_VAR 'i: <root>.I declared in <root>.test' type=<root>.I origin=null
CALL 'public open fun foo (): kotlin.Unit declared in <root>.J' type=kotlin.Unit origin=null
$this: GET_VAR 'j: <root>.J declared in <root>.test' type=<root>.J origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:a type:kotlin.Int visibility:protected/*protected and package*/' type=kotlin.Int origin=null
receiver: GET_VAR 'j: <root>.J declared in <root>.test' type=<root>.J origin=null
CALL 'public abstract fun foo (): kotlin.Unit declared in <root>.K' type=kotlin.Unit origin=null
$this: GET_VAR 'k: <root>.K declared in <root>.test' type=<root>.K origin=null
CALL 'public open fun foo (): kotlin.Unit declared in <root>.L' type=kotlin.Unit origin=null
$this: GET_VAR 'l: <root>.L declared in <root>.test' type=<root>.L origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public final fun <get-a> (): kotlin.Int declared in <root>.L' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR 'l: <root>.L declared in <root>.test' type=<root>.L origin=null
CALL 'public open fun foo (): kotlin.Unit declared in <root>.M' type=kotlin.Unit origin=null
$this: GET_VAR 'm: <root>.M declared in <root>.test' type=<root>.M origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:a type:kotlin.Int visibility:protected/*protected and package*/' type=kotlin.Int origin=null
receiver: GET_VAR 'm: <root>.M declared in <root>.test' type=<root>.M origin=null
CALL 'public open fun foo (): kotlin.Unit declared in <root>.N' type=kotlin.Unit origin=null
$this: GET_VAR 'n: <root>.N declared in <root>.test' type=<root>.N origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:a type:kotlin.Int visibility:protected/*protected and package*/' type=kotlin.Int origin=null
receiver: GET_VAR 'n: <root>.N declared in <root>.test' type=<root>.N origin=null
CALL 'public abstract fun foo (): kotlin.Unit declared in <root>.O' type=kotlin.Unit origin=null
$this: GET_VAR 'o: <root>.O declared in <root>.test' type=<root>.O origin=null
CALL 'public open fun foo (): kotlin.Unit declared in <root>.P' type=kotlin.Unit origin=null
$this: GET_VAR 'p: <root>.P declared in <root>.test' type=<root>.P origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public final fun <get-a> (): kotlin.Int declared in <root>.P' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR 'p: <root>.P declared in <root>.test' type=<root>.P origin=null
CALL 'public open fun foo (): kotlin.Unit declared in <root>.R' type=kotlin.Unit origin=null
$this: GET_VAR 'r: <root>.R declared in <root>.test' type=<root>.R origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:a type:kotlin.Int visibility:protected/*protected and package*/' type=kotlin.Int origin=null
receiver: GET_VAR 'r: <root>.R declared in <root>.test' type=<root>.R origin=null
@@ -0,0 +1,177 @@
// TARGET_BACKEND: JVM
// MODULE: separate
// FILE: JavaDefaultSeparateModule.java
public interface JavaDefaultSeparateModule {
int a = 2;
void foo();
}
// FILE: JavaProtectedSeparateModule.java
public class JavaProtectedSeparateModule {
protected int a = 22;
protected void foo() { }
}
// MODULE: main
// FILE: JavaProtected.java
public class JavaProtected {
protected int a = 3;
protected void foo() {}
}
// FILE: JavaDefault.java
public interface JavaDefault {
int a = 2;
void foo();
}
// FILE: JavaPublic.java
public interface JavaPublic {
public int a = 1;
public void foo();
}
// FILE: JavaPrivate.java
public class JavaPrivate {
private int a = 2;
private void foo(){}
}
// FILE: test.kt
abstract class A: JavaDefaultSeparateModule, KotlinDefault {
public override fun foo() { }
public override val a: Int
get() = 5
}
abstract class B : JavaDefaultSeparateModule, KotlinPrivate
class C : JavaDefaultSeparateModule, KotlinPrivate {
public override fun foo() {}
val a = 5
}
class D : JavaDefaultSeparateModule, KotlinProtected() {
public override fun foo() {}
protected override val a: Int
get() = 5
}
class E : JavaDefaultSeparateModule, KotlinPublic {
public override fun foo() {}
override val a: Int
get() = 5
}
class F : JavaDefaultSeparateModule, KotlinInternal() {
public override fun foo() {}
public override val a: Int
get() = 5
}
class G : JavaProtectedSeparateModule(), KotlinDefault {
public override fun foo() {}
public override val a: Int
get() = 5
}
class H : JavaProtectedSeparateModule(), KotlinPrivate
class I : JavaProtectedSeparateModule(), KotlinPrivate {
public override fun foo() {}
val a = 5
}
class J : JavaProtectedSeparateModule(), KotlinPublic {
public override fun foo() {}
override val a: Int
get() = 5
}
abstract class K : JavaPublic, JavaDefaultSeparateModule
class L : JavaPublic, JavaDefaultSeparateModule {
override fun foo() {}
val a = 1
}
class M : JavaPublic, JavaProtectedSeparateModule() {
override fun foo() {}
val a = 1
}
class N : JavaProtectedSeparateModule(), JavaDefault {
override fun foo() {}
val a = 1
}
abstract class O : JavaPrivate(), JavaDefaultSeparateModule
class P : JavaPrivate(), JavaDefaultSeparateModule {
override fun foo() {}
val a = 1
}
class R : JavaProtected(), JavaDefaultSeparateModule {
override fun foo() {}
val a = 1
}
interface KotlinPrivate {
private val a : Int
get() = 1
private fun foo(){}
}
open class KotlinProtected {
protected open val a : Int = 1
protected open fun foo(){}
}
interface KotlinDefault {
val a : Int
get() = 1
fun foo(){}
}
interface KotlinPublic {
public val a : Int
get() = 1
public fun foo(){}
}
open class KotlinInternal {
internal open val a : Int
get() = 1
internal open fun foo(){}
}
fun test(a: A, b: B, c: C, d: D, e: E, f: F, g: G, i: I, j: J, k: K, l: L, m: M, n: N, o: O, p: P, r: R) {
a.foo()
a.a
b.foo()
c.foo()
d.foo()
e.foo()
e.a
f.foo()
f.a
g.foo()
g.a
i.foo()
i.a
j.foo()
j.a
k.foo()
l.foo()
l.a
m.foo()
m.a
n.foo()
n.a
o.foo()
p.foo()
p.a
r.foo()
r.a
}
@@ -0,0 +1,349 @@
// MODULE: separate
// MODULE: main
// FILE: test.kt
abstract class A : JavaDefaultSeparateModule, KotlinDefault {
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
override fun foo() {
}
override val a: Int
override get(): Int {
return 5
}
}
abstract class B : JavaDefaultSeparateModule, KotlinPrivate {
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
}
class C : JavaDefaultSeparateModule, KotlinPrivate {
val a: Int
field = 5
get
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
override fun foo() {
}
}
class D : KotlinProtected, JavaDefaultSeparateModule {
constructor() /* primary */ {
super/*KotlinProtected*/()
/* <init>() */
}
override fun foo() {
}
protected override val a: Int
protected override get(): Int {
return 5
}
}
class E : JavaDefaultSeparateModule, KotlinPublic {
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
override fun foo() {
}
override val a: Int
override get(): Int {
return 5
}
}
class F : KotlinInternal, JavaDefaultSeparateModule {
constructor() /* primary */ {
super/*KotlinInternal*/()
/* <init>() */
}
override fun foo() {
}
override val a: Int
override get(): Int {
return 5
}
}
class G : JavaProtectedSeparateModule, KotlinDefault {
constructor() /* primary */ {
super/*JavaProtectedSeparateModule*/()
/* <init>() */
}
override fun foo() {
}
override val a: Int
override get(): Int {
return 5
}
}
class H : JavaProtectedSeparateModule, KotlinPrivate {
constructor() /* primary */ {
super/*JavaProtectedSeparateModule*/()
/* <init>() */
}
}
class I : JavaProtectedSeparateModule, KotlinPrivate {
val a: Int
field = 5
get
constructor() /* primary */ {
super/*JavaProtectedSeparateModule*/()
/* <init>() */
}
override fun foo() {
}
}
class J : JavaProtectedSeparateModule, KotlinPublic {
constructor() /* primary */ {
super/*JavaProtectedSeparateModule*/()
/* <init>() */
}
override fun foo() {
}
override val a: Int
override get(): Int {
return 5
}
}
abstract class K : JavaDefaultSeparateModule, JavaPublic {
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
}
open class KotlinInternal {
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
internal open fun foo() {
}
internal open val a: Int
internal open get(): Int {
return 1
}
}
open class KotlinProtected {
protected open val a: Int
field = 1
protected open get
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
protected open fun foo() {
}
}
class L : JavaDefaultSeparateModule, JavaPublic {
val a: Int
field = 1
get
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
override fun foo() {
}
}
class M : JavaProtectedSeparateModule, JavaPublic {
val a: Int
field = 1
get
constructor() /* primary */ {
super/*JavaProtectedSeparateModule*/()
/* <init>() */
}
override fun foo() {
}
}
class N : JavaProtectedSeparateModule, JavaDefault {
val a: Int
field = 1
get
constructor() /* primary */ {
super/*JavaProtectedSeparateModule*/()
/* <init>() */
}
override fun foo() {
}
}
abstract class O : JavaPrivate, JavaDefaultSeparateModule {
constructor() /* primary */ {
super/*JavaPrivate*/()
/* <init>() */
}
}
class P : JavaPrivate, JavaDefaultSeparateModule {
val a: Int
field = 1
get
constructor() /* primary */ {
super/*JavaPrivate*/()
/* <init>() */
}
override fun foo() {
}
}
class R : JavaProtected, JavaDefaultSeparateModule {
val a: Int
field = 1
get
constructor() /* primary */ {
super/*JavaProtected*/()
/* <init>() */
}
override fun foo() {
}
}
interface KotlinDefault {
fun foo() {
}
val a: Int
get(): Int {
return 1
}
}
interface KotlinPrivate {
private final fun foo() {
}
private final val a: Int
private final get(): Int {
return 1
}
}
interface KotlinPublic {
fun foo() {
}
val a: Int
get(): Int {
return 1
}
}
fun test(a: A, b: B, c: C, d: D, e: E, f: F, g: G, i: I, j: J, k: K, l: L, m: M, n: N, o: O, p: P, r: R) {
a.foo()
a.<get-a>() /*~> Unit */
b.foo()
c.foo()
d.foo()
e.foo()
e.<get-a>() /*~> Unit */
f.foo()
f.<get-a>() /*~> Unit */
g.foo()
g(super<G>).#a /*~> Unit */
i.foo()
i(super<I>).#a /*~> Unit */
j.foo()
j(super<J>).#a /*~> Unit */
k.foo()
l.foo()
l.<get-a>() /*~> Unit */
m.foo()
m(super<M>).#a /*~> Unit */
n.foo()
n(super<N>).#a /*~> Unit */
o.foo()
p.foo()
p.<get-a>() /*~> Unit */
r.foo()
r(super<R>).#a /*~> Unit */
}
@@ -0,0 +1,585 @@
// MODULE: separate
// MODULE: main
// FILE: test.kt
// CHECK:
// Mangled name: A
// Public signature: /A|null[0]
abstract class A : JavaDefaultSeparateModule, KotlinDefault {
// CHECK:
// Mangled name: A#<init>(){}
// Public signature: /A.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: A#foo(){}
// Public signature: /A.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
override fun foo(): Unit
// CHECK:
// Mangled name: A{}a
// Public signature: /A.a|-1200697420457237799[0]
// Public signature debug description: {}a
override val a: Int
// CHECK JVM_IR:
// Mangled name: A#<get-a>(){}kotlin.Int
// Public signature: /A.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
override get(): Int
}
// CHECK:
// Mangled name: B
// Public signature: /B|null[0]
abstract class B : JavaDefaultSeparateModule, KotlinPrivate {
// CHECK:
// Mangled name: B#<init>(){}
// Public signature: /B.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: B#foo(){}
// Public signature: /B.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
abstract /* fake */ override fun foo(): Unit
}
// CHECK:
// Mangled name: C
// Public signature: /C|null[0]
class C : JavaDefaultSeparateModule, KotlinPrivate {
// CHECK:
// Mangled name: C{}a
// Public signature: /C.a|-1200697420457237799[0]
// Public signature debug description: {}a
val a: Int
// CHECK JVM_IR:
// Mangled name: C#<get-a>(){}kotlin.Int
// Public signature: /C.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
get
// CHECK:
// Mangled name: C#<init>(){}
// Public signature: /C.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: C#foo(){}
// Public signature: /C.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
override fun foo(): Unit
}
// CHECK:
// Mangled name: D
// Public signature: /D|null[0]
class D : KotlinProtected, JavaDefaultSeparateModule {
// CHECK:
// Mangled name: D#<init>(){}
// Public signature: /D.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: D#foo(){}
// Public signature: /D.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
override fun foo(): Unit
// CHECK:
// Mangled name: D{}a
// Public signature: /D.a|-1200697420457237799[0]
// Public signature debug description: {}a
protected override val a: Int
// CHECK JVM_IR:
// Mangled name: D#<get-a>(){}kotlin.Int
// Public signature: /D.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
protected override get(): Int
}
// CHECK:
// Mangled name: E
// Public signature: /E|null[0]
class E : JavaDefaultSeparateModule, KotlinPublic {
// CHECK:
// Mangled name: E#<init>(){}
// Public signature: /E.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: E#foo(){}
// Public signature: /E.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
override fun foo(): Unit
// CHECK:
// Mangled name: E{}a
// Public signature: /E.a|-1200697420457237799[0]
// Public signature debug description: {}a
override val a: Int
// CHECK JVM_IR:
// Mangled name: E#<get-a>(){}kotlin.Int
// Public signature: /E.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
override get(): Int
}
// CHECK:
// Mangled name: F
// Public signature: /F|null[0]
class F : KotlinInternal, JavaDefaultSeparateModule {
// CHECK:
// Mangled name: F#<init>(){}
// Public signature: /F.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: F#foo(){}
// Public signature: /F.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
override fun foo(): Unit
// CHECK:
// Mangled name: F{}a
// Public signature: /F.a|-1200697420457237799[0]
// Public signature debug description: {}a
override val a: Int
// CHECK JVM_IR:
// Mangled name: F#<get-a>(){}kotlin.Int
// Public signature: /F.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
override get(): Int
}
// CHECK:
// Mangled name: G
// Public signature: /G|null[0]
class G : JavaProtectedSeparateModule, KotlinDefault {
// CHECK:
// Mangled name: G#<init>(){}
// Public signature: /G.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: G#foo(){}
// Public signature: /G.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
override fun foo(): Unit
// CHECK:
// Mangled name: G{}a
// Public signature: /G.a|-1200697420457237799[0]
// Public signature debug description: {}a
override val a: Int
// CHECK JVM_IR:
// Mangled name: G#<get-a>(){}kotlin.Int
// Public signature: /G.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
override get(): Int
}
// CHECK:
// Mangled name: H
// Public signature: /H|null[0]
class H : JavaProtectedSeparateModule, KotlinPrivate {
// CHECK:
// Mangled name: H#<init>(){}
// Public signature: /H.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: H#foo(){}
// Public signature: /H.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
protected_and_package /* fake */ override fun foo(): Unit
}
// CHECK:
// Mangled name: I
// Public signature: /I|null[0]
class I : JavaProtectedSeparateModule, KotlinPrivate {
// CHECK:
// Mangled name: I{}a
// Public signature: /I.a|-1200697420457237799[0]
// Public signature debug description: {}a
val a: Int
// CHECK JVM_IR:
// Mangled name: I#<get-a>(){}kotlin.Int
// Public signature: /I.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
get
// CHECK:
// Mangled name: I#<init>(){}
// Public signature: /I.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: I#foo(){}
// Public signature: /I.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
override fun foo(): Unit
}
// CHECK:
// Mangled name: J
// Public signature: /J|null[0]
class J : JavaProtectedSeparateModule, KotlinPublic {
// CHECK:
// Mangled name: J#<init>(){}
// Public signature: /J.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: J#foo(){}
// Public signature: /J.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
override fun foo(): Unit
// CHECK:
// Mangled name: J{}a
// Public signature: /J.a|-1200697420457237799[0]
// Public signature debug description: {}a
override val a: Int
// CHECK JVM_IR:
// Mangled name: J#<get-a>(){}kotlin.Int
// Public signature: /J.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
override get(): Int
}
// CHECK:
// Mangled name: K
// Public signature: /K|null[0]
abstract class K : JavaDefaultSeparateModule, JavaPublic {
// CHECK:
// Mangled name: K#<init>(){}
// Public signature: /K.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: K#foo(){}
// Public signature: /K.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
abstract /* fake */ override fun foo(): Unit
}
// CHECK:
// Mangled name: KotlinInternal
// Public signature: /KotlinInternal|null[0]
open class KotlinInternal {
// CHECK:
// Mangled name: KotlinInternal#<init>(){}
// Public signature: /KotlinInternal.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: KotlinInternal#foo(){}
// Public signature: /KotlinInternal.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
internal open fun foo(): Unit
// CHECK:
// Mangled name: KotlinInternal{}a
// Public signature: /KotlinInternal.a|-1200697420457237799[0]
// Public signature debug description: {}a
internal open val a: Int
// CHECK JVM_IR:
// Mangled name: KotlinInternal#<get-a>(){}kotlin.Int
// Public signature: /KotlinInternal.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
internal open get(): Int
}
// CHECK:
// Mangled name: KotlinProtected
// Public signature: /KotlinProtected|null[0]
open class KotlinProtected {
// CHECK:
// Mangled name: KotlinProtected{}a
// Public signature: /KotlinProtected.a|-1200697420457237799[0]
// Public signature debug description: {}a
protected open val a: Int
// CHECK JVM_IR:
// Mangled name: KotlinProtected#<get-a>(){}kotlin.Int
// Public signature: /KotlinProtected.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
protected open get
// CHECK:
// Mangled name: KotlinProtected#<init>(){}
// Public signature: /KotlinProtected.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: KotlinProtected#foo(){}
// Public signature: /KotlinProtected.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
protected open fun foo(): Unit
}
// CHECK:
// Mangled name: L
// Public signature: /L|null[0]
class L : JavaDefaultSeparateModule, JavaPublic {
// CHECK:
// Mangled name: L{}a
// Public signature: /L.a|-1200697420457237799[0]
// Public signature debug description: {}a
val a: Int
// CHECK JVM_IR:
// Mangled name: L#<get-a>(){}kotlin.Int
// Public signature: /L.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
get
// CHECK:
// Mangled name: L#<init>(){}
// Public signature: /L.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: L#foo(){}
// Public signature: /L.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
override fun foo(): Unit
}
// CHECK:
// Mangled name: M
// Public signature: /M|null[0]
class M : JavaProtectedSeparateModule, JavaPublic {
// CHECK:
// Mangled name: M{}a
// Public signature: /M.a|-1200697420457237799[0]
// Public signature debug description: {}a
val a: Int
// CHECK JVM_IR:
// Mangled name: M#<get-a>(){}kotlin.Int
// Public signature: /M.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
get
// CHECK:
// Mangled name: M#<init>(){}
// Public signature: /M.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: M#foo(){}
// Public signature: /M.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
override fun foo(): Unit
}
// CHECK:
// Mangled name: N
// Public signature: /N|null[0]
class N : JavaProtectedSeparateModule, JavaDefault {
// CHECK:
// Mangled name: N{}a
// Public signature: /N.a|-1200697420457237799[0]
// Public signature debug description: {}a
val a: Int
// CHECK JVM_IR:
// Mangled name: N#<get-a>(){}kotlin.Int
// Public signature: /N.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
get
// CHECK:
// Mangled name: N#<init>(){}
// Public signature: /N.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: N#foo(){}
// Public signature: /N.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
override fun foo(): Unit
}
// CHECK:
// Mangled name: O
// Public signature: /O|null[0]
abstract class O : JavaPrivate, JavaDefaultSeparateModule {
// CHECK:
// Mangled name: O#<init>(){}
// Public signature: /O.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: O#foo(){}
// Public signature: /O.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
abstract /* fake */ override fun foo(): Unit
}
// CHECK:
// Mangled name: P
// Public signature: /P|null[0]
class P : JavaPrivate, JavaDefaultSeparateModule {
// CHECK:
// Mangled name: P{}a
// Public signature: /P.a|-1200697420457237799[0]
// Public signature debug description: {}a
val a: Int
// CHECK JVM_IR:
// Mangled name: P#<get-a>(){}kotlin.Int
// Public signature: /P.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
get
// CHECK:
// Mangled name: P#<init>(){}
// Public signature: /P.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: P#foo(){}
// Public signature: /P.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
override fun foo(): Unit
}
// CHECK:
// Mangled name: R
// Public signature: /R|null[0]
class R : JavaProtected, JavaDefaultSeparateModule {
// CHECK:
// Mangled name: R{}a
// Public signature: /R.a|-1200697420457237799[0]
// Public signature debug description: {}a
val a: Int
// CHECK JVM_IR:
// Mangled name: R#<get-a>(){}kotlin.Int
// Public signature: /R.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
get
// CHECK:
// Mangled name: R#<init>(){}
// Public signature: /R.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: R#foo(){}
// Public signature: /R.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
override fun foo(): Unit
}
// CHECK:
// Mangled name: KotlinDefault
// Public signature: /KotlinDefault|null[0]
interface KotlinDefault {
// CHECK:
// Mangled name: KotlinDefault#foo(){}
// Public signature: /KotlinDefault.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
fun foo(): Unit
// CHECK:
// Mangled name: KotlinDefault{}a
// Public signature: /KotlinDefault.a|-1200697420457237799[0]
// Public signature debug description: {}a
val a: Int
// CHECK JVM_IR:
// Mangled name: KotlinDefault#<get-a>(){}kotlin.Int
// Public signature: /KotlinDefault.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
get(): Int
}
// CHECK:
// Mangled name: KotlinPrivate
// Public signature: /KotlinPrivate|null[0]
interface KotlinPrivate {
// CHECK:
// Mangled name: KotlinPrivate#foo(){}
// Public signature: /KotlinPrivate.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
private final fun foo(): Unit
// CHECK:
// Mangled name: KotlinPrivate{}a
// Public signature: /KotlinPrivate.a|-1200697420457237799[0]
// Public signature debug description: {}a
private final val a: Int
// CHECK JVM_IR:
// Mangled name: KotlinPrivate#<get-a>(){}kotlin.Int
// Public signature: /KotlinPrivate.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
private final get(): Int
}
// CHECK:
// Mangled name: KotlinPublic
// Public signature: /KotlinPublic|null[0]
interface KotlinPublic {
// CHECK:
// Mangled name: KotlinPublic#foo(){}
// Public signature: /KotlinPublic.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
fun foo(): Unit
// CHECK:
// Mangled name: KotlinPublic{}a
// Public signature: /KotlinPublic.a|-1200697420457237799[0]
// Public signature debug description: {}a
val a: Int
// CHECK JVM_IR:
// Mangled name: KotlinPublic#<get-a>(){}kotlin.Int
// Public signature: /KotlinPublic.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
get(): Int
}
// CHECK:
// Mangled name: #test(A;B;C;D;E;F;G;I;J;K;L;M;N;O;P;R){}
// Public signature: /test|-7254927762294999826[0]
// Public signature debug description: test(A;B;C;D;E;F;G;I;J;K;L;M;N;O;P;R){}
fun test(a: A, b: B, c: C, d: D, e: E, f: F, g: G, i: I, j: J, k: K, l: L, m: M, n: N, o: O, p: P, r: R): Unit
@@ -0,0 +1,101 @@
FILE fqName:<root> fileName:/test.kt
CLASS CLASS name:A modality:ABSTRACT visibility:public superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.A
CONSTRUCTOR visibility:public <> () returnType:<root>.A [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:A modality:ABSTRACT visibility:public superTypes:[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 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:funA1 visibility:public modality:OPEN <> ($this:<root>.A) returnType:kotlin.Unit
$this: VALUE_PARAMETER name:<this> type:<root>.A
BLOCK_BODY
FUN name:funA2 visibility:protected modality:OPEN <> ($this:<root>.A) returnType:kotlin.Unit
$this: VALUE_PARAMETER name:<this> type:<root>.A
BLOCK_BODY
FUN name:funA3 visibility:internal modality:OPEN <> ($this:<root>.A) returnType:kotlin.Unit
$this: VALUE_PARAMETER name:<this> type:<root>.A
BLOCK_BODY
CLASS CLASS name:B modality:ABSTRACT visibility:public superTypes:[<root>.A]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.B
CONSTRUCTOR visibility:public <> () returnType:<root>.B [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.A'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:B modality:ABSTRACT visibility:public superTypes:[<root>.A]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.A
$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 <root>.A
$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 <root>.A
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:funA1 visibility:public modality:OPEN <> ($this:<root>.B) returnType:kotlin.Unit
overridden:
public open fun funA1 (): kotlin.Unit declared in <root>.A
$this: VALUE_PARAMETER name:<this> type:<root>.B
BLOCK_BODY
FUN name:funA2 visibility:protected modality:OPEN <> ($this:<root>.B) returnType:kotlin.Unit
overridden:
protected open fun funA2 (): kotlin.Unit declared in <root>.A
$this: VALUE_PARAMETER name:<this> type:<root>.B
BLOCK_BODY
FUN name:funA3 visibility:internal modality:OPEN <> ($this:<root>.B) returnType:kotlin.Unit
overridden:
internal open fun funA3 (): kotlin.Unit declared in <root>.A
$this: VALUE_PARAMETER name:<this> type:<root>.B
BLOCK_BODY
CLASS CLASS name:C modality:FINAL visibility:public superTypes:[<root>.J]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.C
CONSTRUCTOR visibility:public <> () returnType:<root>.C [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.J'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:C modality:FINAL visibility:public superTypes:[<root>.J]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.J
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:funA1 visibility:public modality:OPEN <> ($this:<root>.B) returnType:kotlin.Unit [fake_override]
overridden:
public open fun funA1 (): kotlin.Unit declared in <root>.J
$this: VALUE_PARAMETER name:<this> type:<root>.B
FUN FAKE_OVERRIDE name:funA2 visibility:protected modality:OPEN <> ($this:<root>.B) returnType:kotlin.Unit [fake_override]
overridden:
protected open fun funA2 (): kotlin.Unit declared in <root>.J
$this: VALUE_PARAMETER name:<this> type:<root>.B
FUN FAKE_OVERRIDE name:funA3 visibility:internal modality:OPEN <> ($this:<root>.B) returnType:kotlin.Unit [fake_override]
overridden:
internal open fun funA3 (): kotlin.Unit declared in <root>.J
$this: VALUE_PARAMETER name:<this> type:<root>.B
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 <root>.J
$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 <root>.J
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:test visibility:public modality:FINAL <> (c:<root>.C) returnType:kotlin.Unit
VALUE_PARAMETER name:c index:0 type:<root>.C
BLOCK_BODY
CALL 'public open fun funA1 (): kotlin.Unit declared in <root>.C' type=kotlin.Unit origin=null
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
CALL 'internal open fun funA3 (): kotlin.Unit declared in <root>.C' type=kotlin.Unit origin=null
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
@@ -0,0 +1,49 @@
abstract class A {
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
open fun funA1() {
}
protected open fun funA2() {
}
internal open fun funA3() {
}
}
abstract class B : A {
constructor() /* primary */ {
super/*A*/()
/* <init>() */
}
override fun funA1() {
}
protected override fun funA2() {
}
internal override fun funA3() {
}
}
class C : J {
constructor() /* primary */ {
super/*J*/()
/* <init>() */
}
}
fun test(c: C) {
c.funA1()
c.funA3()
}
@@ -0,0 +1,27 @@
// TARGET_BACKEND: JVM
// IGNORE_BACKEND_K1: ANY
// ^ ISSUE: KT-65679
// FILE: J.java
public class J extends B {}
// FILE: test.kt
abstract class A {
open public fun funA1() {}
open protected fun funA2() {}
open internal fun funA3() {}
}
abstract class B: A() {
override fun funA1() {}
override fun funA2() {}
override fun funA3() {}
}
class C: J() {}
fun test(c: C) {
c.funA1()
c.funA3()
}
@@ -0,0 +1,95 @@
// CHECK:
// Mangled name: A
// Public signature: /A|null[0]
abstract class A {
// CHECK:
// Mangled name: A#<init>(){}
// Public signature: /A.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: A#funA1(){}
// Public signature: /A.funA1|-1861570915489783750[0]
// Public signature debug description: funA1(){}
open fun funA1(): Unit
// CHECK:
// Mangled name: A#funA2(){}
// Public signature: /A.funA2|4227004615447903242[0]
// Public signature debug description: funA2(){}
protected open fun funA2(): Unit
// CHECK:
// Mangled name: A#funA3(){}
// Public signature: /A.funA3|220898698606415605[0]
// Public signature debug description: funA3(){}
internal open fun funA3(): Unit
}
// CHECK:
// Mangled name: B
// Public signature: /B|null[0]
abstract class B : A {
// CHECK:
// Mangled name: B#<init>(){}
// Public signature: /B.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: B#funA1(){}
// Public signature: /B.funA1|-1861570915489783750[0]
// Public signature debug description: funA1(){}
override fun funA1(): Unit
// CHECK:
// Mangled name: B#funA2(){}
// Public signature: /B.funA2|4227004615447903242[0]
// Public signature debug description: funA2(){}
protected override fun funA2(): Unit
// CHECK:
// Mangled name: B#funA3(){}
// Public signature: /B.funA3|220898698606415605[0]
// Public signature debug description: funA3(){}
internal override fun funA3(): Unit
}
// CHECK:
// Mangled name: C
// Public signature: /C|null[0]
class C : J {
// CHECK:
// Mangled name: C#<init>(){}
// Public signature: /C.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: C#funA1(){}
// Public signature: /C.funA1|-1861570915489783750[0]
// Public signature debug description: funA1(){}
/* fake */ override fun funA1(): Unit
// CHECK:
// Mangled name: C#funA2(){}
// Public signature: /C.funA2|4227004615447903242[0]
// Public signature debug description: funA2(){}
protected /* fake */ override fun funA2(): Unit
// CHECK:
// Mangled name: C#funA3(){}
// Public signature: /C.funA3|220898698606415605[0]
// Public signature debug description: funA3(){}
internal /* fake */ override fun funA3(): Unit
}
// CHECK:
// Mangled name: #test(C){}
// Public signature: /test|-3170651145558428552[0]
// Public signature debug description: test(C){}
fun test(c: C): Unit
@@ -0,0 +1,241 @@
FILE fqName:<root> fileName:/test.kt
CLASS CLASS name:A modality:ABSTRACT visibility:public superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.A
PROPERTY name:a1 visibility:public modality:OPEN [var]
FIELD PROPERTY_BACKING_FIELD name:a1 type:kotlin.Int visibility:private
EXPRESSION_BODY
CONST Int type=kotlin.Int value=0
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-a1> visibility:public modality:OPEN <> ($this:<root>.A) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a1 visibility:public modality:OPEN [var]
$this: VALUE_PARAMETER name:<this> type:<root>.A
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun <get-a1> (): kotlin.Int declared in <root>.A'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:a1 type:kotlin.Int visibility:private' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.A declared in <root>.A.<get-a1>' type=<root>.A origin=null
FUN DEFAULT_PROPERTY_ACCESSOR name:<set-a1> visibility:public modality:OPEN <> ($this:<root>.A, <set-?>:kotlin.Int) returnType:kotlin.Unit
correspondingProperty: PROPERTY name:a1 visibility:public modality:OPEN [var]
$this: VALUE_PARAMETER name:<this> type:<root>.A
VALUE_PARAMETER name:<set-?> index:0 type:kotlin.Int
BLOCK_BODY
SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:a1 type:kotlin.Int visibility:private' type=kotlin.Unit origin=null
receiver: GET_VAR '<this>: <root>.A declared in <root>.A.<set-a1>' type=<root>.A origin=null
value: GET_VAR '<set-?>: kotlin.Int declared in <root>.A.<set-a1>' type=kotlin.Int origin=null
PROPERTY name:a2 visibility:protected modality:OPEN [var]
FIELD PROPERTY_BACKING_FIELD name:a2 type:kotlin.Int visibility:private
EXPRESSION_BODY
CONST Int type=kotlin.Int value=0
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-a2> visibility:protected modality:OPEN <> ($this:<root>.A) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a2 visibility:protected modality:OPEN [var]
$this: VALUE_PARAMETER name:<this> type:<root>.A
BLOCK_BODY
RETURN type=kotlin.Nothing from='protected open fun <get-a2> (): kotlin.Int declared in <root>.A'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:a2 type:kotlin.Int visibility:private' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.A declared in <root>.A.<get-a2>' type=<root>.A origin=null
FUN DEFAULT_PROPERTY_ACCESSOR name:<set-a2> visibility:protected modality:OPEN <> ($this:<root>.A, <set-?>:kotlin.Int) returnType:kotlin.Unit
correspondingProperty: PROPERTY name:a2 visibility:protected modality:OPEN [var]
$this: VALUE_PARAMETER name:<this> type:<root>.A
VALUE_PARAMETER name:<set-?> index:0 type:kotlin.Int
BLOCK_BODY
SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:a2 type:kotlin.Int visibility:private' type=kotlin.Unit origin=null
receiver: GET_VAR '<this>: <root>.A declared in <root>.A.<set-a2>' type=<root>.A origin=null
value: GET_VAR '<set-?>: kotlin.Int declared in <root>.A.<set-a2>' type=kotlin.Int origin=null
PROPERTY name:a3 visibility:internal modality:OPEN [var]
FIELD PROPERTY_BACKING_FIELD name:a3 type:kotlin.Int visibility:private
EXPRESSION_BODY
CONST Int type=kotlin.Int value=0
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-a3> visibility:internal modality:OPEN <> ($this:<root>.A) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a3 visibility:internal modality:OPEN [var]
$this: VALUE_PARAMETER name:<this> type:<root>.A
BLOCK_BODY
RETURN type=kotlin.Nothing from='internal open fun <get-a3> (): kotlin.Int declared in <root>.A'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:a3 type:kotlin.Int visibility:private' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.A declared in <root>.A.<get-a3>' type=<root>.A origin=null
FUN DEFAULT_PROPERTY_ACCESSOR name:<set-a3> visibility:internal modality:OPEN <> ($this:<root>.A, <set-?>:kotlin.Int) returnType:kotlin.Unit
correspondingProperty: PROPERTY name:a3 visibility:internal modality:OPEN [var]
$this: VALUE_PARAMETER name:<this> type:<root>.A
VALUE_PARAMETER name:<set-?> index:0 type:kotlin.Int
BLOCK_BODY
SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:a3 type:kotlin.Int visibility:private' type=kotlin.Unit origin=null
receiver: GET_VAR '<this>: <root>.A declared in <root>.A.<set-a3>' type=<root>.A origin=null
value: GET_VAR '<set-?>: kotlin.Int declared in <root>.A.<set-a3>' type=kotlin.Int origin=null
CONSTRUCTOR visibility:public <> () returnType:<root>.A [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:A modality:ABSTRACT visibility:public superTypes:[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 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:B modality:ABSTRACT visibility:public superTypes:[<root>.A]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.B
PROPERTY name:a1 visibility:public modality:OPEN [var]
overridden:
public open a1: kotlin.Int
FIELD PROPERTY_BACKING_FIELD name:a1 type:kotlin.Int visibility:private
EXPRESSION_BODY
CONST Int type=kotlin.Int value=0
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-a1> visibility:public modality:OPEN <> ($this:<root>.B) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a1 visibility:public modality:OPEN [var]
overridden:
public open fun <get-a1> (): kotlin.Int declared in <root>.A
$this: VALUE_PARAMETER name:<this> type:<root>.B
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun <get-a1> (): kotlin.Int declared in <root>.B'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:a1 type:kotlin.Int visibility:private' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.B declared in <root>.B.<get-a1>' type=<root>.B origin=null
FUN DEFAULT_PROPERTY_ACCESSOR name:<set-a1> visibility:public modality:OPEN <> ($this:<root>.B, <set-?>:kotlin.Int) returnType:kotlin.Unit
correspondingProperty: PROPERTY name:a1 visibility:public modality:OPEN [var]
overridden:
public open fun <set-a1> (<set-?>: kotlin.Int): kotlin.Unit declared in <root>.A
$this: VALUE_PARAMETER name:<this> type:<root>.B
VALUE_PARAMETER name:<set-?> index:0 type:kotlin.Int
BLOCK_BODY
SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:a1 type:kotlin.Int visibility:private' type=kotlin.Unit origin=null
receiver: GET_VAR '<this>: <root>.B declared in <root>.B.<set-a1>' type=<root>.B origin=null
value: GET_VAR '<set-?>: kotlin.Int declared in <root>.B.<set-a1>' type=kotlin.Int origin=null
PROPERTY name:a2 visibility:protected modality:OPEN [var]
overridden:
protected open a2: kotlin.Int
FIELD PROPERTY_BACKING_FIELD name:a2 type:kotlin.Int visibility:private
EXPRESSION_BODY
CONST Int type=kotlin.Int value=0
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-a2> visibility:protected modality:OPEN <> ($this:<root>.B) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a2 visibility:protected modality:OPEN [var]
overridden:
protected open fun <get-a2> (): kotlin.Int declared in <root>.A
$this: VALUE_PARAMETER name:<this> type:<root>.B
BLOCK_BODY
RETURN type=kotlin.Nothing from='protected open fun <get-a2> (): kotlin.Int declared in <root>.B'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:a2 type:kotlin.Int visibility:private' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.B declared in <root>.B.<get-a2>' type=<root>.B origin=null
FUN DEFAULT_PROPERTY_ACCESSOR name:<set-a2> visibility:protected modality:OPEN <> ($this:<root>.B, <set-?>:kotlin.Int) returnType:kotlin.Unit
correspondingProperty: PROPERTY name:a2 visibility:protected modality:OPEN [var]
overridden:
protected open fun <set-a2> (<set-?>: kotlin.Int): kotlin.Unit declared in <root>.A
$this: VALUE_PARAMETER name:<this> type:<root>.B
VALUE_PARAMETER name:<set-?> index:0 type:kotlin.Int
BLOCK_BODY
SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:a2 type:kotlin.Int visibility:private' type=kotlin.Unit origin=null
receiver: GET_VAR '<this>: <root>.B declared in <root>.B.<set-a2>' type=<root>.B origin=null
value: GET_VAR '<set-?>: kotlin.Int declared in <root>.B.<set-a2>' type=kotlin.Int origin=null
PROPERTY name:a3 visibility:internal modality:OPEN [var]
overridden:
internal open a3: kotlin.Int
FIELD PROPERTY_BACKING_FIELD name:a3 type:kotlin.Int visibility:private
EXPRESSION_BODY
CONST Int type=kotlin.Int value=0
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-a3> visibility:internal modality:OPEN <> ($this:<root>.B) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a3 visibility:internal modality:OPEN [var]
overridden:
internal open fun <get-a3> (): kotlin.Int declared in <root>.A
$this: VALUE_PARAMETER name:<this> type:<root>.B
BLOCK_BODY
RETURN type=kotlin.Nothing from='internal open fun <get-a3> (): kotlin.Int declared in <root>.B'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:a3 type:kotlin.Int visibility:private' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.B declared in <root>.B.<get-a3>' type=<root>.B origin=null
FUN DEFAULT_PROPERTY_ACCESSOR name:<set-a3> visibility:internal modality:OPEN <> ($this:<root>.B, <set-?>:kotlin.Int) returnType:kotlin.Unit
correspondingProperty: PROPERTY name:a3 visibility:internal modality:OPEN [var]
overridden:
internal open fun <set-a3> (<set-?>: kotlin.Int): kotlin.Unit declared in <root>.A
$this: VALUE_PARAMETER name:<this> type:<root>.B
VALUE_PARAMETER name:<set-?> index:0 type:kotlin.Int
BLOCK_BODY
SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:a3 type:kotlin.Int visibility:private' type=kotlin.Unit origin=null
receiver: GET_VAR '<this>: <root>.B declared in <root>.B.<set-a3>' type=<root>.B origin=null
value: GET_VAR '<set-?>: kotlin.Int declared in <root>.B.<set-a3>' type=kotlin.Int origin=null
CONSTRUCTOR visibility:public <> () returnType:<root>.B [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.A'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:B modality:ABSTRACT visibility:public superTypes:[<root>.A]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.A
$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 <root>.A
$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 <root>.A
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:C modality:FINAL visibility:public superTypes:[<root>.J]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.C
CONSTRUCTOR visibility:public <> () returnType:<root>.C [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.J'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:C modality:FINAL visibility:public superTypes:[<root>.J]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.J
$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 <root>.J
$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 <root>.J
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
PROPERTY FAKE_OVERRIDE name:a1 visibility:public modality:OPEN [fake_override,var]
overridden:
public open a1: kotlin.Int
FUN FAKE_OVERRIDE name:<get-a1> visibility:public modality:OPEN <> ($this:<root>.J) returnType:kotlin.Int [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a1 visibility:public modality:OPEN [fake_override,var]
overridden:
public open fun <get-a1> (): kotlin.Int declared in <root>.J
$this: VALUE_PARAMETER name:<this> type:<root>.J
FUN FAKE_OVERRIDE name:<set-a1> visibility:public modality:OPEN <> ($this:<root>.J, <set-?>:kotlin.Int) returnType:kotlin.Unit [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a1 visibility:public modality:OPEN [fake_override,var]
overridden:
public open fun <set-a1> (<set-?>: kotlin.Int): kotlin.Unit declared in <root>.J
$this: VALUE_PARAMETER name:<this> type:<root>.J
VALUE_PARAMETER name:<set-?> index:0 type:kotlin.Int
PROPERTY FAKE_OVERRIDE name:a2 visibility:protected modality:OPEN [fake_override,var]
overridden:
protected open a2: kotlin.Int
FUN FAKE_OVERRIDE name:<get-a2> visibility:protected modality:OPEN <> ($this:<root>.J) returnType:kotlin.Int [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a2 visibility:protected modality:OPEN [fake_override,var]
overridden:
protected open fun <get-a2> (): kotlin.Int declared in <root>.J
$this: VALUE_PARAMETER name:<this> type:<root>.J
FUN FAKE_OVERRIDE name:<set-a2> visibility:protected modality:OPEN <> ($this:<root>.J, <set-?>:kotlin.Int) returnType:kotlin.Unit [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a2 visibility:protected modality:OPEN [fake_override,var]
overridden:
protected open fun <set-a2> (<set-?>: kotlin.Int): kotlin.Unit declared in <root>.J
$this: VALUE_PARAMETER name:<this> type:<root>.J
VALUE_PARAMETER name:<set-?> index:0 type:kotlin.Int
PROPERTY FAKE_OVERRIDE name:a3 visibility:internal modality:OPEN [fake_override,var]
overridden:
internal open a3: kotlin.Int
FUN FAKE_OVERRIDE name:<get-a3> visibility:internal modality:OPEN <> ($this:<root>.J) returnType:kotlin.Int [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a3 visibility:internal modality:OPEN [fake_override,var]
overridden:
internal open fun <get-a3> (): kotlin.Int declared in <root>.J
$this: VALUE_PARAMETER name:<this> type:<root>.J
FUN FAKE_OVERRIDE name:<set-a3> visibility:internal modality:OPEN <> ($this:<root>.J, <set-?>:kotlin.Int) returnType:kotlin.Unit [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a3 visibility:internal modality:OPEN [fake_override,var]
overridden:
internal open fun <set-a3> (<set-?>: kotlin.Int): kotlin.Unit declared in <root>.J
$this: VALUE_PARAMETER name:<this> type:<root>.J
VALUE_PARAMETER name:<set-?> index:0 type:kotlin.Int
FUN name:test visibility:public modality:FINAL <> (c:<root>.C) returnType:kotlin.Unit
VALUE_PARAMETER name:c index:0 type:<root>.C
BLOCK_BODY
CALL 'public open fun <set-a1> (<set-?>: kotlin.Int): kotlin.Unit declared in <root>.C' type=kotlin.Unit origin=EQ
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
<set-?>: CONST Int type=kotlin.Int value=1
CALL 'internal open fun <set-a3> (<set-?>: kotlin.Int): kotlin.Unit declared in <root>.C' type=kotlin.Unit origin=EQ
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
<set-?>: CONST Int type=kotlin.Int value=2
@@ -0,0 +1,61 @@
abstract class A {
open var a1: Int
field = 0
open get
open set
protected open var a2: Int
field = 0
protected open get
protected open set
internal open var a3: Int
field = 0
internal open get
internal open set
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
}
abstract class B : A {
override var a1: Int
field = 0
override get
override set
protected override var a2: Int
field = 0
protected override get
protected override set
internal override var a3: Int
field = 0
internal override get
internal override set
constructor() /* primary */ {
super/*A*/()
/* <init>() */
}
}
class C : J {
constructor() /* primary */ {
super/*J*/()
/* <init>() */
}
}
fun test(c: C) {
c.<set-a1>(<set-?> = 1)
c.<set-a3>(<set-?> = 2)
}
@@ -0,0 +1,26 @@
// TARGET_BACKEND: JVM
// IGNORE_BACKEND_K1: ANY
// ^ ISSUE: KT-65679
// FILE: J.java
public class J extends B {}
// FILE: test.kt
abstract class A {
open public var a1 = 0
open protected var a2 = 0
open internal var a3 = 0
}
abstract class B: A() {
override public var a1 = 0
override protected var a2 = 0
override internal var a3 = 0
}
class C: J() {}
fun test(c: C) {
c.a1 = 1
c.a3 = 2
}
@@ -0,0 +1,185 @@
// CHECK:
// Mangled name: A
// Public signature: /A|null[0]
abstract class A {
// CHECK:
// Mangled name: A{}a1
// Public signature: /A.a1|8426250351583221125[0]
// Public signature debug description: {}a1
open var a1: Int
// CHECK JVM_IR:
// Mangled name: A#<get-a1>(){}kotlin.Int
// Public signature: /A.a1.<get-a1>|-2553071475604985133[0]
// Public signature debug description: <get-a1>(){}kotlin.Int
open get
// CHECK:
// Mangled name: A#<set-a1>(kotlin.Int){}
// Public signature: /A.a1.<set-a1>|-6670542173151287013[0]
// Public signature debug description: <set-a1>(kotlin.Int){}
open set
// CHECK:
// Mangled name: A{}a2
// Public signature: /A.a2|-956821556695583680[0]
// Public signature debug description: {}a2
protected open var a2: Int
// CHECK JVM_IR:
// Mangled name: A#<get-a2>(){}kotlin.Int
// Public signature: /A.a2.<get-a2>|8066672597839215435[0]
// Public signature debug description: <get-a2>(){}kotlin.Int
protected open get
// CHECK:
// Mangled name: A#<set-a2>(kotlin.Int){}
// Public signature: /A.a2.<set-a2>|-5252764751525774340[0]
// Public signature debug description: <set-a2>(kotlin.Int){}
protected open set
// CHECK:
// Mangled name: A{}a3
// Public signature: /A.a3|2259298816435538940[0]
// Public signature debug description: {}a3
internal open var a3: Int
// CHECK JVM_IR:
// Mangled name: A#<get-a3>(){}kotlin.Int
// Public signature: /A.a3.<get-a3>|-4636181095889988299[0]
// Public signature debug description: <get-a3>(){}kotlin.Int
internal open get
// CHECK:
// Mangled name: A#<set-a3>(kotlin.Int){}
// Public signature: /A.a3.<set-a3>|5835901200347915458[0]
// Public signature debug description: <set-a3>(kotlin.Int){}
internal open set
// CHECK:
// Mangled name: A#<init>(){}
// Public signature: /A.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
}
// CHECK:
// Mangled name: B
// Public signature: /B|null[0]
abstract class B : A {
// CHECK:
// Mangled name: B{}a1
// Public signature: /B.a1|8426250351583221125[0]
// Public signature debug description: {}a1
override var a1: Int
// CHECK JVM_IR:
// Mangled name: B#<get-a1>(){}kotlin.Int
// Public signature: /B.a1.<get-a1>|-2553071475604985133[0]
// Public signature debug description: <get-a1>(){}kotlin.Int
override get
// CHECK:
// Mangled name: B#<set-a1>(kotlin.Int){}
// Public signature: /B.a1.<set-a1>|-6670542173151287013[0]
// Public signature debug description: <set-a1>(kotlin.Int){}
override set
// CHECK:
// Mangled name: B{}a2
// Public signature: /B.a2|-956821556695583680[0]
// Public signature debug description: {}a2
protected override var a2: Int
// CHECK JVM_IR:
// Mangled name: B#<get-a2>(){}kotlin.Int
// Public signature: /B.a2.<get-a2>|8066672597839215435[0]
// Public signature debug description: <get-a2>(){}kotlin.Int
protected override get
// CHECK:
// Mangled name: B#<set-a2>(kotlin.Int){}
// Public signature: /B.a2.<set-a2>|-5252764751525774340[0]
// Public signature debug description: <set-a2>(kotlin.Int){}
protected override set
// CHECK:
// Mangled name: B{}a3
// Public signature: /B.a3|2259298816435538940[0]
// Public signature debug description: {}a3
internal override var a3: Int
// CHECK JVM_IR:
// Mangled name: B#<get-a3>(){}kotlin.Int
// Public signature: /B.a3.<get-a3>|-4636181095889988299[0]
// Public signature debug description: <get-a3>(){}kotlin.Int
internal override get
// CHECK:
// Mangled name: B#<set-a3>(kotlin.Int){}
// Public signature: /B.a3.<set-a3>|5835901200347915458[0]
// Public signature debug description: <set-a3>(kotlin.Int){}
internal override set
// CHECK:
// Mangled name: B#<init>(){}
// Public signature: /B.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
}
// CHECK:
// Mangled name: C
// Public signature: /C|null[0]
class C : J {
// CHECK:
// Mangled name: C#<init>(){}
// Public signature: /C.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: C{}a1
// Public signature: /C.a1|8426250351583221125[0]
// Public signature debug description: {}a1
/* fake */ override var a1: Int
// CHECK JVM_IR:
// Mangled name: C#<get-a1>(){}kotlin.Int
// Public signature: /C.a1.<get-a1>|-2553071475604985133[0]
// Public signature debug description: <get-a1>(){}kotlin.Int
/* fake */ override get(): Int
// CHECK:
// Mangled name: C#<set-a1>(kotlin.Int){}
// Public signature: /C.a1.<set-a1>|-6670542173151287013[0]
// Public signature debug description: <set-a1>(kotlin.Int){}
/* fake */ override set(<set-?>: Int): Unit
// CHECK:
// Mangled name: C{}a2
// Public signature: /C.a2|-956821556695583680[0]
// Public signature debug description: {}a2
protected /* fake */ override var a2: Int
// CHECK JVM_IR:
// Mangled name: C#<get-a2>(){}kotlin.Int
// Public signature: /C.a2.<get-a2>|8066672597839215435[0]
// Public signature debug description: <get-a2>(){}kotlin.Int
protected /* fake */ override get(): Int
// CHECK:
// Mangled name: C#<set-a2>(kotlin.Int){}
// Public signature: /C.a2.<set-a2>|-5252764751525774340[0]
// Public signature debug description: <set-a2>(kotlin.Int){}
protected /* fake */ override set(<set-?>: Int): Unit
// CHECK:
// Mangled name: C{}a3
// Public signature: /C.a3|2259298816435538940[0]
// Public signature debug description: {}a3
internal /* fake */ override var a3: Int
// CHECK JVM_IR:
// Mangled name: C#<get-a3>(){}kotlin.Int
// Public signature: /C.a3.<get-a3>|-4636181095889988299[0]
// Public signature debug description: <get-a3>(){}kotlin.Int
internal /* fake */ override get(): Int
// CHECK:
// Mangled name: C#<set-a3>(kotlin.Int){}
// Public signature: /C.a3.<set-a3>|5835901200347915458[0]
// Public signature debug description: <set-a3>(kotlin.Int){}
internal /* fake */ override set(<set-?>: Int): Unit
}
// CHECK:
// Mangled name: #test(C){}
// Public signature: /test|-3170651145558428552[0]
// Public signature debug description: test(C){}
fun test(c: C): Unit
@@ -0,0 +1,119 @@
FILE fqName:<root> fileName:/test.kt
CLASS CLASS name:A modality:ABSTRACT visibility:public superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.A
PROPERTY name:a1 visibility:public modality:FINAL [var]
FIELD PROPERTY_BACKING_FIELD name:a1 type:kotlin.Int visibility:private
EXPRESSION_BODY
CONST Int type=kotlin.Int value=0
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-a1> visibility:public modality:FINAL <> ($this:<root>.A) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a1 visibility:public modality:FINAL [var]
$this: VALUE_PARAMETER name:<this> type:<root>.A
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-a1> (): kotlin.Int declared in <root>.A'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:a1 type:kotlin.Int visibility:private' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.A declared in <root>.A.<get-a1>' type=<root>.A origin=null
FUN DEFAULT_PROPERTY_ACCESSOR name:<set-a1> visibility:public modality:FINAL <> ($this:<root>.A, <set-?>:kotlin.Int) returnType:kotlin.Unit
correspondingProperty: PROPERTY name:a1 visibility:public modality:FINAL [var]
$this: VALUE_PARAMETER name:<this> type:<root>.A
VALUE_PARAMETER name:<set-?> index:0 type:kotlin.Int
BLOCK_BODY
SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:a1 type:kotlin.Int visibility:private' type=kotlin.Unit origin=null
receiver: GET_VAR '<this>: <root>.A declared in <root>.A.<set-a1>' type=<root>.A origin=null
value: GET_VAR '<set-?>: kotlin.Int declared in <root>.A.<set-a1>' type=kotlin.Int origin=null
PROPERTY name:a2 visibility:protected modality:FINAL [var]
FIELD PROPERTY_BACKING_FIELD name:a2 type:kotlin.Int visibility:private
EXPRESSION_BODY
CONST Int type=kotlin.Int value=0
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-a2> visibility:protected modality:FINAL <> ($this:<root>.A) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a2 visibility:protected modality:FINAL [var]
$this: VALUE_PARAMETER name:<this> type:<root>.A
BLOCK_BODY
RETURN type=kotlin.Nothing from='protected final fun <get-a2> (): kotlin.Int declared in <root>.A'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:a2 type:kotlin.Int visibility:private' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.A declared in <root>.A.<get-a2>' type=<root>.A origin=null
FUN DEFAULT_PROPERTY_ACCESSOR name:<set-a2> visibility:protected modality:FINAL <> ($this:<root>.A, <set-?>:kotlin.Int) returnType:kotlin.Unit
correspondingProperty: PROPERTY name:a2 visibility:protected modality:FINAL [var]
$this: VALUE_PARAMETER name:<this> type:<root>.A
VALUE_PARAMETER name:<set-?> index:0 type:kotlin.Int
BLOCK_BODY
SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:a2 type:kotlin.Int visibility:private' type=kotlin.Unit origin=null
receiver: GET_VAR '<this>: <root>.A declared in <root>.A.<set-a2>' type=<root>.A origin=null
value: GET_VAR '<set-?>: kotlin.Int declared in <root>.A.<set-a2>' type=kotlin.Int origin=null
CONSTRUCTOR visibility:public <> () returnType:<root>.A [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:A modality:ABSTRACT visibility:public superTypes:[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 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:B modality:FINAL visibility:public superTypes:[<root>.J]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.B
CONSTRUCTOR visibility:public <> () returnType:<root>.B [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.J'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:B modality:FINAL visibility:public superTypes:[<root>.J]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.J
$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 <root>.J
$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 <root>.J
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
PROPERTY FAKE_OVERRIDE name:a1 visibility:public modality:OPEN [fake_override,var]
overridden:
public open a1: kotlin.Int
FUN FAKE_OVERRIDE name:<get-a1> visibility:public modality:OPEN <> ($this:<root>.J) returnType:kotlin.Int [fake_override]
annotations:
Override
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a1 visibility:public modality:OPEN [fake_override,var]
overridden:
public open fun <get-a1> (): kotlin.Int declared in <root>.J
$this: VALUE_PARAMETER name:<this> type:<root>.J
FUN FAKE_OVERRIDE name:<set-a1> visibility:public modality:OPEN <> ($this:<root>.J, a:kotlin.Int) returnType:kotlin.Unit [fake_override]
annotations:
Override
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a1 visibility:public modality:OPEN [fake_override,var]
overridden:
public open fun <set-a1> (a: kotlin.Int): kotlin.Unit declared in <root>.J
$this: VALUE_PARAMETER name:<this> type:<root>.J
VALUE_PARAMETER name:a index:0 type:kotlin.Int
PROPERTY FAKE_OVERRIDE name:a2 visibility:protected/*protected and package*/ modality:OPEN [fake_override,var]
overridden:
protected/*protected and package*/ open a2: kotlin.Int
FUN FAKE_OVERRIDE name:<get-a2> visibility:protected/*protected and package*/ modality:OPEN <> ($this:<root>.J) returnType:kotlin.Int [fake_override]
annotations:
Override
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a2 visibility:protected/*protected and package*/ modality:OPEN [fake_override,var]
overridden:
protected/*protected and package*/ open fun <get-a2> (): kotlin.Int declared in <root>.J
$this: VALUE_PARAMETER name:<this> type:<root>.J
FUN FAKE_OVERRIDE name:<set-a2> visibility:protected/*protected and package*/ modality:OPEN <> ($this:<root>.J, a:kotlin.Int) returnType:kotlin.Unit [fake_override]
annotations:
Override
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a2 visibility:protected/*protected and package*/ modality:OPEN [fake_override,var]
overridden:
protected/*protected and package*/ open fun <set-a2> (a: kotlin.Int): kotlin.Unit declared in <root>.J
$this: VALUE_PARAMETER name:<this> type:<root>.J
VALUE_PARAMETER name:a index:0 type:kotlin.Int
FUN name:test visibility:public modality:FINAL <> (b:<root>.B) returnType:kotlin.Unit
VALUE_PARAMETER name:b index:0 type:<root>.B
BLOCK_BODY
CALL 'public open fun <set-a1> (a: kotlin.Int): kotlin.Unit declared in <root>.B' type=kotlin.Unit origin=EQ
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
a: CONST Int type=kotlin.Int value=1
@@ -0,0 +1,31 @@
abstract class A {
var a1: Int
field = 0
get
set
protected var a2: Int
field = 0
protected get
protected set
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
}
class B : J {
constructor() /* primary */ {
super/*J*/()
/* <init>() */
}
}
fun test(b: B) {
b.<set-a1>(a = 1)
}
@@ -0,0 +1,119 @@
FILE fqName:<root> fileName:/test.kt
CLASS CLASS name:A modality:ABSTRACT visibility:public superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.A
PROPERTY name:a1 visibility:public modality:FINAL [var]
FIELD PROPERTY_BACKING_FIELD name:a1 type:kotlin.Int visibility:private
EXPRESSION_BODY
CONST Int type=kotlin.Int value=0
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-a1> visibility:public modality:FINAL <> ($this:<root>.A) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a1 visibility:public modality:FINAL [var]
$this: VALUE_PARAMETER name:<this> type:<root>.A
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-a1> (): kotlin.Int declared in <root>.A'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:a1 type:kotlin.Int visibility:private' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.A declared in <root>.A.<get-a1>' type=<root>.A origin=null
FUN DEFAULT_PROPERTY_ACCESSOR name:<set-a1> visibility:public modality:FINAL <> ($this:<root>.A, <set-?>:kotlin.Int) returnType:kotlin.Unit
correspondingProperty: PROPERTY name:a1 visibility:public modality:FINAL [var]
$this: VALUE_PARAMETER name:<this> type:<root>.A
VALUE_PARAMETER name:<set-?> index:0 type:kotlin.Int
BLOCK_BODY
SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:a1 type:kotlin.Int visibility:private' type=kotlin.Unit origin=null
receiver: GET_VAR '<this>: <root>.A declared in <root>.A.<set-a1>' type=<root>.A origin=null
value: GET_VAR '<set-?>: kotlin.Int declared in <root>.A.<set-a1>' type=kotlin.Int origin=null
PROPERTY name:a2 visibility:protected modality:FINAL [var]
FIELD PROPERTY_BACKING_FIELD name:a2 type:kotlin.Int visibility:private
EXPRESSION_BODY
CONST Int type=kotlin.Int value=0
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-a2> visibility:protected modality:FINAL <> ($this:<root>.A) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a2 visibility:protected modality:FINAL [var]
$this: VALUE_PARAMETER name:<this> type:<root>.A
BLOCK_BODY
RETURN type=kotlin.Nothing from='protected final fun <get-a2> (): kotlin.Int declared in <root>.A'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:a2 type:kotlin.Int visibility:private' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.A declared in <root>.A.<get-a2>' type=<root>.A origin=null
FUN DEFAULT_PROPERTY_ACCESSOR name:<set-a2> visibility:protected modality:FINAL <> ($this:<root>.A, <set-?>:kotlin.Int) returnType:kotlin.Unit
correspondingProperty: PROPERTY name:a2 visibility:protected modality:FINAL [var]
$this: VALUE_PARAMETER name:<this> type:<root>.A
VALUE_PARAMETER name:<set-?> index:0 type:kotlin.Int
BLOCK_BODY
SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:a2 type:kotlin.Int visibility:private' type=kotlin.Unit origin=null
receiver: GET_VAR '<this>: <root>.A declared in <root>.A.<set-a2>' type=<root>.A origin=null
value: GET_VAR '<set-?>: kotlin.Int declared in <root>.A.<set-a2>' type=kotlin.Int origin=null
CONSTRUCTOR visibility:public <> () returnType:<root>.A [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:A modality:ABSTRACT visibility:public superTypes:[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 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:B modality:FINAL visibility:public superTypes:[<root>.J]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.B
CONSTRUCTOR visibility:public <> () returnType:<root>.B [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.J'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:B modality:FINAL visibility:public superTypes:[<root>.J]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.J
$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 <root>.J
$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 <root>.J
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
PROPERTY FAKE_OVERRIDE name:a1 visibility:public modality:OPEN [fake_override,var]
overridden:
public open a1: kotlin.Int
FUN FAKE_OVERRIDE name:<get-a1> visibility:public modality:OPEN <> ($this:<root>.J) returnType:kotlin.Int [fake_override]
annotations:
Override
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a1 visibility:public modality:OPEN [fake_override,var]
overridden:
public open fun <get-a1> (): kotlin.Int declared in <root>.J
$this: VALUE_PARAMETER name:<this> type:<root>.J
FUN FAKE_OVERRIDE name:<set-a1> visibility:public modality:OPEN <> ($this:<root>.J, <set-?>:kotlin.Int) returnType:kotlin.Unit [fake_override]
annotations:
Override
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a1 visibility:public modality:OPEN [fake_override,var]
overridden:
public open fun <set-a1> (<set-?>: kotlin.Int): kotlin.Unit declared in <root>.J
$this: VALUE_PARAMETER name:<this> type:<root>.J
VALUE_PARAMETER name:<set-?> index:0 type:kotlin.Int
PROPERTY FAKE_OVERRIDE name:a2 visibility:protected/*protected and package*/ modality:OPEN [fake_override,var]
overridden:
protected/*protected and package*/ open a2: kotlin.Int
FUN FAKE_OVERRIDE name:<get-a2> visibility:protected/*protected and package*/ modality:OPEN <> ($this:<root>.J) returnType:kotlin.Int [fake_override]
annotations:
Override
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a2 visibility:protected/*protected and package*/ modality:OPEN [fake_override,var]
overridden:
protected/*protected and package*/ open fun <get-a2> (): kotlin.Int declared in <root>.J
$this: VALUE_PARAMETER name:<this> type:<root>.J
FUN FAKE_OVERRIDE name:<set-a2> visibility:protected/*protected and package*/ modality:OPEN <> ($this:<root>.J, <set-?>:kotlin.Int) returnType:kotlin.Unit [fake_override]
annotations:
Override
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a2 visibility:protected/*protected and package*/ modality:OPEN [fake_override,var]
overridden:
protected/*protected and package*/ open fun <set-a2> (<set-?>: kotlin.Int): kotlin.Unit declared in <root>.J
$this: VALUE_PARAMETER name:<this> type:<root>.J
VALUE_PARAMETER name:<set-?> index:0 type:kotlin.Int
FUN name:test visibility:public modality:FINAL <> (b:<root>.B) returnType:kotlin.Unit
VALUE_PARAMETER name:b index:0 type:<root>.B
BLOCK_BODY
CALL 'public open fun <set-a1> (<set-?>: kotlin.Int): kotlin.Unit declared in <root>.B' type=kotlin.Unit origin=EQ
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
<set-?>: CONST Int type=kotlin.Int value=1
@@ -0,0 +1,23 @@
// TARGET_BACKEND: JVM
// MUTE_SIGNATURE_COMPARISON_K2: JVM_IR
// FILE: J.java
public class J extends A {
@Override public int getA1() { return 1; }
@Override protected int getA2() { return 1; }
@Override public void setA1(int a) { }
@Override protected void setA2(int a) { }
}
// FILE: test.kt
abstract class A {
public var a1 = 0
protected var a2 = 0
}
class B: J() {}
fun test(b: B) {
b.a1 = 1
}
@@ -0,0 +1,31 @@
abstract class A {
var a1: Int
field = 0
get
set
protected var a2: Int
field = 0
protected get
protected set
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
}
class B : J {
constructor() /* primary */ {
super/*J*/()
/* <init>() */
}
}
fun test(b: B) {
b.<set-a1>(<set-?> = 1)
}
@@ -0,0 +1,97 @@
// CHECK:
// Mangled name: A
// Public signature: /A|null[0]
abstract class A {
// CHECK:
// Mangled name: A{}a1
// Public signature: /A.a1|8426250351583221125[0]
// Public signature debug description: {}a1
var a1: Int
// CHECK JVM_IR:
// Mangled name: A#<get-a1>(){}kotlin.Int
// Public signature: /A.a1.<get-a1>|-2553071475604985133[0]
// Public signature debug description: <get-a1>(){}kotlin.Int
get
// CHECK:
// Mangled name: A#<set-a1>(kotlin.Int){}
// Public signature: /A.a1.<set-a1>|-6670542173151287013[0]
// Public signature debug description: <set-a1>(kotlin.Int){}
set
// CHECK:
// Mangled name: A{}a2
// Public signature: /A.a2|-956821556695583680[0]
// Public signature debug description: {}a2
protected var a2: Int
// CHECK JVM_IR:
// Mangled name: A#<get-a2>(){}kotlin.Int
// Public signature: /A.a2.<get-a2>|8066672597839215435[0]
// Public signature debug description: <get-a2>(){}kotlin.Int
protected get
// CHECK:
// Mangled name: A#<set-a2>(kotlin.Int){}
// Public signature: /A.a2.<set-a2>|-5252764751525774340[0]
// Public signature debug description: <set-a2>(kotlin.Int){}
protected set
// CHECK:
// Mangled name: A#<init>(){}
// Public signature: /A.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
}
// CHECK:
// Mangled name: B
// Public signature: /B|null[0]
class B : J {
// CHECK:
// Mangled name: B#<init>(){}
// Public signature: /B.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: B{}a1
// Public signature: /B.a1|8426250351583221125[0]
// Public signature debug description: {}a1
/* fake */ override var a1: Int
// CHECK JVM_IR:
// Mangled name: B#<get-a1>(){}kotlin.Int
// Public signature: /B.a1.<get-a1>|-2553071475604985133[0]
// Public signature debug description: <get-a1>(){}kotlin.Int
@Override
/* fake */ override get(): Int
// CHECK:
// Mangled name: B#<set-a1>(kotlin.Int){}
// Public signature: /B.a1.<set-a1>|-6670542173151287013[0]
// Public signature debug description: <set-a1>(kotlin.Int){}
@Override
/* fake */ override set(<set-?>: Int): Unit
// CHECK:
// Mangled name: B{}a2
// Public signature: /B.a2|-956821556695583680[0]
// Public signature debug description: {}a2
protected_and_package /* fake */ override var a2: Int
// CHECK JVM_IR:
// Mangled name: B#<get-a2>(){}kotlin.Int
// Public signature: /B.a2.<get-a2>|8066672597839215435[0]
// Public signature debug description: <get-a2>(){}kotlin.Int
@Override
protected_and_package /* fake */ override get(): Int
// CHECK:
// Mangled name: B#<set-a2>(kotlin.Int){}
// Public signature: /B.a2.<set-a2>|-5252764751525774340[0]
// Public signature debug description: <set-a2>(kotlin.Int){}
@Override
protected_and_package /* fake */ override set(<set-?>: Int): Unit
}
// CHECK:
// Mangled name: #test(B){}
// Public signature: /test|3809392349795657853[0]
// Public signature debug description: test(B){}
fun test(b: B): Unit