[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,174 @@
FILE fqName:<root> fileName:/1.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:bar visibility:public modality:OPEN <> ($this:<root>.Java1) returnType:@[EnhancedNullability] kotlin.String? [fake_override]
annotations:
Nullable(value = <null>)
overridden:
public open fun bar (): @[EnhancedNullability] kotlin.String? declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<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, s:@[EnhancedNullability] kotlin.String?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (s: @[EnhancedNullability] kotlin.String?): kotlin.Unit declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:s index:0 type:@[EnhancedNullability] kotlin.String?
annotations:
Nullable(value = <null>)
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:bar visibility:public modality:OPEN <> ($this:<root>.B) returnType:kotlin.String
overridden:
public open fun bar (): @[EnhancedNullability] kotlin.String? declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.B
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar (): kotlin.String declared in <root>.B'
CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL
<T0>: kotlin.Nothing
arg0: CONST Null type=kotlin.Nothing? value=null
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.B, s:kotlin.String?) returnType:kotlin.Unit
overridden:
public open fun foo (s: @[EnhancedNullability] kotlin.String?): kotlin.Unit declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.B
VALUE_PARAMETER name:s index:0 type:kotlin.String?
BLOCK_BODY
CLASS CLASS name:C modality:ABSTRACT 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 kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:C modality:ABSTRACT visibility:public superTypes:[<root>.Java2]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:ABSTRACT <> ($this:<root>.Java2) returnType:@[EnhancedNullability] kotlin.String [fake_override]
annotations:
NotNull(value = <null>)
overridden:
public abstract fun bar (): @[EnhancedNullability] kotlin.String declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<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:ABSTRACT <> ($this:<root>.Java2, s:@[EnhancedNullability] kotlin.String) returnType:kotlin.Unit [fake_override]
overridden:
public abstract fun foo (s: @[EnhancedNullability] kotlin.String): kotlin.Unit declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.Java2
VALUE_PARAMETER name:s index:0 type:@[EnhancedNullability] kotlin.String
annotations:
NotNull(value = <null>)
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 kotlin.Any'
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:bar visibility:public modality:OPEN <> ($this:<root>.D) returnType:kotlin.String
overridden:
public abstract fun bar (): @[EnhancedNullability] kotlin.String declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.D
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar (): kotlin.String declared in <root>.D'
CONST String type=kotlin.String value=""
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.D, s:kotlin.String) returnType:kotlin.Unit
overridden:
public abstract fun foo (s: @[EnhancedNullability] kotlin.String): kotlin.Unit declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.D
VALUE_PARAMETER name:s index:0 type:kotlin.String
BLOCK_BODY
FUN name:test visibility:public modality:FINAL <> (a:<root>.A, b:<root>.B, c:<root>.C, d:<root>.D) 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
BLOCK_BODY
VAR name:k type:kotlin.String? [val]
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:nullableString type:@[EnhancedNullability] kotlin.String? visibility:public' type=@[EnhancedNullability] kotlin.String? origin=null
receiver: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
VAR name:k2 type:kotlin.String? [val]
CALL 'public open fun bar (): @[EnhancedNullability] kotlin.String? declared in <root>.A' type=@[EnhancedNullability] kotlin.String? origin=null
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
CALL 'public open fun foo (s: @[EnhancedNullability] kotlin.String?): 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
s: CONST Null type=kotlin.Nothing? value=null
CALL 'public open fun foo (s: @[EnhancedNullability] kotlin.String?): 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
s: CONST String type=kotlin.String value=""
VAR name:k3 type:kotlin.String? [val]
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:nullableString type:@[EnhancedNullability] kotlin.String? visibility:public' type=@[EnhancedNullability] kotlin.String? origin=null
receiver: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
VAR name:k4 type:kotlin.String [val]
CALL 'public open fun bar (): kotlin.String declared in <root>.B' type=kotlin.String origin=null
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
CALL 'public open fun foo (s: kotlin.String?): 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
s: CONST Null type=kotlin.Nothing? value=null
CALL 'public open fun foo (s: kotlin.String?): 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
s: CONST String type=kotlin.String value=""
VAR name:k5 type:kotlin.String [val]
TYPE_OP type=kotlin.String origin=IMPLICIT_NOTNULL typeOperand=kotlin.String
CALL 'public abstract fun bar (): @[EnhancedNullability] kotlin.String declared in <root>.C' type=@[EnhancedNullability] kotlin.String origin=null
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
CALL 'public abstract fun foo (s: @[EnhancedNullability] kotlin.String): 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
s: CONST String type=kotlin.String value=""
VAR name:k6 type:kotlin.String [val]
CALL 'public open fun bar (): kotlin.String declared in <root>.D' type=kotlin.String origin=null
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
CALL 'public open fun foo (s: kotlin.String): 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
s: CONST String type=kotlin.String value=""
@@ -0,0 +1,64 @@
class A : Java1 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
}
class B : Java1 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
override fun bar(): String {
return CHECK_NOT_NULL<Nothing>(arg0 = null)
}
override fun foo(s: String?) {
}
}
abstract class C : Java2 {
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
}
class D : Java2 {
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
override fun bar(): String {
return ""
}
override fun foo(s: String) {
}
}
fun test(a: A, b: B, c: C, d: D) {
val k: String? = a.#nullableString
val k2: String? = a.bar()
a.foo(s = null)
a.foo(s = "")
val k3: String? = b.#nullableString
val k4: String = b.bar()
b.foo(s = null)
b.foo(s = "")
val k5: String = c.bar() /*!! String */
c.foo(s = "")
val k6: String = d.bar()
d.foo(s = "")
}
@@ -0,0 +1,184 @@
FILE fqName:<root> fileName:/1.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:bar visibility:public modality:OPEN <> ($this:<root>.Java1) returnType:@[EnhancedNullability] kotlin.String? [fake_override]
annotations:
Nullable(value = <null>)
overridden:
public open fun bar (): @[EnhancedNullability] kotlin.String? declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<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, s:@[EnhancedNullability] kotlin.String?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (s: @[EnhancedNullability] kotlin.String?): kotlin.Unit declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:s index:0 type:@[EnhancedNullability] kotlin.String?
annotations:
Nullable(value = <null>)
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:nullableString visibility:public modality:FINAL [fake_override,var]
annotations:
Nullable(value = <null>)
overridden:
public final nullableString: @[EnhancedNullability] kotlin.String?
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:bar visibility:public modality:OPEN <> ($this:<root>.B) returnType:kotlin.String
overridden:
public open fun bar (): @[EnhancedNullability] kotlin.String? declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.B
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar (): kotlin.String declared in <root>.B'
CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL
<T0>: kotlin.Nothing
arg0: CONST Null type=kotlin.Nothing? value=null
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.B, s:kotlin.String?) returnType:kotlin.Unit
overridden:
public open fun foo (s: @[EnhancedNullability] kotlin.String?): kotlin.Unit declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.B
VALUE_PARAMETER name:s index:0 type:kotlin.String?
BLOCK_BODY
PROPERTY FAKE_OVERRIDE name:nullableString visibility:public modality:FINAL [fake_override,var]
annotations:
Nullable(value = <null>)
overridden:
public final nullableString: @[EnhancedNullability] kotlin.String?
CLASS CLASS name:C modality:ABSTRACT 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 kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:C modality:ABSTRACT visibility:public superTypes:[<root>.Java2]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:ABSTRACT <> ($this:<root>.Java2) returnType:@[EnhancedNullability] kotlin.String [fake_override]
annotations:
NotNull(value = <null>)
overridden:
public abstract fun bar (): @[EnhancedNullability] kotlin.String declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<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:ABSTRACT <> ($this:<root>.Java2, s:@[EnhancedNullability] kotlin.String) returnType:kotlin.Unit [fake_override]
overridden:
public abstract fun foo (s: @[EnhancedNullability] kotlin.String): kotlin.Unit declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.Java2
VALUE_PARAMETER name:s index:0 type:@[EnhancedNullability] kotlin.String
annotations:
NotNull(value = <null>)
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 kotlin.Any'
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:bar visibility:public modality:OPEN <> ($this:<root>.D) returnType:kotlin.String
overridden:
public abstract fun bar (): @[EnhancedNullability] kotlin.String declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.D
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar (): kotlin.String declared in <root>.D'
CONST String type=kotlin.String value=""
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.D, s:kotlin.String) returnType:kotlin.Unit
overridden:
public abstract fun foo (s: @[EnhancedNullability] kotlin.String): kotlin.Unit declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.D
VALUE_PARAMETER name:s index:0 type:kotlin.String
BLOCK_BODY
FUN name:test visibility:public modality:FINAL <> (a:<root>.A, b:<root>.B, c:<root>.C, d:<root>.D) 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
BLOCK_BODY
VAR name:k type:kotlin.String? [val]
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:nullableString type:@[EnhancedNullability] kotlin.String? visibility:public' type=@[EnhancedNullability] kotlin.String? origin=null
receiver: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
VAR name:k2 type:kotlin.String? [val]
CALL 'public open fun bar (): @[EnhancedNullability] kotlin.String? declared in <root>.A' type=@[EnhancedNullability] kotlin.String? origin=null
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
CALL 'public open fun foo (s: @[EnhancedNullability] kotlin.String?): 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
s: CONST Null type=kotlin.Nothing? value=null
CALL 'public open fun foo (s: @[EnhancedNullability] kotlin.String?): 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
s: CONST String type=kotlin.String value=""
VAR name:k3 type:kotlin.String? [val]
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:nullableString type:@[EnhancedNullability] kotlin.String? visibility:public' type=@[EnhancedNullability] kotlin.String? origin=null
receiver: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
VAR name:k4 type:kotlin.String [val]
CALL 'public open fun bar (): kotlin.String declared in <root>.B' type=kotlin.String origin=null
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
CALL 'public open fun foo (s: kotlin.String?): 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
s: CONST Null type=kotlin.Nothing? value=null
CALL 'public open fun foo (s: kotlin.String?): 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
s: CONST String type=kotlin.String value=""
VAR name:k5 type:kotlin.String [val]
TYPE_OP type=kotlin.String origin=IMPLICIT_NOTNULL typeOperand=kotlin.String
CALL 'public abstract fun bar (): @[EnhancedNullability] kotlin.String declared in <root>.C' type=@[EnhancedNullability] kotlin.String origin=null
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
CALL 'public abstract fun foo (s: @[EnhancedNullability] kotlin.String): 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
s: CONST String type=kotlin.String value=""
VAR name:k6 type:kotlin.String [val]
CALL 'public open fun bar (): kotlin.String declared in <root>.D' type=kotlin.String origin=null
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
CALL 'public open fun foo (s: kotlin.String): 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
s: CONST String type=kotlin.String value=""
@@ -0,0 +1,64 @@
// TARGET_BACKEND: JVM
// FILE: Java1.java
import org.jetbrains.annotations.Nullable;
public class Java1 {
@Nullable
public String nullableString = "";
@Nullable
public String bar() {
return nullableString;
}
public void foo(@Nullable String s) {}
}
// FILE: Java2.java
import org.jetbrains.annotations.NotNull;
public interface Java2 {
@NotNull
public String nullableString = "";
@NotNull
public String bar();
public void foo(@NotNull String s);
}
// FILE: 1.kt
class A : Java1()
class B : Java1() {
override fun foo(s: String?) { }
override fun bar(): String {
return null!!
}
}
abstract class C: Java2
class D : Java2 {
override fun bar(): String {
return ""
}
override fun foo(s: String) { }
}
fun test(a:A, b: B, c: C, d: D) {
val k: String? = a.nullableString
val k2: String? = a.bar()
a.foo(null)
a.foo("")
val k3: String? = b.nullableString
val k4: String = b.bar()
b.foo(null)
b.foo("")
val k5: String = c.bar()
c.foo("")
val k6: String = d.bar()
d.foo("")
}
@@ -0,0 +1,64 @@
class A : Java1 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
}
class B : Java1 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
override fun bar(): String {
return CHECK_NOT_NULL<Nothing>(arg0 = null)
}
override fun foo(s: String?) {
}
}
abstract class C : Java2 {
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
}
class D : Java2 {
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
override fun bar(): String {
return ""
}
override fun foo(s: String) {
}
}
fun test(a: A, b: B, c: C, d: D) {
val k: String? = a(super<A>).#nullableString
val k2: String? = a.bar()
a.foo(s = null)
a.foo(s = "")
val k3: String? = b(super<B>).#nullableString
val k4: String = b.bar()
b.foo(s = null)
b.foo(s = "")
val k5: String = c.bar() /*!! String */
c.foo(s = "")
val k6: String = d.bar()
d.foo(s = "")
}
@@ -0,0 +1,101 @@
// 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 JVM_IR:
// Mangled name: A#bar(){}kotlin.String?{EnhancedNullability}
// Public signature: /A.bar|7290041286951472444[0]
// Public signature debug description: bar(){}kotlin.String?{EnhancedNullability}
/* fake */ override fun bar(): @EnhancedNullability String?
// CHECK:
// Mangled name: A#foo(kotlin.String?{EnhancedNullability}){}
// Public signature: /A.foo|5501098881315880089[0]
// Public signature debug description: foo(kotlin.String?{EnhancedNullability}){}
/* fake */ override fun foo(s: @EnhancedNullability String?): 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 JVM_IR:
// Mangled name: B#bar(){}kotlin.String
// Public signature: /B.bar|1214702899383694193[0]
// Public signature debug description: bar(){}kotlin.String
override fun bar(): String
// CHECK:
// Mangled name: B#foo(kotlin.String?){}
// Public signature: /B.foo|-7402282804178432687[0]
// Public signature debug description: foo(kotlin.String?){}
override fun foo(s: String?): Unit
}
// CHECK:
// Mangled name: C
// Public signature: /C|null[0]
abstract class C : Java2 {
// CHECK:
// Mangled name: C#<init>(){}
// Public signature: /C.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: C#bar(){}kotlin.String{EnhancedNullability}
// Public signature: /C.bar|-4383985778696477509[0]
// Public signature debug description: bar(){}kotlin.String{EnhancedNullability}
abstract /* fake */ override fun bar(): @EnhancedNullability String
// CHECK:
// Mangled name: C#foo(kotlin.String{EnhancedNullability}){}
// Public signature: /C.foo|-6237292312337226907[0]
// Public signature debug description: foo(kotlin.String{EnhancedNullability}){}
abstract /* fake */ override fun foo(s: @EnhancedNullability String): 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 JVM_IR:
// Mangled name: D#bar(){}kotlin.String
// Public signature: /D.bar|1214702899383694193[0]
// Public signature debug description: bar(){}kotlin.String
override fun bar(): String
// CHECK:
// Mangled name: D#foo(kotlin.String){}
// Public signature: /D.foo|1351044947738582195[0]
// Public signature debug description: foo(kotlin.String){}
override fun foo(s: String): Unit
}
// CHECK:
// Mangled name: #test(A;B;C;D){}
// Public signature: /test|7656439746344069424[0]
// Public signature debug description: test(A;B;C;D){}
fun test(a: A, b: B, c: C, d: D): Unit
@@ -0,0 +1,498 @@
FILE fqName:<root> fileName:/1.kt
CLASS CLASS name:A modality:FINAL visibility:public superTypes:[<root>.Java1; <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>.Java1'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:A modality:FINAL visibility:public superTypes:[<root>.Java1; <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>.Java1
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>.Java1
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>.Java1
public open fun toString (): kotlin.String declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:bar visibility:public modality:OPEN <> ($this:<root>.A) returnType:kotlin.String
overridden:
public open fun bar (): @[FlexibleNullability] kotlin.String? declared in <root>.Java1
public abstract fun bar (): @[EnhancedNullability] kotlin.String declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.A
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar (): kotlin.String declared in <root>.A'
CONST String type=kotlin.String value=""
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.A, s:kotlin.String) returnType:kotlin.Unit
overridden:
public open fun foo (s: @[FlexibleNullability] kotlin.String?): kotlin.Unit declared in <root>.Java1
public abstract fun foo (s: @[EnhancedNullability] kotlin.String): kotlin.Unit declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.A
VALUE_PARAMETER name:s index:0 type:kotlin.String
BLOCK_BODY
CLASS CLASS name:B modality:FINAL visibility:public superTypes:[<root>.Java1; <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>.Java1'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:B modality:FINAL visibility:public superTypes:[<root>.Java1; <root>.Java2]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.Java2) returnType:@[EnhancedNullability] kotlin.String [fake_override]
annotations:
NotNull(value = <null>)
overridden:
public open fun bar (): @[FlexibleNullability] kotlin.String? declared in <root>.Java1
public abstract fun bar (): @[EnhancedNullability] kotlin.String declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<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>.Java1
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, s:@[FlexibleNullability] kotlin.String?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (s: @[FlexibleNullability] kotlin.String?): kotlin.Unit declared in <root>.Java1
public abstract fun foo (s: @[EnhancedNullability] kotlin.String): kotlin.Unit declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:s index:0 type:@[FlexibleNullability] kotlin.String?
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
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>.Java1
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>.Java1; <root>.Java3]
$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>.Java1'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:C modality:FINAL visibility:public superTypes:[<root>.Java1; <root>.Java3]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.Java3) returnType:@[EnhancedNullability] kotlin.String? [fake_override]
annotations:
Nullable(value = <null>)
overridden:
public open fun bar (): @[FlexibleNullability] kotlin.String? declared in <root>.Java1
public abstract fun bar (): @[EnhancedNullability] kotlin.String? declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<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>.Java1
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:public modality:OPEN <> ($this:<root>.Java1, s:@[FlexibleNullability] kotlin.String?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (s: @[FlexibleNullability] kotlin.String?): kotlin.Unit declared in <root>.Java1
public abstract fun foo (s: @[EnhancedNullability] kotlin.String?): kotlin.Unit declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:s index:0 type:@[FlexibleNullability] kotlin.String?
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
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>.Java1
public open fun toString (): kotlin.String declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:D modality:FINAL visibility:public superTypes:[<root>.Java1; <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>.Java1'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:D modality:FINAL visibility:public superTypes:[<root>.Java1; <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>.Java1
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>.Java1
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>.Java1
public open fun toString (): kotlin.String declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:bar visibility:public modality:OPEN <> ($this:<root>.D) returnType:kotlin.String
annotations:
Nullable(value = <null>)
overridden:
public open fun bar (): @[FlexibleNullability] kotlin.String? declared in <root>.Java1
public abstract fun bar (): @[EnhancedNullability] kotlin.String? declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.D
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar (): kotlin.String declared in <root>.D'
TYPE_OP type=kotlin.String origin=IMPLICIT_NOTNULL typeOperand=kotlin.String
CALL 'public open fun bar (): @[FlexibleNullability] kotlin.String? declared in <root>.Java1' superQualifier='CLASS IR_EXTERNAL_JAVA_DECLARATION_STUB CLASS name:Java1 modality:OPEN visibility:public superTypes:[kotlin.Any]' type=@[FlexibleNullability] kotlin.String? origin=null
$this: GET_VAR '<this>: <root>.D declared in <root>.D.bar' type=<root>.D origin=null
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.D, s:kotlin.String?) returnType:kotlin.Unit
annotations:
NotNull(value = <null>)
overridden:
public open fun foo (s: @[FlexibleNullability] kotlin.String?): kotlin.Unit declared in <root>.Java1
public abstract fun foo (s: @[EnhancedNullability] kotlin.String?): kotlin.Unit declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.D
VALUE_PARAMETER name:s index:0 type:kotlin.String?
annotations:
NotNull(value = <null>)
BLOCK_BODY
CALL 'public open fun foo (s: @[FlexibleNullability] kotlin.String?): kotlin.Unit declared in <root>.Java1' superQualifier='CLASS IR_EXTERNAL_JAVA_DECLARATION_STUB CLASS name:Java1 modality:OPEN visibility:public superTypes:[kotlin.Any]' type=kotlin.Unit origin=null
$this: GET_VAR '<this>: <root>.D declared in <root>.D.foo' type=<root>.D origin=null
s: GET_VAR 's: kotlin.String? declared in <root>.D.foo' type=kotlin.String? origin=null
CLASS CLASS name:E modality:ABSTRACT visibility:public superTypes:[<root>.Java2; <root>.KotlinInterface]
$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:ABSTRACT visibility:public superTypes:[<root>.Java2; <root>.KotlinInterface]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:ABSTRACT <> ($this:<root>.Java2) returnType:@[EnhancedNullability] kotlin.String [fake_override]
annotations:
NotNull(value = <null>)
overridden:
public abstract fun bar (): @[EnhancedNullability] kotlin.String declared in <root>.Java2
public abstract fun bar (): kotlin.String declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<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
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.KotlinInterface
$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>.Java2, s:@[EnhancedNullability] kotlin.String) returnType:kotlin.Unit [fake_override]
overridden:
public abstract fun foo (s: @[EnhancedNullability] kotlin.String): kotlin.Unit declared in <root>.Java2
public abstract fun foo (s: kotlin.String): kotlin.Unit declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.Java2
VALUE_PARAMETER name:s index:0 type:@[EnhancedNullability] kotlin.String
annotations:
NotNull(value = <null>)
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
public open fun hashCode (): kotlin.Int declared in <root>.KotlinInterface
$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
public open fun toString (): kotlin.String declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
PROPERTY FAKE_OVERRIDE name:nullableString visibility:public modality:OPEN [fake_override,val]
overridden:
public open nullableString: kotlin.String
FUN FAKE_OVERRIDE name:<get-nullableString> visibility:public modality:OPEN <> ($this:<root>.KotlinInterface) returnType:kotlin.String [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:nullableString visibility:public modality:OPEN [fake_override,val]
overridden:
public open fun <get-nullableString> (): kotlin.String declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
CLASS CLASS name:F modality:FINAL visibility:public superTypes:[<root>.Java2; <root>.KotlinInterface]
$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 kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:F modality:FINAL visibility:public superTypes:[<root>.Java2; <root>.KotlinInterface]'
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
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.KotlinInterface
$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
public open fun hashCode (): kotlin.Int declared in <root>.KotlinInterface
$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
public open fun toString (): kotlin.String declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:bar visibility:public modality:OPEN <> ($this:<root>.F) returnType:kotlin.String
overridden:
public abstract fun bar (): @[EnhancedNullability] kotlin.String declared in <root>.Java2
public abstract fun bar (): kotlin.String declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.F
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar (): kotlin.String declared in <root>.F'
CONST String type=kotlin.String value=""
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.F, s:kotlin.String) returnType:kotlin.Unit
overridden:
public abstract fun foo (s: @[EnhancedNullability] kotlin.String): kotlin.Unit declared in <root>.Java2
public abstract fun foo (s: kotlin.String): kotlin.Unit declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.F
VALUE_PARAMETER name:s index:0 type:kotlin.String
BLOCK_BODY
PROPERTY FAKE_OVERRIDE name:nullableString visibility:public modality:OPEN [fake_override,val]
overridden:
public open nullableString: kotlin.String
FUN FAKE_OVERRIDE name:<get-nullableString> visibility:public modality:OPEN <> ($this:<root>.KotlinInterface) returnType:kotlin.String [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:nullableString visibility:public modality:OPEN [fake_override,val]
overridden:
public open fun <get-nullableString> (): kotlin.String declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
CLASS CLASS name:G modality:FINAL visibility:public superTypes:[<root>.Java1; <root>.KotlinInterface2]
$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>.Java1'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:G modality:FINAL visibility:public superTypes:[<root>.Java1; <root>.KotlinInterface2]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.KotlinInterface2) returnType:kotlin.String [fake_override]
annotations:
NotNull(value = <null>)
overridden:
public open fun bar (): @[FlexibleNullability] kotlin.String? declared in <root>.Java1
public abstract fun bar (): kotlin.String declared in <root>.KotlinInterface2
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface2
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
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.KotlinInterface2
$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, s:@[FlexibleNullability] kotlin.String?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (s: @[FlexibleNullability] kotlin.String?): kotlin.Unit declared in <root>.Java1
public abstract fun foo (s: kotlin.String): kotlin.Unit declared in <root>.KotlinInterface2
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:s index:0 type:@[FlexibleNullability] kotlin.String?
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
public open fun hashCode (): kotlin.Int declared in <root>.KotlinInterface2
$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
public open fun toString (): kotlin.String declared in <root>.KotlinInterface2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
PROPERTY FAKE_OVERRIDE name:nullableString visibility:public modality:OPEN [fake_override,val]
overridden:
public open nullableString: kotlin.String
FUN FAKE_OVERRIDE name:<get-nullableString> visibility:public modality:OPEN <> ($this:<root>.KotlinInterface2) returnType:kotlin.String [fake_override]
annotations:
NotNull(value = <null>)
correspondingProperty: PROPERTY FAKE_OVERRIDE name:nullableString visibility:public modality:OPEN [fake_override,val]
overridden:
public open fun <get-nullableString> (): kotlin.String declared in <root>.KotlinInterface2
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface2
CLASS CLASS name:H modality:FINAL visibility:public superTypes:[<root>.Java1; <root>.Java2; <root>.Java3]
$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>.Java1'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:H modality:FINAL visibility:public superTypes:[<root>.Java1; <root>.Java2; <root>.Java3]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.Java3) returnType:@[EnhancedNullability] kotlin.String? [fake_override]
annotations:
Nullable(value = <null>)
overridden:
public open fun bar (): @[FlexibleNullability] kotlin.String? declared in <root>.Java1
public abstract fun bar (): @[EnhancedNullability] kotlin.String declared in <root>.Java2
public abstract fun bar (): @[EnhancedNullability] kotlin.String? declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<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>.Java1
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java2
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:public modality:OPEN <> ($this:<root>.Java1, s:@[FlexibleNullability] kotlin.String?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (s: @[FlexibleNullability] kotlin.String?): kotlin.Unit declared in <root>.Java1
public abstract fun foo (s: @[EnhancedNullability] kotlin.String): kotlin.Unit declared in <root>.Java2
public abstract fun foo (s: @[EnhancedNullability] kotlin.String?): kotlin.Unit declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:s index:0 type:@[FlexibleNullability] kotlin.String?
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
public open fun hashCode (): kotlin.Int declared in <root>.Java2
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>.Java1
public open fun toString (): kotlin.String declared in <root>.Java2
public open fun toString (): kotlin.String declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS INTERFACE name:KotlinInterface modality:ABSTRACT visibility:public superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.KotlinInterface
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:bar visibility:public modality:ABSTRACT <> ($this:<root>.KotlinInterface) returnType:kotlin.String
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
FUN name:foo visibility:public modality:ABSTRACT <> ($this:<root>.KotlinInterface, s:kotlin.String) returnType:kotlin.Unit
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
VALUE_PARAMETER name:s index:0 type:kotlin.String
PROPERTY name:nullableString visibility:public modality:OPEN [val]
FUN name:<get-nullableString> visibility:public modality:OPEN <> ($this:<root>.KotlinInterface) returnType:kotlin.String
correspondingProperty: PROPERTY name:nullableString visibility:public modality:OPEN [val]
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun <get-nullableString> (): kotlin.String declared in <root>.KotlinInterface'
CONST String type=kotlin.String value=""
CLASS INTERFACE name:KotlinInterface2 modality:ABSTRACT visibility:public superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.KotlinInterface2
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:bar visibility:public modality:ABSTRACT <> ($this:<root>.KotlinInterface2) returnType:kotlin.String
annotations:
NotNull(value = <null>)
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface2
FUN name:foo visibility:public modality:ABSTRACT <> ($this:<root>.KotlinInterface2, s:kotlin.String) returnType:kotlin.Unit
annotations:
NotNull(value = <null>)
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface2
VALUE_PARAMETER name:s index:0 type:kotlin.String
annotations:
NotNull(value = <null>)
PROPERTY name:nullableString visibility:public modality:OPEN [val]
FUN name:<get-nullableString> visibility:public modality:OPEN <> ($this:<root>.KotlinInterface2) returnType:kotlin.String
annotations:
NotNull(value = <null>)
correspondingProperty: PROPERTY name:nullableString visibility:public modality:OPEN [val]
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface2
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun <get-nullableString> (): kotlin.String declared in <root>.KotlinInterface2'
CONST String type=kotlin.String value=""
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
VAR name:k type:kotlin.String? [val]
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:nullableString type:@[FlexibleNullability] kotlin.String? visibility:public' type=@[FlexibleNullability] kotlin.String? origin=null
receiver: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
VAR name:k2 type:kotlin.String [val]
CALL 'public open fun bar (): kotlin.String declared in <root>.A' type=kotlin.String origin=null
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
CALL 'public open fun foo (s: kotlin.String): 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
s: CONST String type=kotlin.String value=""
VAR name:k3 type:kotlin.String [val]
TYPE_OP type=kotlin.String origin=IMPLICIT_NOTNULL typeOperand=kotlin.String
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:nullableString type:@[FlexibleNullability] kotlin.String? visibility:public' type=@[FlexibleNullability] kotlin.String? origin=null
receiver: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
VAR name:k4 type:kotlin.String [val]
TYPE_OP type=kotlin.String origin=IMPLICIT_NOTNULL typeOperand=kotlin.String
CALL 'public open fun bar (): @[EnhancedNullability] kotlin.String declared in <root>.B' type=@[EnhancedNullability] kotlin.String origin=null
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
CALL 'public open fun foo (s: @[FlexibleNullability] kotlin.String?): 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
s: CONST String type=kotlin.String value=""
CALL 'public open fun foo (s: @[FlexibleNullability] kotlin.String?): 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
s: CONST Null type=kotlin.Nothing? value=null
VAR name:k5 type:kotlin.String [val]
TYPE_OP type=kotlin.String origin=IMPLICIT_NOTNULL typeOperand=kotlin.String
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:nullableString type:@[FlexibleNullability] kotlin.String? visibility:public' type=@[FlexibleNullability] kotlin.String? origin=null
receiver: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
VAR name:k6 type:kotlin.String? [val]
CALL 'public open fun bar (): @[EnhancedNullability] kotlin.String? declared in <root>.C' type=@[EnhancedNullability] kotlin.String? origin=null
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
CALL 'public open fun foo (s: @[FlexibleNullability] kotlin.String?): 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
s: CONST String type=kotlin.String value=""
CALL 'public open fun foo (s: @[FlexibleNullability] kotlin.String?): 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
s: CONST Null type=kotlin.Nothing? value=null
VAR name:k7 type:kotlin.String [val]
TYPE_OP type=kotlin.String origin=IMPLICIT_NOTNULL typeOperand=kotlin.String
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:nullableString type:@[FlexibleNullability] kotlin.String? visibility:public' type=@[FlexibleNullability] kotlin.String? origin=null
receiver: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
VAR name:k8 type:kotlin.String [val]
CALL 'public open fun bar (): kotlin.String declared in <root>.D' type=kotlin.String origin=null
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
CALL 'public open fun foo (s: kotlin.String?): 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
s: CONST String type=kotlin.String value=""
CALL 'public open fun foo (s: kotlin.String?): 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
s: CONST Null type=kotlin.Nothing? value=null
VAR name:k9 type:kotlin.String [val]
CALL 'public open fun <get-nullableString> (): kotlin.String declared in <root>.E' type=kotlin.String origin=GET_PROPERTY
$this: GET_VAR 'e: <root>.E declared in <root>.test' type=<root>.E origin=null
VAR name:k10 type:kotlin.String [val]
TYPE_OP type=kotlin.String origin=IMPLICIT_NOTNULL typeOperand=kotlin.String
CALL 'public abstract fun bar (): @[EnhancedNullability] kotlin.String declared in <root>.E' type=@[EnhancedNullability] kotlin.String origin=null
$this: GET_VAR 'e: <root>.E declared in <root>.test' type=<root>.E origin=null
CALL 'public abstract fun foo (s: @[EnhancedNullability] kotlin.String): 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
s: CONST String type=kotlin.String value=""
VAR name:k11 type:kotlin.String [val]
CALL 'public open fun <get-nullableString> (): kotlin.String declared in <root>.F' type=kotlin.String origin=GET_PROPERTY
$this: GET_VAR 'f: <root>.F declared in <root>.test' type=<root>.F origin=null
VAR name:k12 type:kotlin.String [val]
CALL 'public open fun bar (): kotlin.String declared in <root>.F' type=kotlin.String origin=null
$this: GET_VAR 'f: <root>.F declared in <root>.test' type=<root>.F origin=null
CALL 'public open fun foo (s: kotlin.String): 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
s: CONST String type=kotlin.String value=""
VAR name:k13 type:kotlin.String [val]
TYPE_OP type=kotlin.String origin=IMPLICIT_NOTNULL typeOperand=kotlin.String
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:nullableString type:@[FlexibleNullability] kotlin.String? visibility:public' type=@[FlexibleNullability] kotlin.String? origin=null
receiver: GET_VAR 'g: <root>.G declared in <root>.test' type=<root>.G origin=null
VAR name:k14 type:kotlin.String [val]
CALL 'public open fun bar (): kotlin.String declared in <root>.G' type=kotlin.String origin=null
$this: GET_VAR 'g: <root>.G declared in <root>.test' type=<root>.G origin=null
CALL 'public open fun foo (s: @[FlexibleNullability] kotlin.String?): 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
s: CONST String type=kotlin.String value=""
CALL 'public open fun foo (s: @[FlexibleNullability] kotlin.String?): 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
s: CONST Null type=kotlin.Nothing? value=null
VAR name:k15 type:kotlin.String [val]
TYPE_OP type=kotlin.String origin=IMPLICIT_NOTNULL typeOperand=kotlin.String
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:nullableString type:@[FlexibleNullability] kotlin.String? visibility:public' type=@[FlexibleNullability] kotlin.String? origin=null
receiver: GET_VAR 'h: <root>.H declared in <root>.test' type=<root>.H origin=null
VAR name:k16 type:kotlin.String [val]
TYPE_OP type=kotlin.String origin=IMPLICIT_NOTNULL typeOperand=kotlin.String
CALL 'public open fun bar (): @[EnhancedNullability] kotlin.String? declared in <root>.H' type=@[EnhancedNullability] kotlin.String origin=null
$this: GET_VAR 'h: <root>.H declared in <root>.test' type=<root>.H origin=null
CALL 'public open fun foo (s: @[FlexibleNullability] kotlin.String?): 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
s: CONST String type=kotlin.String value=""
CALL 'public open fun foo (s: @[FlexibleNullability] kotlin.String?): 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
s: CONST Null type=kotlin.Nothing? value=null
@@ -0,0 +1,154 @@
class A : Java1, Java2 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
override fun bar(): String {
return ""
}
override fun foo(s: String) {
}
}
class B : Java1, Java2 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
}
class C : Java1, Java3 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
}
class D : Java1, Java3 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
@Nullable
override fun bar(): String {
return super<Java1>.bar() /*!! String */
}
@NotNull
override fun foo(@NotNull s: String?) {
super<Java1>.foo(s = s)
}
}
abstract class E : Java2, KotlinInterface {
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
}
class F : Java2, KotlinInterface {
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
override fun bar(): String {
return ""
}
override fun foo(s: String) {
}
}
class G : Java1, KotlinInterface2 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
}
class H : Java1, Java2, Java3 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
}
interface KotlinInterface {
abstract fun bar(): String
abstract fun foo(s: String)
val nullableString: String
get(): String {
return ""
}
}
interface KotlinInterface2 {
@NotNull
abstract fun bar(): String
@NotNull
abstract fun foo(@NotNull s: String)
val nullableString: String
@NotNull
get(): String {
return ""
}
}
fun test(a: A, b: B, c: C, d: D, e: E, f: F, g: G, h: H) {
val k: String? = a.#nullableString
val k2: String = a.bar()
a.foo(s = "")
val k3: String = b.#nullableString /*!! String */
val k4: String = b.bar() /*!! String */
b.foo(s = "")
b.foo(s = null)
val k5: String = c.#nullableString /*!! String */
val k6: String? = c.bar()
c.foo(s = "")
c.foo(s = null)
val k7: String = d.#nullableString /*!! String */
val k8: String = d.bar()
d.foo(s = "")
d.foo(s = null)
val k9: String = e.<get-nullableString>()
val k10: String = e.bar() /*!! String */
e.foo(s = "")
val k11: String = f.<get-nullableString>()
val k12: String = f.bar()
f.foo(s = "")
val k13: String = g.#nullableString /*!! String */
val k14: String = g.bar()
g.foo(s = "")
g.foo(s = null)
val k15: String = h.#nullableString /*!! String */
val k16: String = h.bar() /*!! String */
h.foo(s = "")
h.foo(s = null)
}
@@ -0,0 +1,288 @@
// CHECK:
// Mangled name: A
// Public signature: /A|null[0]
class A : Java1, Java2 {
// CHECK:
// Mangled name: A#<init>(){}
// Public signature: /A.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: A#bar(){}kotlin.String
// Public signature: /A.bar|1214702899383694193[0]
// Public signature debug description: bar(){}kotlin.String
override fun bar(): String
// CHECK:
// Mangled name: A#foo(kotlin.String){}
// Public signature: /A.foo|1351044947738582195[0]
// Public signature debug description: foo(kotlin.String){}
override fun foo(s: String): Unit
}
// CHECK:
// Mangled name: B
// Public signature: /B|null[0]
class B : Java1, Java2 {
// CHECK:
// Mangled name: B#<init>(){}
// Public signature: /B.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: B#bar(){}kotlin.String{EnhancedNullability}
// Public signature: /B.bar|-4383985778696477509[0]
// Public signature debug description: bar(){}kotlin.String{EnhancedNullability}
/* fake */ override fun bar(): @EnhancedNullability String
// CHECK:
// Mangled name: B#foo(kotlin.String?){}
// Public signature: /B.foo|-7402282804178432687[0]
// Public signature debug description: foo(kotlin.String?){}
/* fake */ override fun foo(s: String?): Unit
}
// CHECK:
// Mangled name: C
// Public signature: /C|null[0]
class C : Java1, Java3 {
// CHECK:
// Mangled name: C#<init>(){}
// Public signature: /C.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: C#bar(){}kotlin.String?{EnhancedNullability}
// Public signature: /C.bar|7290041286951472444[0]
// Public signature debug description: bar(){}kotlin.String?{EnhancedNullability}
/* fake */ override fun bar(): @EnhancedNullability String?
// CHECK:
// Mangled name: C#foo(kotlin.String?){}
// Public signature: /C.foo|-7402282804178432687[0]
// Public signature debug description: foo(kotlin.String?){}
/* fake */ override fun foo(s: String?): Unit
}
// CHECK:
// Mangled name: D
// Public signature: /D|null[0]
class D : Java1, Java3 {
// CHECK:
// Mangled name: D#<init>(){}
// Public signature: /D.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: D#bar(){}kotlin.String
// Public signature: /D.bar|1214702899383694193[0]
// Public signature debug description: bar(){}kotlin.String
override fun bar(): String
// CHECK:
// Mangled name: D#foo(kotlin.String?){}
// Public signature: /D.foo|-7402282804178432687[0]
// Public signature debug description: foo(kotlin.String?){}
override fun foo(s: String?): Unit
}
// CHECK:
// Mangled name: E
// Public signature: /E|null[0]
abstract class E : Java2, KotlinInterface {
// CHECK:
// Mangled name: E#<init>(){}
// Public signature: /E.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: E#bar(){}kotlin.String{EnhancedNullability}
// Public signature: /E.bar|-4383985778696477509[0]
// Public signature debug description: bar(){}kotlin.String{EnhancedNullability}
abstract /* fake */ override fun bar(): @EnhancedNullability String
// CHECK:
// Mangled name: E#foo(kotlin.String{EnhancedNullability}){}
// Public signature: /E.foo|-6237292312337226907[0]
// Public signature debug description: foo(kotlin.String{EnhancedNullability}){}
abstract /* fake */ override fun foo(s: @EnhancedNullability String): Unit
// CHECK:
// Mangled name: E{}nullableString
// Public signature: /E.nullableString|-5031128639215906993[0]
// Public signature debug description: {}nullableString
/* fake */ override val nullableString: String
// CHECK JVM_IR:
// Mangled name: E#<get-nullableString>(){}kotlin.String
// Public signature: /E.nullableString.<get-nullableString>|8912918971227852816[0]
// Public signature debug description: <get-nullableString>(){}kotlin.String
/* fake */ override get(): String
}
// CHECK:
// Mangled name: F
// Public signature: /F|null[0]
class F : Java2, KotlinInterface {
// CHECK:
// Mangled name: F#<init>(){}
// Public signature: /F.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: F#bar(){}kotlin.String
// Public signature: /F.bar|1214702899383694193[0]
// Public signature debug description: bar(){}kotlin.String
override fun bar(): String
// CHECK:
// Mangled name: F#foo(kotlin.String){}
// Public signature: /F.foo|1351044947738582195[0]
// Public signature debug description: foo(kotlin.String){}
override fun foo(s: String): Unit
// CHECK:
// Mangled name: F{}nullableString
// Public signature: /F.nullableString|-5031128639215906993[0]
// Public signature debug description: {}nullableString
/* fake */ override val nullableString: String
// CHECK JVM_IR:
// Mangled name: F#<get-nullableString>(){}kotlin.String
// Public signature: /F.nullableString.<get-nullableString>|8912918971227852816[0]
// Public signature debug description: <get-nullableString>(){}kotlin.String
/* fake */ override get(): String
}
// CHECK:
// Mangled name: G
// Public signature: /G|null[0]
class G : Java1, KotlinInterface2 {
// CHECK:
// Mangled name: G#<init>(){}
// Public signature: /G.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: G#bar(){}kotlin.String
// Public signature: /G.bar|1214702899383694193[0]
// Public signature debug description: bar(){}kotlin.String
/* fake */ override fun bar(): String
// CHECK:
// Mangled name: G#foo(kotlin.String?){}
// Public signature: /G.foo|-7402282804178432687[0]
// Public signature debug description: foo(kotlin.String?){}
/* fake */ override fun foo(s: String?): Unit
// CHECK:
// Mangled name: G{}nullableString
// Public signature: /G.nullableString|-5031128639215906993[0]
// Public signature debug description: {}nullableString
/* fake */ override val nullableString: String
// CHECK JVM_IR:
// Mangled name: G#<get-nullableString>(){}kotlin.String
// Public signature: /G.nullableString.<get-nullableString>|8912918971227852816[0]
// Public signature debug description: <get-nullableString>(){}kotlin.String
/* fake */ override get(): String
}
// CHECK:
// Mangled name: H
// Public signature: /H|null[0]
class H : Java1, Java2, Java3 {
// CHECK:
// Mangled name: H#<init>(){}
// Public signature: /H.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: H#bar(){}kotlin.String?{EnhancedNullability}
// Public signature: /H.bar|7290041286951472444[0]
// Public signature debug description: bar(){}kotlin.String?{EnhancedNullability}
/* fake */ override fun bar(): @EnhancedNullability String?
// CHECK:
// Mangled name: H#foo(kotlin.String?){}
// Public signature: /H.foo|-7402282804178432687[0]
// Public signature debug description: foo(kotlin.String?){}
/* fake */ override fun foo(s: String?): Unit
}
// CHECK:
// Mangled name: KotlinInterface
// Public signature: /KotlinInterface|null[0]
interface KotlinInterface {
// CHECK JVM_IR:
// Mangled name: KotlinInterface#bar(){}kotlin.String
// Public signature: /KotlinInterface.bar|1214702899383694193[0]
// Public signature debug description: bar(){}kotlin.String
abstract fun bar(): String
// CHECK:
// Mangled name: KotlinInterface#foo(kotlin.String){}
// Public signature: /KotlinInterface.foo|1351044947738582195[0]
// Public signature debug description: foo(kotlin.String){}
abstract fun foo(s: String): Unit
// CHECK:
// Mangled name: KotlinInterface{}nullableString
// Public signature: /KotlinInterface.nullableString|-5031128639215906993[0]
// Public signature debug description: {}nullableString
val nullableString: String
// CHECK JVM_IR:
// Mangled name: KotlinInterface#<get-nullableString>(){}kotlin.String
// Public signature: /KotlinInterface.nullableString.<get-nullableString>|8912918971227852816[0]
// Public signature debug description: <get-nullableString>(){}kotlin.String
get(): String
}
// CHECK:
// Mangled name: KotlinInterface2
// Public signature: /KotlinInterface2|null[0]
interface KotlinInterface2 {
// CHECK JVM_IR:
// Mangled name: KotlinInterface2#bar(){}kotlin.String
// Public signature: /KotlinInterface2.bar|1214702899383694193[0]
// Public signature debug description: bar(){}kotlin.String
abstract fun bar(): String
// CHECK:
// Mangled name: KotlinInterface2#foo(kotlin.String){}
// Public signature: /KotlinInterface2.foo|1351044947738582195[0]
// Public signature debug description: foo(kotlin.String){}
abstract fun foo(s: String): Unit
// CHECK:
// Mangled name: KotlinInterface2{}nullableString
// Public signature: /KotlinInterface2.nullableString|-5031128639215906993[0]
// Public signature debug description: {}nullableString
val nullableString: String
// CHECK JVM_IR:
// Mangled name: KotlinInterface2#<get-nullableString>(){}kotlin.String
// Public signature: /KotlinInterface2.nullableString.<get-nullableString>|8912918971227852816[0]
// Public signature debug description: <get-nullableString>(){}kotlin.String
get(): String
}
// 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,516 @@
FILE fqName:<root> fileName:/1.kt
CLASS CLASS name:A modality:FINAL visibility:public superTypes:[<root>.Java1; <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>.Java1'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:A modality:FINAL visibility:public superTypes:[<root>.Java1; <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>.Java1
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>.Java1
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>.Java1
public open fun toString (): kotlin.String declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:bar visibility:public modality:OPEN <> ($this:<root>.A) returnType:kotlin.String
overridden:
public open fun bar (): @[FlexibleNullability] kotlin.String? declared in <root>.Java1
public abstract fun bar (): @[EnhancedNullability] kotlin.String declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.A
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar (): kotlin.String declared in <root>.A'
CONST String type=kotlin.String value=""
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.A, s:kotlin.String) returnType:kotlin.Unit
overridden:
public open fun foo (s: @[FlexibleNullability] kotlin.String?): kotlin.Unit declared in <root>.Java1
public abstract fun foo (s: @[EnhancedNullability] kotlin.String): kotlin.Unit declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.A
VALUE_PARAMETER name:s index:0 type:kotlin.String
BLOCK_BODY
PROPERTY FAKE_OVERRIDE name:nullableString visibility:public modality:FINAL [fake_override,var]
overridden:
public final nullableString: @[FlexibleNullability] kotlin.String?
CLASS CLASS name:B modality:FINAL visibility:public superTypes:[<root>.Java1; <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>.Java1'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:B modality:FINAL visibility:public superTypes:[<root>.Java1; <root>.Java2]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.Java2) returnType:@[EnhancedNullability] kotlin.String [fake_override]
annotations:
NotNull(value = <null>)
overridden:
public open fun bar (): @[FlexibleNullability] kotlin.String? declared in <root>.Java1
public abstract fun bar (): @[EnhancedNullability] kotlin.String declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<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>.Java1
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, s:@[FlexibleNullability] kotlin.String?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (s: @[FlexibleNullability] kotlin.String?): kotlin.Unit declared in <root>.Java1
public abstract fun foo (s: @[EnhancedNullability] kotlin.String): kotlin.Unit declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:s index:0 type:@[FlexibleNullability] kotlin.String?
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
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>.Java1
public open fun toString (): kotlin.String declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
PROPERTY FAKE_OVERRIDE name:nullableString visibility:public modality:FINAL [fake_override,var]
overridden:
public final nullableString: @[FlexibleNullability] kotlin.String?
CLASS CLASS name:C modality:FINAL visibility:public superTypes:[<root>.Java1; <root>.Java3]
$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>.Java1'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:C modality:FINAL visibility:public superTypes:[<root>.Java1; <root>.Java3]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.Java3) returnType:@[EnhancedNullability] kotlin.String? [fake_override]
annotations:
Nullable(value = <null>)
overridden:
public open fun bar (): @[FlexibleNullability] kotlin.String? declared in <root>.Java1
public abstract fun bar (): @[EnhancedNullability] kotlin.String? declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<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>.Java1
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:public modality:OPEN <> ($this:<root>.Java1, s:@[FlexibleNullability] kotlin.String?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (s: @[FlexibleNullability] kotlin.String?): kotlin.Unit declared in <root>.Java1
public abstract fun foo (s: @[EnhancedNullability] kotlin.String?): kotlin.Unit declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:s index:0 type:@[FlexibleNullability] kotlin.String?
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
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>.Java1
public open fun toString (): kotlin.String declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
PROPERTY FAKE_OVERRIDE name:nullableString visibility:public modality:FINAL [fake_override,var]
overridden:
public final nullableString: @[FlexibleNullability] kotlin.String?
CLASS CLASS name:D modality:FINAL visibility:public superTypes:[<root>.Java1; <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>.Java1'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:D modality:FINAL visibility:public superTypes:[<root>.Java1; <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>.Java1
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>.Java1
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>.Java1
public open fun toString (): kotlin.String declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:bar visibility:public modality:OPEN <> ($this:<root>.D) returnType:kotlin.String
annotations:
Nullable(value = <null>)
overridden:
public open fun bar (): @[FlexibleNullability] kotlin.String? declared in <root>.Java1
public abstract fun bar (): @[EnhancedNullability] kotlin.String? declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.D
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar (): kotlin.String declared in <root>.D'
TYPE_OP type=kotlin.String origin=IMPLICIT_NOTNULL typeOperand=kotlin.String
CALL 'public open fun bar (): @[FlexibleNullability] kotlin.String? declared in <root>.Java1' superQualifier='CLASS IR_EXTERNAL_JAVA_DECLARATION_STUB CLASS name:Java1 modality:OPEN visibility:public superTypes:[kotlin.Any]' type=@[FlexibleNullability] kotlin.String? origin=null
$this: GET_VAR '<this>: <root>.D declared in <root>.D.bar' type=<root>.D origin=null
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.D, s:kotlin.String?) returnType:kotlin.Unit
annotations:
NotNull(value = <null>)
overridden:
public open fun foo (s: @[FlexibleNullability] kotlin.String?): kotlin.Unit declared in <root>.Java1
public abstract fun foo (s: @[EnhancedNullability] kotlin.String?): kotlin.Unit declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.D
VALUE_PARAMETER name:s index:0 type:kotlin.String?
annotations:
NotNull(value = <null>)
BLOCK_BODY
CALL 'public open fun foo (s: @[FlexibleNullability] kotlin.String?): kotlin.Unit declared in <root>.Java1' superQualifier='CLASS IR_EXTERNAL_JAVA_DECLARATION_STUB CLASS name:Java1 modality:OPEN visibility:public superTypes:[kotlin.Any]' type=kotlin.Unit origin=null
$this: GET_VAR '<this>: <root>.D declared in <root>.D.foo' type=<root>.D origin=null
s: GET_VAR 's: kotlin.String? declared in <root>.D.foo' type=kotlin.String? origin=null
PROPERTY FAKE_OVERRIDE name:nullableString visibility:public modality:FINAL [fake_override,var]
overridden:
public final nullableString: @[FlexibleNullability] kotlin.String?
CLASS CLASS name:E modality:ABSTRACT visibility:public superTypes:[<root>.Java2; <root>.KotlinInterface]
$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:ABSTRACT visibility:public superTypes:[<root>.Java2; <root>.KotlinInterface]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:ABSTRACT <> ($this:<root>.Java2) returnType:@[EnhancedNullability] kotlin.String [fake_override]
annotations:
NotNull(value = <null>)
overridden:
public abstract fun bar (): @[EnhancedNullability] kotlin.String declared in <root>.Java2
public abstract fun bar (): kotlin.String declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<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
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.KotlinInterface
$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>.Java2, s:@[EnhancedNullability] kotlin.String) returnType:kotlin.Unit [fake_override]
overridden:
public abstract fun foo (s: @[EnhancedNullability] kotlin.String): kotlin.Unit declared in <root>.Java2
public abstract fun foo (s: kotlin.String): kotlin.Unit declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.Java2
VALUE_PARAMETER name:s index:0 type:@[EnhancedNullability] kotlin.String
annotations:
NotNull(value = <null>)
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
public open fun hashCode (): kotlin.Int declared in <root>.KotlinInterface
$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
public open fun toString (): kotlin.String declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
PROPERTY FAKE_OVERRIDE name:nullableString visibility:public modality:OPEN [fake_override,val]
overridden:
public open nullableString: kotlin.String
FUN FAKE_OVERRIDE name:<get-nullableString> visibility:public modality:OPEN <> ($this:<root>.KotlinInterface) returnType:kotlin.String [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:nullableString visibility:public modality:OPEN [fake_override,val]
overridden:
public open fun <get-nullableString> (): kotlin.String declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
CLASS CLASS name:F modality:FINAL visibility:public superTypes:[<root>.Java2; <root>.KotlinInterface]
$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 kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:F modality:FINAL visibility:public superTypes:[<root>.Java2; <root>.KotlinInterface]'
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
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.KotlinInterface
$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
public open fun hashCode (): kotlin.Int declared in <root>.KotlinInterface
$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
public open fun toString (): kotlin.String declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:bar visibility:public modality:OPEN <> ($this:<root>.F) returnType:kotlin.String
overridden:
public abstract fun bar (): @[EnhancedNullability] kotlin.String declared in <root>.Java2
public abstract fun bar (): kotlin.String declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.F
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar (): kotlin.String declared in <root>.F'
CONST String type=kotlin.String value=""
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.F, s:kotlin.String) returnType:kotlin.Unit
overridden:
public abstract fun foo (s: @[EnhancedNullability] kotlin.String): kotlin.Unit declared in <root>.Java2
public abstract fun foo (s: kotlin.String): kotlin.Unit declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.F
VALUE_PARAMETER name:s index:0 type:kotlin.String
BLOCK_BODY
PROPERTY FAKE_OVERRIDE name:nullableString visibility:public modality:OPEN [fake_override,val]
overridden:
public open nullableString: kotlin.String
FUN FAKE_OVERRIDE name:<get-nullableString> visibility:public modality:OPEN <> ($this:<root>.KotlinInterface) returnType:kotlin.String [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:nullableString visibility:public modality:OPEN [fake_override,val]
overridden:
public open fun <get-nullableString> (): kotlin.String declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
CLASS CLASS name:G modality:FINAL visibility:public superTypes:[<root>.Java1; <root>.KotlinInterface2]
$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>.Java1'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:G modality:FINAL visibility:public superTypes:[<root>.Java1; <root>.KotlinInterface2]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.KotlinInterface2) returnType:kotlin.String [fake_override]
annotations:
NotNull(value = <null>)
overridden:
public open fun bar (): @[FlexibleNullability] kotlin.String? declared in <root>.Java1
public abstract fun bar (): kotlin.String declared in <root>.KotlinInterface2
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface2
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
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.KotlinInterface2
$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, s:@[FlexibleNullability] kotlin.String?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (s: @[FlexibleNullability] kotlin.String?): kotlin.Unit declared in <root>.Java1
public abstract fun foo (s: kotlin.String): kotlin.Unit declared in <root>.KotlinInterface2
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:s index:0 type:@[FlexibleNullability] kotlin.String?
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
public open fun hashCode (): kotlin.Int declared in <root>.KotlinInterface2
$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
public open fun toString (): kotlin.String declared in <root>.KotlinInterface2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
PROPERTY FAKE_OVERRIDE name:nullableString visibility:public modality:FINAL [fake_override,var]
overridden:
public final nullableString: @[FlexibleNullability] kotlin.String?
PROPERTY FAKE_OVERRIDE name:nullableString visibility:public modality:OPEN [fake_override,val]
overridden:
public open nullableString: kotlin.String
FUN FAKE_OVERRIDE name:<get-nullableString> visibility:public modality:OPEN <> ($this:<root>.KotlinInterface2) returnType:kotlin.String [fake_override]
annotations:
NotNull(value = <null>)
correspondingProperty: PROPERTY FAKE_OVERRIDE name:nullableString visibility:public modality:OPEN [fake_override,val]
overridden:
public open fun <get-nullableString> (): kotlin.String declared in <root>.KotlinInterface2
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface2
CLASS CLASS name:H modality:FINAL visibility:public superTypes:[<root>.Java1; <root>.Java2; <root>.Java3]
$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>.Java1'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:H modality:FINAL visibility:public superTypes:[<root>.Java1; <root>.Java2; <root>.Java3]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.Java2) returnType:@[EnhancedNullability] kotlin.String [fake_override]
annotations:
NotNull(value = <null>)
overridden:
public open fun bar (): @[FlexibleNullability] kotlin.String? declared in <root>.Java1
public abstract fun bar (): @[EnhancedNullability] kotlin.String declared in <root>.Java2
public abstract fun bar (): @[EnhancedNullability] kotlin.String? declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<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>.Java1
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java2
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:public modality:OPEN <> ($this:<root>.Java1, s:@[FlexibleNullability] kotlin.String?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (s: @[FlexibleNullability] kotlin.String?): kotlin.Unit declared in <root>.Java1
public abstract fun foo (s: @[EnhancedNullability] kotlin.String): kotlin.Unit declared in <root>.Java2
public abstract fun foo (s: @[EnhancedNullability] kotlin.String?): kotlin.Unit declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:s index:0 type:@[FlexibleNullability] kotlin.String?
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
public open fun hashCode (): kotlin.Int declared in <root>.Java2
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>.Java1
public open fun toString (): kotlin.String declared in <root>.Java2
public open fun toString (): kotlin.String declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
PROPERTY FAKE_OVERRIDE name:nullableString visibility:public modality:FINAL [fake_override,var]
overridden:
public final nullableString: @[FlexibleNullability] kotlin.String?
CLASS INTERFACE name:KotlinInterface modality:ABSTRACT visibility:public superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.KotlinInterface
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:bar visibility:public modality:ABSTRACT <> ($this:<root>.KotlinInterface) returnType:kotlin.String
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
FUN name:foo visibility:public modality:ABSTRACT <> ($this:<root>.KotlinInterface, s:kotlin.String) returnType:kotlin.Unit
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
VALUE_PARAMETER name:s index:0 type:kotlin.String
PROPERTY name:nullableString visibility:public modality:OPEN [val]
FUN name:<get-nullableString> visibility:public modality:OPEN <> ($this:<root>.KotlinInterface) returnType:kotlin.String
correspondingProperty: PROPERTY name:nullableString visibility:public modality:OPEN [val]
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun <get-nullableString> (): kotlin.String declared in <root>.KotlinInterface'
CONST String type=kotlin.String value=""
CLASS INTERFACE name:KotlinInterface2 modality:ABSTRACT visibility:public superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.KotlinInterface2
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:bar visibility:public modality:ABSTRACT <> ($this:<root>.KotlinInterface2) returnType:kotlin.String
annotations:
NotNull(value = <null>)
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface2
FUN name:foo visibility:public modality:ABSTRACT <> ($this:<root>.KotlinInterface2, s:kotlin.String) returnType:kotlin.Unit
annotations:
NotNull(value = <null>)
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface2
VALUE_PARAMETER name:s index:0 type:kotlin.String
annotations:
NotNull(value = <null>)
PROPERTY name:nullableString visibility:public modality:OPEN [val]
FUN name:<get-nullableString> visibility:public modality:OPEN <> ($this:<root>.KotlinInterface2) returnType:kotlin.String
annotations:
NotNull(value = <null>)
correspondingProperty: PROPERTY name:nullableString visibility:public modality:OPEN [val]
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface2
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun <get-nullableString> (): kotlin.String declared in <root>.KotlinInterface2'
CONST String type=kotlin.String value=""
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
VAR name:k type:kotlin.String? [val]
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:nullableString type:@[FlexibleNullability] kotlin.String? visibility:public' type=@[FlexibleNullability] kotlin.String? origin=null
receiver: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
VAR name:k2 type:kotlin.String [val]
CALL 'public open fun bar (): kotlin.String declared in <root>.A' type=kotlin.String origin=null
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
CALL 'public open fun foo (s: kotlin.String): 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
s: CONST String type=kotlin.String value=""
VAR name:k3 type:kotlin.String [val]
TYPE_OP type=kotlin.String origin=IMPLICIT_NOTNULL typeOperand=kotlin.String
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:nullableString type:@[FlexibleNullability] kotlin.String? visibility:public' type=@[FlexibleNullability] kotlin.String? origin=null
receiver: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
VAR name:k4 type:kotlin.String [val]
TYPE_OP type=kotlin.String origin=IMPLICIT_NOTNULL typeOperand=kotlin.String
CALL 'public open fun bar (): @[EnhancedNullability] kotlin.String declared in <root>.B' type=@[EnhancedNullability] kotlin.String origin=null
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
CALL 'public open fun foo (s: @[FlexibleNullability] kotlin.String?): 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
s: CONST String type=kotlin.String value=""
CALL 'public open fun foo (s: @[FlexibleNullability] kotlin.String?): 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
s: CONST Null type=kotlin.Nothing? value=null
VAR name:k5 type:kotlin.String [val]
TYPE_OP type=kotlin.String origin=IMPLICIT_NOTNULL typeOperand=kotlin.String
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:nullableString type:@[FlexibleNullability] kotlin.String? visibility:public' type=@[FlexibleNullability] kotlin.String? origin=null
receiver: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
VAR name:k6 type:kotlin.String? [val]
CALL 'public open fun bar (): @[EnhancedNullability] kotlin.String? declared in <root>.C' type=@[EnhancedNullability] kotlin.String? origin=null
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
CALL 'public open fun foo (s: @[FlexibleNullability] kotlin.String?): 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
s: CONST String type=kotlin.String value=""
CALL 'public open fun foo (s: @[FlexibleNullability] kotlin.String?): 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
s: CONST Null type=kotlin.Nothing? value=null
VAR name:k7 type:kotlin.String [val]
TYPE_OP type=kotlin.String origin=IMPLICIT_NOTNULL typeOperand=kotlin.String
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:nullableString type:@[FlexibleNullability] kotlin.String? visibility:public' type=@[FlexibleNullability] kotlin.String? origin=null
receiver: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
VAR name:k8 type:kotlin.String [val]
CALL 'public open fun bar (): kotlin.String declared in <root>.D' type=kotlin.String origin=null
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
CALL 'public open fun foo (s: kotlin.String?): 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
s: CONST String type=kotlin.String value=""
CALL 'public open fun foo (s: kotlin.String?): 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
s: CONST Null type=kotlin.Nothing? value=null
VAR name:k9 type:kotlin.String [val]
CALL 'public open fun <get-nullableString> (): kotlin.String declared in <root>.E' type=kotlin.String origin=GET_PROPERTY
$this: GET_VAR 'e: <root>.E declared in <root>.test' type=<root>.E origin=null
VAR name:k10 type:kotlin.String [val]
TYPE_OP type=kotlin.String origin=IMPLICIT_NOTNULL typeOperand=kotlin.String
CALL 'public abstract fun bar (): @[EnhancedNullability] kotlin.String declared in <root>.E' type=@[EnhancedNullability] kotlin.String origin=null
$this: GET_VAR 'e: <root>.E declared in <root>.test' type=<root>.E origin=null
CALL 'public abstract fun foo (s: @[EnhancedNullability] kotlin.String): 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
s: CONST String type=kotlin.String value=""
VAR name:k11 type:kotlin.String [val]
CALL 'public open fun <get-nullableString> (): kotlin.String declared in <root>.F' type=kotlin.String origin=GET_PROPERTY
$this: GET_VAR 'f: <root>.F declared in <root>.test' type=<root>.F origin=null
VAR name:k12 type:kotlin.String [val]
CALL 'public open fun bar (): kotlin.String declared in <root>.F' type=kotlin.String origin=null
$this: GET_VAR 'f: <root>.F declared in <root>.test' type=<root>.F origin=null
CALL 'public open fun foo (s: kotlin.String): 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
s: CONST String type=kotlin.String value=""
VAR name:k13 type:kotlin.String [val]
TYPE_OP type=kotlin.String origin=IMPLICIT_NOTNULL typeOperand=kotlin.String
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:nullableString type:@[FlexibleNullability] kotlin.String? visibility:public' type=@[FlexibleNullability] kotlin.String? origin=null
receiver: GET_VAR 'g: <root>.G declared in <root>.test' type=<root>.G origin=null
VAR name:k14 type:kotlin.String [val]
CALL 'public open fun bar (): kotlin.String declared in <root>.G' type=kotlin.String origin=null
$this: GET_VAR 'g: <root>.G declared in <root>.test' type=<root>.G origin=null
CALL 'public open fun foo (s: @[FlexibleNullability] kotlin.String?): 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
s: CONST String type=kotlin.String value=""
CALL 'public open fun foo (s: @[FlexibleNullability] kotlin.String?): 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
s: CONST Null type=kotlin.Nothing? value=null
VAR name:k15 type:kotlin.String [val]
TYPE_OP type=kotlin.String origin=IMPLICIT_NOTNULL typeOperand=kotlin.String
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:nullableString type:@[FlexibleNullability] kotlin.String? visibility:public' type=@[FlexibleNullability] kotlin.String? origin=null
receiver: GET_VAR 'h: <root>.H declared in <root>.test' type=<root>.H origin=null
VAR name:k16 type:kotlin.String [val]
TYPE_OP type=kotlin.String origin=IMPLICIT_NOTNULL typeOperand=kotlin.String
CALL 'public open fun bar (): @[EnhancedNullability] kotlin.String declared in <root>.H' type=@[EnhancedNullability] kotlin.String origin=null
$this: GET_VAR 'h: <root>.H declared in <root>.test' type=<root>.H origin=null
CALL 'public open fun foo (s: @[FlexibleNullability] kotlin.String?): 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
s: CONST String type=kotlin.String value=""
CALL 'public open fun foo (s: @[FlexibleNullability] kotlin.String?): 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
s: CONST Null type=kotlin.Nothing? value=null
@@ -0,0 +1,130 @@
// TARGET_BACKEND: JVM
// SEPARATE_SIGNATURE_DUMP_FOR_K2
// ^ ISSUE: KT-65939
// FILE: Java1.java
public class Java1 {
public String nullableString = "";
public String bar() {
return nullableString;
}
public void foo(String s) {}
}
// FILE: Java2.java
import org.jetbrains.annotations.NotNull;
public interface Java2 {
@NotNull
public String nullableString = "";
@NotNull
public String bar();
public void foo(@NotNull String s);
}
// FILE: Java3.java
import org.jetbrains.annotations.Nullable;
interface Java3 {
@Nullable
String nullableString = "";
@Nullable
String bar();
void foo(@Nullable String s);
}
// FILE: 1.kt
import org.jetbrains.annotations.NotNull
import org.jetbrains.annotations.Nullable
class A : Java1(), Java2 {
override fun bar(): String {
return ""
}
override fun foo(s: String) { }
}
class B : Java1(), Java2
class C : Java1(), Java3
class D : Java1(), Java3 {
@Nullable
override fun bar(): String {
return super.bar()
}
@NotNull
override fun foo(@NotNull s: String?) {
super.foo(s)
}
}
abstract class E: Java2, KotlinInterface
class F : Java2, KotlinInterface {
override fun bar(): String {
return ""
}
override fun foo(s: String) { }
}
class G : Java1(), KotlinInterface2
class H : Java1(), Java2, Java3
interface KotlinInterface {
val nullableString: String
get() = ""
fun bar(): String
fun foo(s: String)
}
interface KotlinInterface2 {
@get:NotNull
val nullableString: String
get() = ""
@NotNull
fun bar(): String
@NotNull
fun foo(@NotNull s: String)
}
fun test(a: A, b: B, c: C, d: D, e: E, f: F, g: G, h: H) {
val k: String? = a.nullableString
val k2: String = a.bar()
a.foo("")
val k3: String = b.nullableString
val k4: String = b.bar()
b.foo("")
b.foo(null)
val k5: String = c.nullableString
val k6: String? = c.bar()
c.foo("")
c.foo(null)
val k7: String = d.nullableString
val k8: String = d.bar()
d.foo("")
d.foo(null)
val k9: String = e.nullableString
val k10: String = e.bar()
e.foo("")
val k11: String = f.nullableString
val k12: String = f.bar()
f.foo("")
val k13: String = g.nullableString
val k14: String = g.bar()
g.foo("")
g.foo(null)
val k15: String = h.nullableString
val k16: String = h.bar()
h.foo("")
h.foo(null)
}
@@ -0,0 +1,154 @@
class A : Java1, Java2 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
override fun bar(): String {
return ""
}
override fun foo(s: String) {
}
}
class B : Java1, Java2 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
}
class C : Java1, Java3 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
}
class D : Java1, Java3 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
@Nullable
override fun bar(): String {
return super<Java1>.bar() /*!! String */
}
@NotNull
override fun foo(@NotNull s: String?) {
super<Java1>.foo(s = s)
}
}
abstract class E : Java2, KotlinInterface {
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
}
class F : Java2, KotlinInterface {
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
override fun bar(): String {
return ""
}
override fun foo(s: String) {
}
}
class G : Java1, KotlinInterface2 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
}
class H : Java1, Java2, Java3 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
}
interface KotlinInterface {
abstract fun bar(): String
abstract fun foo(s: String)
val nullableString: String
get(): String {
return ""
}
}
interface KotlinInterface2 {
@NotNull
abstract fun bar(): String
@NotNull
abstract fun foo(@NotNull s: String)
val nullableString: String
@NotNull
get(): String {
return ""
}
}
fun test(a: A, b: B, c: C, d: D, e: E, f: F, g: G, h: H) {
val k: String? = a(super<A>).#nullableString
val k2: String = a.bar()
a.foo(s = "")
val k3: String = b(super<B>).#nullableString /*!! String */
val k4: String = b.bar() /*!! String */
b.foo(s = "")
b.foo(s = null)
val k5: String = c(super<C>).#nullableString /*!! String */
val k6: String? = c.bar()
c.foo(s = "")
c.foo(s = null)
val k7: String = d(super<D>).#nullableString /*!! String */
val k8: String = d.bar()
d.foo(s = "")
d.foo(s = null)
val k9: String = e.<get-nullableString>()
val k10: String = e.bar() /*!! String */
e.foo(s = "")
val k11: String = f.<get-nullableString>()
val k12: String = f.bar()
f.foo(s = "")
val k13: String = g(super<G>).#nullableString /*!! String */
val k14: String = g.bar()
g.foo(s = "")
g.foo(s = null)
val k15: String = h(super<H>).#nullableString /*!! String */
val k16: String = h.bar() /*!! String */
h.foo(s = "")
h.foo(s = null)
}
@@ -0,0 +1,288 @@
// CHECK:
// Mangled name: A
// Public signature: /A|null[0]
class A : Java1, Java2 {
// CHECK:
// Mangled name: A#<init>(){}
// Public signature: /A.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: A#bar(){}kotlin.String
// Public signature: /A.bar|1214702899383694193[0]
// Public signature debug description: bar(){}kotlin.String
override fun bar(): String
// CHECK:
// Mangled name: A#foo(kotlin.String){}
// Public signature: /A.foo|1351044947738582195[0]
// Public signature debug description: foo(kotlin.String){}
override fun foo(s: String): Unit
}
// CHECK:
// Mangled name: B
// Public signature: /B|null[0]
class B : Java1, Java2 {
// CHECK:
// Mangled name: B#<init>(){}
// Public signature: /B.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: B#bar(){}kotlin.String{EnhancedNullability}
// Public signature: /B.bar|-4383985778696477509[0]
// Public signature debug description: bar(){}kotlin.String{EnhancedNullability}
/* fake */ override fun bar(): @EnhancedNullability String
// CHECK:
// Mangled name: B#foo(kotlin.String?){}
// Public signature: /B.foo|-7402282804178432687[0]
// Public signature debug description: foo(kotlin.String?){}
/* fake */ override fun foo(s: String?): Unit
}
// CHECK:
// Mangled name: C
// Public signature: /C|null[0]
class C : Java1, Java3 {
// CHECK:
// Mangled name: C#<init>(){}
// Public signature: /C.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: C#bar(){}kotlin.String?{EnhancedNullability}
// Public signature: /C.bar|7290041286951472444[0]
// Public signature debug description: bar(){}kotlin.String?{EnhancedNullability}
/* fake */ override fun bar(): @EnhancedNullability String?
// CHECK:
// Mangled name: C#foo(kotlin.String?){}
// Public signature: /C.foo|-7402282804178432687[0]
// Public signature debug description: foo(kotlin.String?){}
/* fake */ override fun foo(s: String?): Unit
}
// CHECK:
// Mangled name: D
// Public signature: /D|null[0]
class D : Java1, Java3 {
// CHECK:
// Mangled name: D#<init>(){}
// Public signature: /D.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: D#bar(){}kotlin.String
// Public signature: /D.bar|1214702899383694193[0]
// Public signature debug description: bar(){}kotlin.String
override fun bar(): String
// CHECK:
// Mangled name: D#foo(kotlin.String?){}
// Public signature: /D.foo|-7402282804178432687[0]
// Public signature debug description: foo(kotlin.String?){}
override fun foo(s: String?): Unit
}
// CHECK:
// Mangled name: E
// Public signature: /E|null[0]
abstract class E : Java2, KotlinInterface {
// CHECK:
// Mangled name: E#<init>(){}
// Public signature: /E.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: E#bar(){}kotlin.String{EnhancedNullability}
// Public signature: /E.bar|-4383985778696477509[0]
// Public signature debug description: bar(){}kotlin.String{EnhancedNullability}
abstract /* fake */ override fun bar(): @EnhancedNullability String
// CHECK:
// Mangled name: E#foo(kotlin.String{EnhancedNullability}){}
// Public signature: /E.foo|-6237292312337226907[0]
// Public signature debug description: foo(kotlin.String{EnhancedNullability}){}
abstract /* fake */ override fun foo(s: @EnhancedNullability String): Unit
// CHECK:
// Mangled name: E{}nullableString
// Public signature: /E.nullableString|-5031128639215906993[0]
// Public signature debug description: {}nullableString
/* fake */ override val nullableString: String
// CHECK JVM_IR:
// Mangled name: E#<get-nullableString>(){}kotlin.String
// Public signature: /E.nullableString.<get-nullableString>|8912918971227852816[0]
// Public signature debug description: <get-nullableString>(){}kotlin.String
/* fake */ override get(): String
}
// CHECK:
// Mangled name: F
// Public signature: /F|null[0]
class F : Java2, KotlinInterface {
// CHECK:
// Mangled name: F#<init>(){}
// Public signature: /F.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: F#bar(){}kotlin.String
// Public signature: /F.bar|1214702899383694193[0]
// Public signature debug description: bar(){}kotlin.String
override fun bar(): String
// CHECK:
// Mangled name: F#foo(kotlin.String){}
// Public signature: /F.foo|1351044947738582195[0]
// Public signature debug description: foo(kotlin.String){}
override fun foo(s: String): Unit
// CHECK:
// Mangled name: F{}nullableString
// Public signature: /F.nullableString|-5031128639215906993[0]
// Public signature debug description: {}nullableString
/* fake */ override val nullableString: String
// CHECK JVM_IR:
// Mangled name: F#<get-nullableString>(){}kotlin.String
// Public signature: /F.nullableString.<get-nullableString>|8912918971227852816[0]
// Public signature debug description: <get-nullableString>(){}kotlin.String
/* fake */ override get(): String
}
// CHECK:
// Mangled name: G
// Public signature: /G|null[0]
class G : Java1, KotlinInterface2 {
// CHECK:
// Mangled name: G#<init>(){}
// Public signature: /G.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: G#bar(){}kotlin.String
// Public signature: /G.bar|1214702899383694193[0]
// Public signature debug description: bar(){}kotlin.String
/* fake */ override fun bar(): String
// CHECK:
// Mangled name: G#foo(kotlin.String?){}
// Public signature: /G.foo|-7402282804178432687[0]
// Public signature debug description: foo(kotlin.String?){}
/* fake */ override fun foo(s: String?): Unit
// CHECK:
// Mangled name: G{}nullableString
// Public signature: /G.nullableString|-5031128639215906993[0]
// Public signature debug description: {}nullableString
/* fake */ override val nullableString: String
// CHECK JVM_IR:
// Mangled name: G#<get-nullableString>(){}kotlin.String
// Public signature: /G.nullableString.<get-nullableString>|8912918971227852816[0]
// Public signature debug description: <get-nullableString>(){}kotlin.String
/* fake */ override get(): String
}
// CHECK:
// Mangled name: H
// Public signature: /H|null[0]
class H : Java1, Java2, Java3 {
// CHECK:
// Mangled name: H#<init>(){}
// Public signature: /H.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: H#bar(){}kotlin.String{EnhancedNullability}
// Public signature: /H.bar|-4383985778696477509[0]
// Public signature debug description: bar(){}kotlin.String{EnhancedNullability}
/* fake */ override fun bar(): @EnhancedNullability String
// CHECK:
// Mangled name: H#foo(kotlin.String?){}
// Public signature: /H.foo|-7402282804178432687[0]
// Public signature debug description: foo(kotlin.String?){}
/* fake */ override fun foo(s: String?): Unit
}
// CHECK:
// Mangled name: KotlinInterface
// Public signature: /KotlinInterface|null[0]
interface KotlinInterface {
// CHECK JVM_IR:
// Mangled name: KotlinInterface#bar(){}kotlin.String
// Public signature: /KotlinInterface.bar|1214702899383694193[0]
// Public signature debug description: bar(){}kotlin.String
abstract fun bar(): String
// CHECK:
// Mangled name: KotlinInterface#foo(kotlin.String){}
// Public signature: /KotlinInterface.foo|1351044947738582195[0]
// Public signature debug description: foo(kotlin.String){}
abstract fun foo(s: String): Unit
// CHECK:
// Mangled name: KotlinInterface{}nullableString
// Public signature: /KotlinInterface.nullableString|-5031128639215906993[0]
// Public signature debug description: {}nullableString
val nullableString: String
// CHECK JVM_IR:
// Mangled name: KotlinInterface#<get-nullableString>(){}kotlin.String
// Public signature: /KotlinInterface.nullableString.<get-nullableString>|8912918971227852816[0]
// Public signature debug description: <get-nullableString>(){}kotlin.String
get(): String
}
// CHECK:
// Mangled name: KotlinInterface2
// Public signature: /KotlinInterface2|null[0]
interface KotlinInterface2 {
// CHECK JVM_IR:
// Mangled name: KotlinInterface2#bar(){}kotlin.String
// Public signature: /KotlinInterface2.bar|1214702899383694193[0]
// Public signature debug description: bar(){}kotlin.String
abstract fun bar(): String
// CHECK:
// Mangled name: KotlinInterface2#foo(kotlin.String){}
// Public signature: /KotlinInterface2.foo|1351044947738582195[0]
// Public signature debug description: foo(kotlin.String){}
abstract fun foo(s: String): Unit
// CHECK:
// Mangled name: KotlinInterface2{}nullableString
// Public signature: /KotlinInterface2.nullableString|-5031128639215906993[0]
// Public signature debug description: {}nullableString
val nullableString: String
// CHECK JVM_IR:
// Mangled name: KotlinInterface2#<get-nullableString>(){}kotlin.String
// Public signature: /KotlinInterface2.nullableString.<get-nullableString>|8912918971227852816[0]
// Public signature debug description: <get-nullableString>(){}kotlin.String
get(): String
}
// 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,681 @@
FILE fqName:<root> fileName:/1.kt
CLASS ANNOTATION_CLASS name:MyAnnotation modality:OPEN visibility:public superTypes:[kotlin.Annotation]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.MyAnnotation
CONSTRUCTOR visibility:public <> () returnType:<root>.MyAnnotation [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS ANNOTATION_CLASS name:MyAnnotation modality:OPEN visibility:public superTypes:[kotlin.Annotation]'
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.Annotation
$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.Annotation
$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.Annotation
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:A modality:OPEN visibility:public superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.A
PROPERTY name:a visibility:public modality:OPEN [val]
annotations:
MyAnnotation
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:OPEN <> ($this:<root>.A) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a visibility:public modality:OPEN [val]
$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'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.A declared in <root>.A.<get-a>' type=<root>.A origin=null
CONSTRUCTOR visibility:public <> (i:kotlin.Int) returnType:<root>.A
annotations:
MyAnnotation
VALUE_PARAMETER name:i index:0 type:kotlin.Int
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:A 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:public modality:OPEN <> ($this:<root>.A, a:kotlin.Int) returnType:kotlin.Unit
annotations:
MyAnnotation
$this: VALUE_PARAMETER name:<this> type:<root>.A
VALUE_PARAMETER name:a index:0 type:kotlin.Int
annotations:
MyAnnotation
BLOCK_BODY
PROPERTY name:b visibility:public modality:OPEN [var]
FUN name:<get-b> visibility:public modality:OPEN <> ($this:<root>.A) returnType:kotlin.Int
annotations:
MyAnnotation
correspondingProperty: PROPERTY name:b visibility:public modality:OPEN [var]
$this: VALUE_PARAMETER name:<this> type:<root>.A
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun <get-b> (): kotlin.Int declared in <root>.A'
CONST Int type=kotlin.Int value=10
FUN name:<set-b> visibility:public modality:OPEN <> ($this:<root>.A, value:kotlin.Int) returnType:kotlin.Unit
annotations:
MyAnnotation
correspondingProperty: PROPERTY name:b visibility:public modality:OPEN [var]
$this: VALUE_PARAMETER name:<this> type:<root>.A
VALUE_PARAMETER name:value index:0 type:kotlin.Int
BLOCK_BODY
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> (i: kotlin.Int) declared in <root>.Java1'
i: CONST Int type=kotlin.Int value=1
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:foo visibility:public modality:OPEN <> ($this:<root>.A, a:kotlin.Int) returnType:kotlin.Unit [fake_override]
annotations:
MyAnnotation
overridden:
public open fun foo (a: kotlin.Int): kotlin.Unit declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.A
VALUE_PARAMETER name:a index:0 type:kotlin.Int
annotations:
MyAnnotation
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:OPEN [fake_override,val]
annotations:
MyAnnotation
overridden:
public open a: kotlin.Int
FUN FAKE_OVERRIDE name:<get-a> visibility:public modality:OPEN <> ($this:<root>.Java1) returnType:kotlin.Int [fake_override]
annotations:
MyAnnotation
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a visibility:public modality:OPEN [fake_override,val]
overridden:
public open fun <get-a> (): kotlin.Int declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
PROPERTY FAKE_OVERRIDE name:b visibility:public modality:OPEN [fake_override,var]
overridden:
public open b: kotlin.Int
FUN FAKE_OVERRIDE name:<get-b> visibility:public modality:OPEN <> ($this:<root>.Java1) returnType:kotlin.Int [fake_override]
annotations:
MyAnnotation
correspondingProperty: PROPERTY FAKE_OVERRIDE name:b visibility:public modality:OPEN [fake_override,var]
overridden:
public open fun <get-b> (): kotlin.Int declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
FUN FAKE_OVERRIDE name:<set-b> visibility:public modality:OPEN <> ($this:<root>.Java1, value:kotlin.Int) returnType:kotlin.Unit [fake_override]
annotations:
MyAnnotation
correspondingProperty: PROPERTY FAKE_OVERRIDE name:b visibility:public modality:OPEN [fake_override,var]
overridden:
public open fun <set-b> (value: kotlin.Int): kotlin.Unit declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:value index:0 type:kotlin.Int
CLASS CLASS name:C modality:FINAL visibility:public superTypes:[<root>.Java1]
$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> (i: kotlin.Int) declared in <root>.Java1'
i: CONST Int type=kotlin.Int value=1
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:C 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>.C, a:kotlin.Int) returnType:kotlin.Unit
overridden:
public open fun foo (a: kotlin.Int): kotlin.Unit declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.C
VALUE_PARAMETER name:a index:0 type:kotlin.Int
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>.C) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a visibility:public modality:OPEN [val]
overridden:
public open fun <get-a> (): kotlin.Int declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.C
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun <get-a> (): kotlin.Int declared in <root>.C'
CONST Int type=kotlin.Int value=10
PROPERTY name:b visibility:public modality:OPEN [var]
overridden:
public open b: kotlin.Int
FUN name:<get-b> visibility:public modality:OPEN <> ($this:<root>.C) returnType:kotlin.Int
correspondingProperty: PROPERTY name:b visibility:public modality:OPEN [var]
overridden:
public open fun <get-b> (): kotlin.Int declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.C
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun <get-b> (): kotlin.Int declared in <root>.C'
CONST Int type=kotlin.Int value=11
FUN name:<set-b> visibility:public modality:OPEN <> ($this:<root>.C, value:kotlin.Int) returnType:kotlin.Unit
correspondingProperty: PROPERTY name:b visibility:public modality:OPEN [var]
overridden:
public open fun <set-b> (value: kotlin.Int): kotlin.Unit declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.C
VALUE_PARAMETER name:value index:0 type:kotlin.Int
BLOCK_BODY
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> (i: kotlin.Int) declared in <root>.Java2'
i: CONST Int type=kotlin.Int value=2
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:foo visibility:public modality:OPEN <> ($this:<root>.Java2, a:kotlin.Int) returnType:kotlin.Unit [fake_override]
annotations:
Override
overridden:
public open fun foo (a: kotlin.Int): kotlin.Unit declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.Java2
VALUE_PARAMETER name:a index:0 type:kotlin.Int
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:OPEN [fake_override,val]
overridden:
public open a: kotlin.Int
FUN FAKE_OVERRIDE name:<get-a> visibility:public modality:OPEN <> ($this:<root>.Java2) returnType:kotlin.Int [fake_override]
annotations:
Override
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a visibility:public modality:OPEN [fake_override,val]
overridden:
public open fun <get-a> (): kotlin.Int declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.Java2
PROPERTY FAKE_OVERRIDE name:b visibility:public modality:OPEN [fake_override,var]
overridden:
public open b: kotlin.Int
FUN FAKE_OVERRIDE name:<get-b> visibility:public modality:OPEN <> ($this:<root>.Java2) returnType:kotlin.Int [fake_override]
annotations:
MyAnnotation
correspondingProperty: PROPERTY FAKE_OVERRIDE name:b visibility:public modality:OPEN [fake_override,var]
overridden:
public open fun <get-b> (): kotlin.Int declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.Java2
FUN FAKE_OVERRIDE name:<set-b> visibility:public modality:OPEN <> ($this:<root>.Java2, value:kotlin.Int) returnType:kotlin.Unit [fake_override]
annotations:
MyAnnotation
correspondingProperty: PROPERTY FAKE_OVERRIDE name:b visibility:public modality:OPEN [fake_override,var]
overridden:
public open fun <set-b> (value: kotlin.Int): kotlin.Unit declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.Java2
VALUE_PARAMETER name:value index:0 type:kotlin.Int
CLASS CLASS name:E modality:FINAL visibility:public superTypes:[<root>.Java2]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.E
PROPERTY name:b visibility:public modality:OPEN [var]
overridden:
public open b: kotlin.Int
FIELD PROPERTY_BACKING_FIELD name:b type:kotlin.Int visibility:private
EXPRESSION_BODY
CONST Int type=kotlin.Int value=0
FUN name:<get-b> visibility:public modality:OPEN <> ($this:<root>.E) returnType:kotlin.Int
correspondingProperty: PROPERTY name:b visibility:public modality:OPEN [var]
overridden:
public open fun <get-b> (): kotlin.Int declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.E
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun <get-b> (): kotlin.Int declared in <root>.E'
CONST Int type=kotlin.Int value=11
FUN DEFAULT_PROPERTY_ACCESSOR name:<set-b> visibility:public modality:OPEN <> ($this:<root>.E, <set-?>:kotlin.Int) returnType:kotlin.Unit
correspondingProperty: PROPERTY name:b visibility:public modality:OPEN [var]
overridden:
public open fun <set-b> (value: kotlin.Int): kotlin.Unit declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.E
VALUE_PARAMETER name:<set-?> index:0 type:kotlin.Int
BLOCK_BODY
SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:b type:kotlin.Int visibility:private' type=kotlin.Unit origin=null
receiver: GET_VAR '<this>: <root>.E declared in <root>.E.<set-b>' type=<root>.E origin=null
value: GET_VAR '<set-?>: kotlin.Int declared in <root>.E.<set-b>' type=kotlin.Int origin=null
CONSTRUCTOR visibility:public <> () returnType:<root>.E [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> (i: kotlin.Int) declared in <root>.Java2'
i: CONST Int type=kotlin.Int value=2
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:E 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>.E, a:kotlin.Int) returnType:kotlin.Unit
overridden:
public open fun foo (a: kotlin.Int): kotlin.Unit declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.E
VALUE_PARAMETER name:a index:0 type:kotlin.Int
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>.Java2
$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=10
CLASS CLASS name:F modality:ABSTRACT visibility:public superTypes:[<root>.Java1; <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> (i: kotlin.Int) declared in <root>.Java1'
i: CONST Int type=kotlin.Int value=1
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:F modality:ABSTRACT visibility:public superTypes:[<root>.Java1; <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>.Java1
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:public modality:OPEN <> ($this:<root>.A, a:kotlin.Int) returnType:kotlin.Unit [fake_override]
annotations:
MyAnnotation
overridden:
public open fun foo (a: kotlin.Int): kotlin.Unit declared in <root>.Java1
public abstract fun foo (a: kotlin.Int): kotlin.Unit declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.A
VALUE_PARAMETER name:a index:0 type:kotlin.Int
annotations:
MyAnnotation
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
public open fun hashCode (): kotlin.Int declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:setA visibility:public modality:ABSTRACT <> ($this:<root>.Java3, a:kotlin.Int) returnType:kotlin.Unit [fake_override]
overridden:
public abstract fun setA (a: kotlin.Int): kotlin.Unit declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.Java3
VALUE_PARAMETER name:a index:0 type:kotlin.Int
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
public open fun toString (): kotlin.String declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
PROPERTY FAKE_OVERRIDE name:a visibility:public modality:OPEN [fake_override,val]
annotations:
MyAnnotation
overridden:
public open a: kotlin.Int
FUN FAKE_OVERRIDE name:<get-a> visibility:public modality:OPEN <> ($this:<root>.Java1) returnType:kotlin.Int [fake_override]
annotations:
MyAnnotation
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a visibility:public modality:OPEN [fake_override,val]
overridden:
public open fun <get-a> (): kotlin.Int declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
PROPERTY FAKE_OVERRIDE name:b visibility:public modality:OPEN [fake_override,var]
overridden:
public open b: kotlin.Int
FUN FAKE_OVERRIDE name:<get-b> visibility:public modality:OPEN <> ($this:<root>.Java1) returnType:kotlin.Int [fake_override]
annotations:
MyAnnotation
correspondingProperty: PROPERTY FAKE_OVERRIDE name:b visibility:public modality:OPEN [fake_override,var]
overridden:
public open fun <get-b> (): kotlin.Int declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
FUN FAKE_OVERRIDE name:<set-b> visibility:public modality:OPEN <> ($this:<root>.Java1, value:kotlin.Int) returnType:kotlin.Unit [fake_override]
annotations:
MyAnnotation
correspondingProperty: PROPERTY FAKE_OVERRIDE name:b visibility:public modality:OPEN [fake_override,var]
overridden:
public open fun <set-b> (value: kotlin.Int): kotlin.Unit declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:value index:0 type:kotlin.Int
CLASS CLASS name:G modality:FINAL visibility:public superTypes:[<root>.Java1; <root>.Java3]
$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> (i: kotlin.Int) declared in <root>.Java1'
i: CONST Int type=kotlin.Int value=1
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:G modality:FINAL visibility:public superTypes:[<root>.Java1; <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>.Java1
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>.Java1
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>.Java1
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>.G, a:kotlin.Int) returnType:kotlin.Unit
overridden:
public open fun foo (a: kotlin.Int): kotlin.Unit declared in <root>.Java1
public abstract fun foo (a: kotlin.Int): kotlin.Unit declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.G
VALUE_PARAMETER name:a index:0 type:kotlin.Int
BLOCK_BODY
FUN name:setA visibility:public modality:OPEN <> ($this:<root>.G, a:kotlin.Int) returnType:kotlin.Unit
overridden:
public abstract fun setA (a: kotlin.Int): kotlin.Unit declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.G
VALUE_PARAMETER name:a index:0 type:kotlin.Int
BLOCK_BODY
PROPERTY FAKE_OVERRIDE name:a visibility:public modality:OPEN [fake_override,val]
annotations:
MyAnnotation
overridden:
public open a: kotlin.Int
FUN FAKE_OVERRIDE name:<get-a> visibility:public modality:OPEN <> ($this:<root>.Java1) returnType:kotlin.Int [fake_override]
annotations:
MyAnnotation
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a visibility:public modality:OPEN [fake_override,val]
overridden:
public open fun <get-a> (): kotlin.Int declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
PROPERTY FAKE_OVERRIDE name:b visibility:public modality:OPEN [fake_override,var]
overridden:
public open b: kotlin.Int
FUN FAKE_OVERRIDE name:<get-b> visibility:public modality:OPEN <> ($this:<root>.Java1) returnType:kotlin.Int [fake_override]
annotations:
MyAnnotation
correspondingProperty: PROPERTY FAKE_OVERRIDE name:b visibility:public modality:OPEN [fake_override,var]
overridden:
public open fun <get-b> (): kotlin.Int declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
FUN FAKE_OVERRIDE name:<set-b> visibility:public modality:OPEN <> ($this:<root>.Java1, value:kotlin.Int) returnType:kotlin.Unit [fake_override]
annotations:
MyAnnotation
correspondingProperty: PROPERTY FAKE_OVERRIDE name:b visibility:public modality:OPEN [fake_override,var]
overridden:
public open fun <set-b> (value: kotlin.Int): kotlin.Unit declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:value index:0 type:kotlin.Int
CLASS CLASS name:H modality:FINAL visibility:public superTypes:[<root>.Java1; <root>.KotlinInterface]
$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> (i: kotlin.Int) declared in <root>.Java1'
i: CONST Int type=kotlin.Int value=1
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:H modality:FINAL visibility:public superTypes:[<root>.Java1; <root>.KotlinInterface]'
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
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.KotlinInterface
$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>.A, a:kotlin.Int) returnType:kotlin.Unit [fake_override]
annotations:
MyAnnotation
overridden:
public open fun foo (a: kotlin.Int): kotlin.Unit declared in <root>.Java1
public abstract fun foo (a: kotlin.Int): kotlin.Unit declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.A
VALUE_PARAMETER name:a index:0 type:kotlin.Int
annotations:
MyAnnotation
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
public open fun hashCode (): kotlin.Int declared in <root>.KotlinInterface
$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
public open fun toString (): kotlin.String declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
PROPERTY FAKE_OVERRIDE name:a visibility:public modality:OPEN [fake_override,val]
annotations:
MyAnnotation
overridden:
public open a: kotlin.Int
public abstract a: kotlin.Int
FUN FAKE_OVERRIDE name:<get-a> visibility:public modality:OPEN <> ($this:<root>.Java1) returnType:kotlin.Int [fake_override]
annotations:
MyAnnotation
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a visibility:public modality:OPEN [fake_override,val]
overridden:
public open fun <get-a> (): kotlin.Int declared in <root>.Java1
public abstract fun <get-a> (): kotlin.Int declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
PROPERTY FAKE_OVERRIDE name:b visibility:public modality:OPEN [fake_override,var]
overridden:
public open b: kotlin.Int
public abstract b: kotlin.Int
FUN FAKE_OVERRIDE name:<get-b> visibility:public modality:OPEN <> ($this:<root>.Java1) returnType:kotlin.Int [fake_override]
annotations:
MyAnnotation
correspondingProperty: PROPERTY FAKE_OVERRIDE name:b visibility:public modality:OPEN [fake_override,var]
overridden:
public open fun <get-b> (): kotlin.Int declared in <root>.Java1
public abstract fun <get-b> (): kotlin.Int declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
FUN FAKE_OVERRIDE name:<set-b> visibility:public modality:OPEN <> ($this:<root>.Java1, value:kotlin.Int) returnType:kotlin.Unit [fake_override]
annotations:
MyAnnotation
correspondingProperty: PROPERTY FAKE_OVERRIDE name:b visibility:public modality:OPEN [fake_override,var]
overridden:
public open fun <set-b> (value: kotlin.Int): kotlin.Unit declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:value index:0 type:kotlin.Int
CLASS CLASS name:I modality:FINAL visibility:public superTypes:[<root>.Java1; <root>.KotlinInterface]
$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> (i: kotlin.Int) declared in <root>.Java1'
i: CONST Int type=kotlin.Int value=1
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:I modality:FINAL visibility:public superTypes:[<root>.Java1; <root>.KotlinInterface]'
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
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.KotlinInterface
$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
public open fun hashCode (): kotlin.Int declared in <root>.KotlinInterface
$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
public open fun toString (): kotlin.String declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.I, a:kotlin.Int) returnType:kotlin.Unit
overridden:
public open fun foo (a: kotlin.Int): kotlin.Unit declared in <root>.Java1
public abstract fun foo (a: kotlin.Int): kotlin.Unit declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.I
VALUE_PARAMETER name:a index:0 type:kotlin.Int
BLOCK_BODY
PROPERTY name:a visibility:public modality:OPEN [val]
overridden:
public open a: kotlin.Int
public abstract a: kotlin.Int
FUN name:<get-a> visibility:public modality:OPEN <> ($this:<root>.I) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a visibility:public modality:OPEN [val]
overridden:
public open fun <get-a> (): kotlin.Int declared in <root>.Java1
public abstract fun <get-a> (): kotlin.Int declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.I
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun <get-a> (): kotlin.Int declared in <root>.I'
CONST Int type=kotlin.Int value=2
PROPERTY name:b visibility:public modality:OPEN [var]
overridden:
public open b: kotlin.Int
public abstract b: kotlin.Int
FUN name:<get-b> visibility:public modality:OPEN <> ($this:<root>.I) returnType:kotlin.Int
correspondingProperty: PROPERTY name:b visibility:public modality:OPEN [var]
overridden:
public open fun <get-b> (): kotlin.Int declared in <root>.Java1
public abstract fun <get-b> (): kotlin.Int declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.I
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun <get-b> (): kotlin.Int declared in <root>.I'
CONST Int type=kotlin.Int value=2
FUN name:<set-b> visibility:public modality:OPEN <> ($this:<root>.I, value:kotlin.Int) returnType:kotlin.Unit
correspondingProperty: PROPERTY name:b visibility:public modality:OPEN [var]
overridden:
public open fun <set-b> (value: kotlin.Int): kotlin.Unit declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.I
VALUE_PARAMETER name:value index:0 type:kotlin.Int
BLOCK_BODY
CLASS INTERFACE name:KotlinInterface modality:ABSTRACT visibility:public superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.KotlinInterface
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:ABSTRACT <> ($this:<root>.KotlinInterface, a:kotlin.Int) returnType:kotlin.Unit
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
VALUE_PARAMETER name:a index:0 type:kotlin.Int
PROPERTY name:a visibility:public modality:ABSTRACT [val]
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-a> visibility:public modality:ABSTRACT <> ($this:<root>.KotlinInterface) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a visibility:public modality:ABSTRACT [val]
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
PROPERTY name:b visibility:public modality:ABSTRACT [val]
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-b> visibility:public modality:ABSTRACT <> ($this:<root>.KotlinInterface) returnType:kotlin.Int
correspondingProperty: PROPERTY name:b visibility:public modality:ABSTRACT [val]
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
FUN name:test visibility:public modality:FINAL <> (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:b index:0 type:<root>.B
VALUE_PARAMETER name:c index:1 type:<root>.C
VALUE_PARAMETER name:d index:2 type:<root>.D
VALUE_PARAMETER name:e index:3 type:<root>.E
VALUE_PARAMETER name:f index:4 type:<root>.F
VALUE_PARAMETER name:g index:5 type:<root>.G
VALUE_PARAMETER name:h index:6 type:<root>.H
VALUE_PARAMETER name:i index:7 type:<root>.I
BLOCK_BODY
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public 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
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun <get-b> (): 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 (a: kotlin.Int): 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
a: CONST Int type=kotlin.Int value=1
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open 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
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun <get-b> (): 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 (a: kotlin.Int): 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
a: CONST Int type=kotlin.Int value=1
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public 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
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun <get-b> (): 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 (a: kotlin.Int): 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
a: CONST Int type=kotlin.Int value=1
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
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun <get-b> (): 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 (a: kotlin.Int): 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
a: CONST Int type=kotlin.Int value=1
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
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun <get-b> (): 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 (a: kotlin.Int): 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
a: CONST Int type=kotlin.Int value=1
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
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun <get-b> (): 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 (a: kotlin.Int): 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
a: CONST Int type=kotlin.Int value=1
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public 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
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun <get-b> (): 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 (a: kotlin.Int): 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
a: CONST Int type=kotlin.Int value=1
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open 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
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun <get-b> (): 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 (a: kotlin.Int): 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
a: CONST Int type=kotlin.Int value=1
@@ -0,0 +1,197 @@
open annotation class MyAnnotation : Annotation {
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
}
open class A {
@MyAnnotation
open val a: Int
field = 1
open get
@MyAnnotation
constructor(i: Int) {
super/*Any*/()
/* <init>() */
}
@MyAnnotation
open fun foo(@MyAnnotation a: Int) {
}
open var b: Int
@MyAnnotation
open get(): Int {
return 10
}
@MyAnnotation
open set(value: Int) {
}
}
class B : Java1 {
constructor() /* primary */ {
super/*Java1*/(i = 1)
/* <init>() */
}
}
class C : Java1 {
constructor() /* primary */ {
super/*Java1*/(i = 1)
/* <init>() */
}
override fun foo(a: Int) {
}
override val a: Int
override get(): Int {
return 10
}
override var b: Int
override get(): Int {
return 11
}
override set(value: Int) {
}
}
class D : Java2 {
constructor() /* primary */ {
super/*Java2*/(i = 2)
/* <init>() */
}
}
class E : Java2 {
override var b: Int
field = 0
override get(): Int {
return 11
}
override set
constructor() /* primary */ {
super/*Java2*/(i = 2)
/* <init>() */
}
override fun foo(a: Int) {
}
override val a: Int
override get(): Int {
return 10
}
}
abstract class F : Java1, Java3 {
constructor() /* primary */ {
super/*Java1*/(i = 1)
/* <init>() */
}
}
class G : Java1, Java3 {
constructor() /* primary */ {
super/*Java1*/(i = 1)
/* <init>() */
}
override fun foo(a: Int) {
}
override fun setA(a: Int) {
}
}
class H : Java1, KotlinInterface {
constructor() /* primary */ {
super/*Java1*/(i = 1)
/* <init>() */
}
}
class I : Java1, KotlinInterface {
constructor() /* primary */ {
super/*Java1*/(i = 1)
/* <init>() */
}
override fun foo(a: Int) {
}
override val a: Int
override get(): Int {
return 2
}
override var b: Int
override get(): Int {
return 2
}
override set(value: Int) {
}
}
interface KotlinInterface {
abstract fun foo(a: Int)
abstract val a: Int
abstract get
abstract val b: Int
abstract get
}
fun test(b: B, c: C, d: D, e: E, f: F, g: G, h: H, i: I) {
b.<get-a>() /*~> Unit */
b.<get-b>() /*~> Unit */
b.foo(a = 1)
c.<get-a>() /*~> Unit */
c.<get-b>() /*~> Unit */
c.foo(a = 1)
d.<get-a>() /*~> Unit */
d.<get-b>() /*~> Unit */
d.foo(a = 1)
e.<get-a>() /*~> Unit */
e.<get-b>() /*~> Unit */
e.foo(a = 1)
f.<get-a>() /*~> Unit */
f.<get-b>() /*~> Unit */
f.foo(a = 1)
g.<get-a>() /*~> Unit */
g.<get-b>() /*~> Unit */
g.foo(a = 1)
h.<get-a>() /*~> Unit */
h.<get-b>() /*~> Unit */
h.foo(a = 1)
i.<get-a>() /*~> Unit */
i.<get-b>() /*~> Unit */
i.foo(a = 1)
}
@@ -0,0 +1,496 @@
// CHECK:
// Mangled name: MyAnnotation
// Public signature: /MyAnnotation|null[0]
open annotation class MyAnnotation : Annotation {
// CHECK:
// Mangled name: MyAnnotation#<init>(){}
// Public signature: /MyAnnotation.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
}
// CHECK:
// Mangled name: A
// Public signature: /A|null[0]
open class A {
// CHECK:
// Mangled name: A{}a
// Public signature: /A.a|-1200697420457237799[0]
// Public signature debug description: {}a
@MyAnnotation
open 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
open get
// CHECK:
// Mangled name: A#<init>(kotlin.Int){}
// Public signature: /A.<init>|-5182794243525578284[0]
// Public signature debug description: <init>(kotlin.Int){}
@MyAnnotation
constructor(i: Int)
// CHECK:
// Mangled name: A#foo(kotlin.Int){}
// Public signature: /A.foo|-104159190164110731[0]
// Public signature debug description: foo(kotlin.Int){}
@MyAnnotation
open fun foo(@MyAnnotation a: Int): Unit
// CHECK:
// Mangled name: A{}b
// Public signature: /A.b|772347207915745207[0]
// Public signature debug description: {}b
open var b: Int
// CHECK JVM_IR:
// Mangled name: A#<get-b>(){}kotlin.Int
// Public signature: /A.b.<get-b>|-2902143276921469679[0]
// Public signature debug description: <get-b>(){}kotlin.Int
@MyAnnotation
open get(): Int
// CHECK:
// Mangled name: A#<set-b>(kotlin.Int){}
// Public signature: /A.b.<set-b>|393614520529327556[0]
// Public signature debug description: <set-b>(kotlin.Int){}
@MyAnnotation
open set(value: Int): 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(kotlin.Int){}
// Public signature: /B.foo|-104159190164110731[0]
// Public signature debug description: foo(kotlin.Int){}
@MyAnnotation
/* fake */ override fun foo(@MyAnnotation a: Int): Unit
// CHECK:
// Mangled name: B{}a
// Public signature: /B.a|-1200697420457237799[0]
// Public signature debug description: {}a
@MyAnnotation
/* 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
@MyAnnotation
/* fake */ override get(): Int
// CHECK:
// Mangled name: B{}b
// Public signature: /B.b|772347207915745207[0]
// Public signature debug description: {}b
/* fake */ override var b: Int
// CHECK JVM_IR:
// Mangled name: B#<get-b>(){}kotlin.Int
// Public signature: /B.b.<get-b>|-2902143276921469679[0]
// Public signature debug description: <get-b>(){}kotlin.Int
@MyAnnotation
/* fake */ override get(): Int
// CHECK:
// Mangled name: B#<set-b>(kotlin.Int){}
// Public signature: /B.b.<set-b>|393614520529327556[0]
// Public signature debug description: <set-b>(kotlin.Int){}
@MyAnnotation
/* fake */ override set(value: Int): Unit
}
// CHECK:
// Mangled name: C
// Public signature: /C|null[0]
class C : Java1 {
// CHECK:
// Mangled name: C#<init>(){}
// Public signature: /C.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: C#foo(kotlin.Int){}
// Public signature: /C.foo|-104159190164110731[0]
// Public signature debug description: foo(kotlin.Int){}
override fun foo(a: Int): Unit
// CHECK:
// Mangled name: C{}a
// Public signature: /C.a|-1200697420457237799[0]
// Public signature debug description: {}a
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
override get(): Int
// CHECK:
// Mangled name: C{}b
// Public signature: /C.b|772347207915745207[0]
// Public signature debug description: {}b
override var b: Int
// CHECK JVM_IR:
// Mangled name: C#<get-b>(){}kotlin.Int
// Public signature: /C.b.<get-b>|-2902143276921469679[0]
// Public signature debug description: <get-b>(){}kotlin.Int
override get(): Int
// CHECK:
// Mangled name: C#<set-b>(kotlin.Int){}
// Public signature: /C.b.<set-b>|393614520529327556[0]
// Public signature debug description: <set-b>(kotlin.Int){}
override set(value: Int): 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(kotlin.Int){}
// Public signature: /D.foo|-104159190164110731[0]
// Public signature debug description: foo(kotlin.Int){}
@Override
/* fake */ override fun foo(a: Int): Unit
// CHECK:
// Mangled name: D{}a
// Public signature: /D.a|-1200697420457237799[0]
// Public signature debug description: {}a
/* 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
@Override
/* fake */ override get(): Int
// CHECK:
// Mangled name: D{}b
// Public signature: /D.b|772347207915745207[0]
// Public signature debug description: {}b
/* fake */ override var b: Int
// CHECK JVM_IR:
// Mangled name: D#<get-b>(){}kotlin.Int
// Public signature: /D.b.<get-b>|-2902143276921469679[0]
// Public signature debug description: <get-b>(){}kotlin.Int
@MyAnnotation
/* fake */ override get(): Int
// CHECK:
// Mangled name: D#<set-b>(kotlin.Int){}
// Public signature: /D.b.<set-b>|393614520529327556[0]
// Public signature debug description: <set-b>(kotlin.Int){}
@MyAnnotation
/* fake */ override set(value: Int): Unit
}
// CHECK:
// Mangled name: E
// Public signature: /E|null[0]
class E : Java2 {
// CHECK:
// Mangled name: E{}b
// Public signature: /E.b|772347207915745207[0]
// Public signature debug description: {}b
override var b: Int
// CHECK JVM_IR:
// Mangled name: E#<get-b>(){}kotlin.Int
// Public signature: /E.b.<get-b>|-2902143276921469679[0]
// Public signature debug description: <get-b>(){}kotlin.Int
override get(): Int
// CHECK:
// Mangled name: E#<set-b>(kotlin.Int){}
// Public signature: /E.b.<set-b>|393614520529327556[0]
// Public signature debug description: <set-b>(kotlin.Int){}
override set
// CHECK:
// Mangled name: E#<init>(){}
// Public signature: /E.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: E#foo(kotlin.Int){}
// Public signature: /E.foo|-104159190164110731[0]
// Public signature debug description: foo(kotlin.Int){}
override fun foo(a: Int): 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]
abstract class F : Java1, Java3 {
// CHECK:
// Mangled name: F#<init>(){}
// Public signature: /F.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: F#foo(kotlin.Int){}
// Public signature: /F.foo|-104159190164110731[0]
// Public signature debug description: foo(kotlin.Int){}
@MyAnnotation
/* fake */ override fun foo(@MyAnnotation a: Int): Unit
// CHECK:
// Mangled name: F#setA(kotlin.Int){}
// Public signature: /F.setA|-2839184409429581850[0]
// Public signature debug description: setA(kotlin.Int){}
abstract /* fake */ override fun setA(a: Int): Unit
// CHECK:
// Mangled name: F{}a
// Public signature: /F.a|-1200697420457237799[0]
// Public signature debug description: {}a
@MyAnnotation
/* 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
@MyAnnotation
/* fake */ override get(): Int
// CHECK:
// Mangled name: F{}b
// Public signature: /F.b|772347207915745207[0]
// Public signature debug description: {}b
/* fake */ override var b: Int
// CHECK JVM_IR:
// Mangled name: F#<get-b>(){}kotlin.Int
// Public signature: /F.b.<get-b>|-2902143276921469679[0]
// Public signature debug description: <get-b>(){}kotlin.Int
@MyAnnotation
/* fake */ override get(): Int
// CHECK:
// Mangled name: F#<set-b>(kotlin.Int){}
// Public signature: /F.b.<set-b>|393614520529327556[0]
// Public signature debug description: <set-b>(kotlin.Int){}
@MyAnnotation
/* fake */ override set(value: Int): Unit
}
// CHECK:
// Mangled name: G
// Public signature: /G|null[0]
class G : Java1, Java3 {
// CHECK:
// Mangled name: G#<init>(){}
// Public signature: /G.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: G#foo(kotlin.Int){}
// Public signature: /G.foo|-104159190164110731[0]
// Public signature debug description: foo(kotlin.Int){}
override fun foo(a: Int): Unit
// CHECK:
// Mangled name: G#setA(kotlin.Int){}
// Public signature: /G.setA|-2839184409429581850[0]
// Public signature debug description: setA(kotlin.Int){}
override fun setA(a: Int): Unit
// CHECK:
// Mangled name: G{}a
// Public signature: /G.a|-1200697420457237799[0]
// Public signature debug description: {}a
@MyAnnotation
/* 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
@MyAnnotation
/* fake */ override get(): Int
// CHECK:
// Mangled name: G{}b
// Public signature: /G.b|772347207915745207[0]
// Public signature debug description: {}b
/* fake */ override var b: Int
// CHECK JVM_IR:
// Mangled name: G#<get-b>(){}kotlin.Int
// Public signature: /G.b.<get-b>|-2902143276921469679[0]
// Public signature debug description: <get-b>(){}kotlin.Int
@MyAnnotation
/* fake */ override get(): Int
// CHECK:
// Mangled name: G#<set-b>(kotlin.Int){}
// Public signature: /G.b.<set-b>|393614520529327556[0]
// Public signature debug description: <set-b>(kotlin.Int){}
@MyAnnotation
/* fake */ override set(value: Int): Unit
}
// CHECK:
// Mangled name: H
// Public signature: /H|null[0]
class H : Java1, KotlinInterface {
// CHECK:
// Mangled name: H#<init>(){}
// Public signature: /H.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: H#foo(kotlin.Int){}
// Public signature: /H.foo|-104159190164110731[0]
// Public signature debug description: foo(kotlin.Int){}
@MyAnnotation
/* fake */ override fun foo(@MyAnnotation a: Int): Unit
// CHECK:
// Mangled name: H{}a
// Public signature: /H.a|-1200697420457237799[0]
// Public signature debug description: {}a
@MyAnnotation
/* fake */ 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
@MyAnnotation
/* fake */ override get(): Int
// CHECK:
// Mangled name: H{}b
// Public signature: /H.b|772347207915745207[0]
// Public signature debug description: {}b
/* fake */ override var b: Int
// CHECK JVM_IR:
// Mangled name: H#<get-b>(){}kotlin.Int
// Public signature: /H.b.<get-b>|-2902143276921469679[0]
// Public signature debug description: <get-b>(){}kotlin.Int
@MyAnnotation
/* fake */ override get(): Int
// CHECK:
// Mangled name: H#<set-b>(kotlin.Int){}
// Public signature: /H.b.<set-b>|393614520529327556[0]
// Public signature debug description: <set-b>(kotlin.Int){}
@MyAnnotation
/* fake */ override set(value: Int): Unit
}
// CHECK:
// Mangled name: I
// Public signature: /I|null[0]
class I : Java1, KotlinInterface {
// CHECK:
// Mangled name: I#<init>(){}
// Public signature: /I.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: I#foo(kotlin.Int){}
// Public signature: /I.foo|-104159190164110731[0]
// Public signature debug description: foo(kotlin.Int){}
override fun foo(a: Int): Unit
// CHECK:
// Mangled name: I{}a
// Public signature: /I.a|-1200697420457237799[0]
// Public signature debug description: {}a
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
override get(): Int
// CHECK:
// Mangled name: I{}b
// Public signature: /I.b|772347207915745207[0]
// Public signature debug description: {}b
override var b: Int
// CHECK JVM_IR:
// Mangled name: I#<get-b>(){}kotlin.Int
// Public signature: /I.b.<get-b>|-2902143276921469679[0]
// Public signature debug description: <get-b>(){}kotlin.Int
override get(): Int
// CHECK:
// Mangled name: I#<set-b>(kotlin.Int){}
// Public signature: /I.b.<set-b>|393614520529327556[0]
// Public signature debug description: <set-b>(kotlin.Int){}
override set(value: Int): Unit
}
// CHECK:
// Mangled name: KotlinInterface
// Public signature: /KotlinInterface|null[0]
interface KotlinInterface {
// CHECK:
// Mangled name: KotlinInterface#foo(kotlin.Int){}
// Public signature: /KotlinInterface.foo|-104159190164110731[0]
// Public signature debug description: foo(kotlin.Int){}
abstract fun foo(a: Int): Unit
// CHECK:
// Mangled name: KotlinInterface{}a
// Public signature: /KotlinInterface.a|-1200697420457237799[0]
// Public signature debug description: {}a
abstract val a: Int
// CHECK JVM_IR:
// Mangled name: KotlinInterface#<get-a>(){}kotlin.Int
// Public signature: /KotlinInterface.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
abstract get
// CHECK:
// Mangled name: KotlinInterface{}b
// Public signature: /KotlinInterface.b|772347207915745207[0]
// Public signature debug description: {}b
abstract val b: Int
// CHECK JVM_IR:
// Mangled name: KotlinInterface#<get-b>(){}kotlin.Int
// Public signature: /KotlinInterface.b.<get-b>|-2902143276921469679[0]
// Public signature debug description: <get-b>(){}kotlin.Int
abstract get
}
// CHECK:
// Mangled name: #test(B;C;D;E;F;G;H;I){}
// Public signature: /test|2768829396992774586[0]
// Public signature debug description: test(B;C;D;E;F;G;H;I){}
fun test(b: B, c: C, d: D, e: E, f: F, g: G, h: H, i: I): Unit
@@ -0,0 +1,673 @@
FILE fqName:<root> fileName:/1.kt
CLASS ANNOTATION_CLASS name:MyAnnotation modality:OPEN visibility:public superTypes:[kotlin.Annotation]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.MyAnnotation
CONSTRUCTOR visibility:public <> () returnType:<root>.MyAnnotation [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS ANNOTATION_CLASS name:MyAnnotation modality:OPEN visibility:public superTypes:[kotlin.Annotation]'
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.Annotation
$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.Annotation
$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.Annotation
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:A modality:OPEN visibility:public superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.A
PROPERTY name:a visibility:public modality:OPEN [val]
annotations:
MyAnnotation
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:OPEN <> ($this:<root>.A) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a visibility:public modality:OPEN [val]
$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'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.A declared in <root>.A.<get-a>' type=<root>.A origin=null
CONSTRUCTOR visibility:public <> (i:kotlin.Int) returnType:<root>.A
annotations:
MyAnnotation
VALUE_PARAMETER name:i index:0 type:kotlin.Int
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:A 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:public modality:OPEN <> ($this:<root>.A, a:kotlin.Int) returnType:kotlin.Unit
annotations:
MyAnnotation
$this: VALUE_PARAMETER name:<this> type:<root>.A
VALUE_PARAMETER name:a index:0 type:kotlin.Int
annotations:
MyAnnotation
BLOCK_BODY
PROPERTY name:b visibility:public modality:OPEN [var]
FUN name:<get-b> visibility:public modality:OPEN <> ($this:<root>.A) returnType:kotlin.Int
annotations:
MyAnnotation
correspondingProperty: PROPERTY name:b visibility:public modality:OPEN [var]
$this: VALUE_PARAMETER name:<this> type:<root>.A
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun <get-b> (): kotlin.Int declared in <root>.A'
CONST Int type=kotlin.Int value=10
FUN name:<set-b> visibility:public modality:OPEN <> ($this:<root>.A, value:kotlin.Int) returnType:kotlin.Unit
annotations:
MyAnnotation
correspondingProperty: PROPERTY name:b visibility:public modality:OPEN [var]
$this: VALUE_PARAMETER name:<this> type:<root>.A
VALUE_PARAMETER name:value index:0 type:kotlin.Int
BLOCK_BODY
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> (i: kotlin.Int) declared in <root>.Java1'
i: CONST Int type=kotlin.Int value=1
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:foo visibility:public modality:OPEN <> ($this:<root>.A, a:kotlin.Int) returnType:kotlin.Unit [fake_override]
annotations:
MyAnnotation
overridden:
public open fun foo (a: kotlin.Int): kotlin.Unit declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.A
VALUE_PARAMETER name:a index:0 type:kotlin.Int
annotations:
MyAnnotation
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:OPEN [fake_override,val]
annotations:
MyAnnotation
overridden:
public open a: kotlin.Int
FUN FAKE_OVERRIDE name:<get-a> visibility:public modality:OPEN <> ($this:<root>.A) returnType:kotlin.Int [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a visibility:public modality:OPEN [fake_override,val]
overridden:
public open fun <get-a> (): kotlin.Int declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.A
PROPERTY FAKE_OVERRIDE name:b visibility:public modality:OPEN [fake_override,var]
overridden:
public open b: kotlin.Int
FUN FAKE_OVERRIDE name:<get-b> visibility:public modality:OPEN <> ($this:<root>.A) returnType:kotlin.Int [fake_override]
annotations:
MyAnnotation
correspondingProperty: PROPERTY FAKE_OVERRIDE name:b visibility:public modality:OPEN [fake_override,var]
overridden:
public open fun <get-b> (): kotlin.Int declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.A
FUN FAKE_OVERRIDE name:<set-b> visibility:public modality:OPEN <> ($this:<root>.A, value:kotlin.Int) returnType:kotlin.Unit [fake_override]
annotations:
MyAnnotation
correspondingProperty: PROPERTY FAKE_OVERRIDE name:b visibility:public modality:OPEN [fake_override,var]
overridden:
public open fun <set-b> (value: kotlin.Int): kotlin.Unit declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.A
VALUE_PARAMETER name:value index:0 type:kotlin.Int
CLASS CLASS name:C modality:FINAL visibility:public superTypes:[<root>.Java1]
$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> (i: kotlin.Int) declared in <root>.Java1'
i: CONST Int type=kotlin.Int value=1
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:C 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>.C, a:kotlin.Int) returnType:kotlin.Unit
overridden:
public open fun foo (a: kotlin.Int): kotlin.Unit declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.C
VALUE_PARAMETER name:a index:0 type:kotlin.Int
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>.C) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a visibility:public modality:OPEN [val]
overridden:
public open fun <get-a> (): kotlin.Int declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.C
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun <get-a> (): kotlin.Int declared in <root>.C'
CONST Int type=kotlin.Int value=10
PROPERTY name:b visibility:public modality:OPEN [var]
overridden:
public open b: kotlin.Int
FUN name:<get-b> visibility:public modality:OPEN <> ($this:<root>.C) returnType:kotlin.Int
correspondingProperty: PROPERTY name:b visibility:public modality:OPEN [var]
overridden:
public open fun <get-b> (): kotlin.Int declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.C
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun <get-b> (): kotlin.Int declared in <root>.C'
CONST Int type=kotlin.Int value=11
FUN name:<set-b> visibility:public modality:OPEN <> ($this:<root>.C, value:kotlin.Int) returnType:kotlin.Unit
correspondingProperty: PROPERTY name:b visibility:public modality:OPEN [var]
overridden:
public open fun <set-b> (value: kotlin.Int): kotlin.Unit declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.C
VALUE_PARAMETER name:value index:0 type:kotlin.Int
BLOCK_BODY
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> (i: kotlin.Int) declared in <root>.Java2'
i: CONST Int type=kotlin.Int value=2
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:foo visibility:public modality:OPEN <> ($this:<root>.Java2, a:kotlin.Int) returnType:kotlin.Unit [fake_override]
annotations:
Override
overridden:
public open fun foo (a: kotlin.Int): kotlin.Unit declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.Java2
VALUE_PARAMETER name:a index:0 type:kotlin.Int
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:OPEN [fake_override,val]
overridden:
public open a: kotlin.Int
FUN FAKE_OVERRIDE name:<get-a> visibility:public modality:OPEN <> ($this:<root>.Java2) returnType:kotlin.Int [fake_override]
annotations:
Override
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a visibility:public modality:OPEN [fake_override,val]
overridden:
public open fun <get-a> (): kotlin.Int declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.Java2
PROPERTY FAKE_OVERRIDE name:b visibility:public modality:OPEN [fake_override,var]
overridden:
public open b: kotlin.Int
FUN FAKE_OVERRIDE name:<get-b> visibility:public modality:OPEN <> ($this:<root>.A) returnType:kotlin.Int [fake_override]
annotations:
MyAnnotation
correspondingProperty: PROPERTY FAKE_OVERRIDE name:b visibility:public modality:OPEN [fake_override,var]
overridden:
public open fun <get-b> (): kotlin.Int declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.A
FUN FAKE_OVERRIDE name:<set-b> visibility:public modality:OPEN <> ($this:<root>.A, value:kotlin.Int) returnType:kotlin.Unit [fake_override]
annotations:
MyAnnotation
correspondingProperty: PROPERTY FAKE_OVERRIDE name:b visibility:public modality:OPEN [fake_override,var]
overridden:
public open fun <set-b> (value: kotlin.Int): kotlin.Unit declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.A
VALUE_PARAMETER name:value index:0 type:kotlin.Int
CLASS CLASS name:E modality:FINAL visibility:public superTypes:[<root>.Java2]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.E
PROPERTY name:b visibility:public modality:OPEN [var]
overridden:
public open b: kotlin.Int
FIELD PROPERTY_BACKING_FIELD name:b type:kotlin.Int visibility:private
EXPRESSION_BODY
CONST Int type=kotlin.Int value=0
FUN name:<get-b> visibility:public modality:OPEN <> ($this:<root>.E) returnType:kotlin.Int
correspondingProperty: PROPERTY name:b visibility:public modality:OPEN [var]
overridden:
public open fun <get-b> (): kotlin.Int declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.E
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun <get-b> (): kotlin.Int declared in <root>.E'
CONST Int type=kotlin.Int value=11
FUN DEFAULT_PROPERTY_ACCESSOR name:<set-b> visibility:public modality:OPEN <> ($this:<root>.E, <set-?>:kotlin.Int) returnType:kotlin.Unit
correspondingProperty: PROPERTY name:b visibility:public modality:OPEN [var]
overridden:
public open fun <set-b> (value: kotlin.Int): kotlin.Unit declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.E
VALUE_PARAMETER name:<set-?> index:0 type:kotlin.Int
BLOCK_BODY
SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:b type:kotlin.Int visibility:private' type=kotlin.Unit origin=null
receiver: GET_VAR '<this>: <root>.E declared in <root>.E.<set-b>' type=<root>.E origin=null
value: GET_VAR '<set-?>: kotlin.Int declared in <root>.E.<set-b>' type=kotlin.Int origin=null
CONSTRUCTOR visibility:public <> () returnType:<root>.E [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> (i: kotlin.Int) declared in <root>.Java2'
i: CONST Int type=kotlin.Int value=2
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:E 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>.E, a:kotlin.Int) returnType:kotlin.Unit
overridden:
public open fun foo (a: kotlin.Int): kotlin.Unit declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.E
VALUE_PARAMETER name:a index:0 type:kotlin.Int
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>.Java2
$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=10
CLASS CLASS name:F modality:ABSTRACT visibility:public superTypes:[<root>.Java1; <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> (i: kotlin.Int) declared in <root>.Java1'
i: CONST Int type=kotlin.Int value=1
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:F modality:ABSTRACT visibility:public superTypes:[<root>.Java1; <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>.Java1
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:public modality:OPEN <> ($this:<root>.A, a:kotlin.Int) returnType:kotlin.Unit [fake_override]
annotations:
MyAnnotation
overridden:
public open fun foo (a: kotlin.Int): kotlin.Unit declared in <root>.Java1
public abstract fun foo (a: kotlin.Int): kotlin.Unit declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.A
VALUE_PARAMETER name:a index:0 type:kotlin.Int
annotations:
MyAnnotation
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
public open fun hashCode (): kotlin.Int declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:setA visibility:public modality:ABSTRACT <> ($this:<root>.Java3, a:kotlin.Int) returnType:kotlin.Unit [fake_override]
overridden:
public abstract fun setA (a: kotlin.Int): kotlin.Unit declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.Java3
VALUE_PARAMETER name:a index:0 type:kotlin.Int
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
public open fun toString (): kotlin.String declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
PROPERTY FAKE_OVERRIDE name:a visibility:public modality:OPEN [fake_override,val]
annotations:
MyAnnotation
overridden:
public open a: kotlin.Int
FUN FAKE_OVERRIDE name:<get-a> visibility:public modality:OPEN <> ($this:<root>.A) returnType:kotlin.Int [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a visibility:public modality:OPEN [fake_override,val]
overridden:
public open fun <get-a> (): kotlin.Int declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.A
PROPERTY FAKE_OVERRIDE name:b visibility:public modality:OPEN [fake_override,var]
overridden:
public open b: kotlin.Int
FUN FAKE_OVERRIDE name:<get-b> visibility:public modality:OPEN <> ($this:<root>.A) returnType:kotlin.Int [fake_override]
annotations:
MyAnnotation
correspondingProperty: PROPERTY FAKE_OVERRIDE name:b visibility:public modality:OPEN [fake_override,var]
overridden:
public open fun <get-b> (): kotlin.Int declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.A
FUN FAKE_OVERRIDE name:<set-b> visibility:public modality:OPEN <> ($this:<root>.A, value:kotlin.Int) returnType:kotlin.Unit [fake_override]
annotations:
MyAnnotation
correspondingProperty: PROPERTY FAKE_OVERRIDE name:b visibility:public modality:OPEN [fake_override,var]
overridden:
public open fun <set-b> (value: kotlin.Int): kotlin.Unit declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.A
VALUE_PARAMETER name:value index:0 type:kotlin.Int
CLASS CLASS name:G modality:FINAL visibility:public superTypes:[<root>.Java1; <root>.Java3]
$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> (i: kotlin.Int) declared in <root>.Java1'
i: CONST Int type=kotlin.Int value=1
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:G modality:FINAL visibility:public superTypes:[<root>.Java1; <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>.Java1
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>.Java1
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>.Java1
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>.G, a:kotlin.Int) returnType:kotlin.Unit
overridden:
public open fun foo (a: kotlin.Int): kotlin.Unit declared in <root>.Java1
public abstract fun foo (a: kotlin.Int): kotlin.Unit declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.G
VALUE_PARAMETER name:a index:0 type:kotlin.Int
BLOCK_BODY
FUN name:setA visibility:public modality:OPEN <> ($this:<root>.G, a:kotlin.Int) returnType:kotlin.Unit
overridden:
public abstract fun setA (a: kotlin.Int): kotlin.Unit declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.G
VALUE_PARAMETER name:a index:0 type:kotlin.Int
BLOCK_BODY
PROPERTY FAKE_OVERRIDE name:a visibility:public modality:OPEN [fake_override,val]
annotations:
MyAnnotation
overridden:
public open a: kotlin.Int
FUN FAKE_OVERRIDE name:<get-a> visibility:public modality:OPEN <> ($this:<root>.A) returnType:kotlin.Int [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a visibility:public modality:OPEN [fake_override,val]
overridden:
public open fun <get-a> (): kotlin.Int declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.A
PROPERTY FAKE_OVERRIDE name:b visibility:public modality:OPEN [fake_override,var]
overridden:
public open b: kotlin.Int
FUN FAKE_OVERRIDE name:<get-b> visibility:public modality:OPEN <> ($this:<root>.A) returnType:kotlin.Int [fake_override]
annotations:
MyAnnotation
correspondingProperty: PROPERTY FAKE_OVERRIDE name:b visibility:public modality:OPEN [fake_override,var]
overridden:
public open fun <get-b> (): kotlin.Int declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.A
FUN FAKE_OVERRIDE name:<set-b> visibility:public modality:OPEN <> ($this:<root>.A, value:kotlin.Int) returnType:kotlin.Unit [fake_override]
annotations:
MyAnnotation
correspondingProperty: PROPERTY FAKE_OVERRIDE name:b visibility:public modality:OPEN [fake_override,var]
overridden:
public open fun <set-b> (value: kotlin.Int): kotlin.Unit declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.A
VALUE_PARAMETER name:value index:0 type:kotlin.Int
CLASS CLASS name:H modality:FINAL visibility:public superTypes:[<root>.Java1; <root>.KotlinInterface]
$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> (i: kotlin.Int) declared in <root>.Java1'
i: CONST Int type=kotlin.Int value=1
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:H modality:FINAL visibility:public superTypes:[<root>.Java1; <root>.KotlinInterface]'
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
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.KotlinInterface
$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>.A, a:kotlin.Int) returnType:kotlin.Unit [fake_override]
annotations:
MyAnnotation
overridden:
public open fun foo (a: kotlin.Int): kotlin.Unit declared in <root>.Java1
public abstract fun foo (a: kotlin.Int): kotlin.Unit declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.A
VALUE_PARAMETER name:a index:0 type:kotlin.Int
annotations:
MyAnnotation
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
public open fun hashCode (): kotlin.Int declared in <root>.KotlinInterface
$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
public open fun toString (): kotlin.String declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
PROPERTY FAKE_OVERRIDE name:a visibility:public modality:OPEN [fake_override,val]
annotations:
MyAnnotation
overridden:
public open a: kotlin.Int
public abstract a: kotlin.Int
FUN FAKE_OVERRIDE name:<get-a> visibility:public modality:OPEN <> ($this:<root>.A) returnType:kotlin.Int [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a visibility:public modality:OPEN [fake_override,val]
overridden:
public open fun <get-a> (): kotlin.Int declared in <root>.Java1
public abstract fun <get-a> (): kotlin.Int declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.A
PROPERTY FAKE_OVERRIDE name:b visibility:public modality:OPEN [fake_override,var]
overridden:
public open b: kotlin.Int
public abstract b: kotlin.Int
FUN FAKE_OVERRIDE name:<get-b> visibility:public modality:OPEN <> ($this:<root>.A) returnType:kotlin.Int [fake_override]
annotations:
MyAnnotation
correspondingProperty: PROPERTY FAKE_OVERRIDE name:b visibility:public modality:OPEN [fake_override,var]
overridden:
public open fun <get-b> (): kotlin.Int declared in <root>.Java1
public abstract fun <get-b> (): kotlin.Int declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.A
FUN FAKE_OVERRIDE name:<set-b> visibility:public modality:OPEN <> ($this:<root>.A, value:kotlin.Int) returnType:kotlin.Unit [fake_override]
annotations:
MyAnnotation
correspondingProperty: PROPERTY FAKE_OVERRIDE name:b visibility:public modality:OPEN [fake_override,var]
overridden:
public open fun <set-b> (value: kotlin.Int): kotlin.Unit declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.A
VALUE_PARAMETER name:value index:0 type:kotlin.Int
CLASS CLASS name:I modality:FINAL visibility:public superTypes:[<root>.Java1; <root>.KotlinInterface]
$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> (i: kotlin.Int) declared in <root>.Java1'
i: CONST Int type=kotlin.Int value=1
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:I modality:FINAL visibility:public superTypes:[<root>.Java1; <root>.KotlinInterface]'
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
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.KotlinInterface
$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
public open fun hashCode (): kotlin.Int declared in <root>.KotlinInterface
$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
public open fun toString (): kotlin.String declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.I, a:kotlin.Int) returnType:kotlin.Unit
overridden:
public open fun foo (a: kotlin.Int): kotlin.Unit declared in <root>.Java1
public abstract fun foo (a: kotlin.Int): kotlin.Unit declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.I
VALUE_PARAMETER name:a index:0 type:kotlin.Int
BLOCK_BODY
PROPERTY name:a visibility:public modality:OPEN [val]
overridden:
public open a: kotlin.Int
public abstract a: kotlin.Int
FUN name:<get-a> visibility:public modality:OPEN <> ($this:<root>.I) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a visibility:public modality:OPEN [val]
overridden:
public open fun <get-a> (): kotlin.Int declared in <root>.Java1
public abstract fun <get-a> (): kotlin.Int declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.I
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun <get-a> (): kotlin.Int declared in <root>.I'
CONST Int type=kotlin.Int value=2
PROPERTY name:b visibility:public modality:OPEN [var]
overridden:
public open b: kotlin.Int
public abstract b: kotlin.Int
FUN name:<get-b> visibility:public modality:OPEN <> ($this:<root>.I) returnType:kotlin.Int
correspondingProperty: PROPERTY name:b visibility:public modality:OPEN [var]
overridden:
public open fun <get-b> (): kotlin.Int declared in <root>.Java1
public abstract fun <get-b> (): kotlin.Int declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.I
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun <get-b> (): kotlin.Int declared in <root>.I'
CONST Int type=kotlin.Int value=2
FUN name:<set-b> visibility:public modality:OPEN <> ($this:<root>.I, value:kotlin.Int) returnType:kotlin.Unit
correspondingProperty: PROPERTY name:b visibility:public modality:OPEN [var]
overridden:
public open fun <set-b> (value: kotlin.Int): kotlin.Unit declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.I
VALUE_PARAMETER name:value index:0 type:kotlin.Int
BLOCK_BODY
CLASS INTERFACE name:KotlinInterface modality:ABSTRACT visibility:public superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.KotlinInterface
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:ABSTRACT <> ($this:<root>.KotlinInterface, a:kotlin.Int) returnType:kotlin.Unit
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
VALUE_PARAMETER name:a index:0 type:kotlin.Int
PROPERTY name:a visibility:public modality:ABSTRACT [val]
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-a> visibility:public modality:ABSTRACT <> ($this:<root>.KotlinInterface) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a visibility:public modality:ABSTRACT [val]
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
PROPERTY name:b visibility:public modality:ABSTRACT [val]
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-b> visibility:public modality:ABSTRACT <> ($this:<root>.KotlinInterface) returnType:kotlin.Int
correspondingProperty: PROPERTY name:b visibility:public modality:ABSTRACT [val]
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
FUN name:test visibility:public modality:FINAL <> (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:b index:0 type:<root>.B
VALUE_PARAMETER name:c index:1 type:<root>.C
VALUE_PARAMETER name:d index:2 type:<root>.D
VALUE_PARAMETER name:e index:3 type:<root>.E
VALUE_PARAMETER name:f index:4 type:<root>.F
VALUE_PARAMETER name:g index:5 type:<root>.G
VALUE_PARAMETER name:h index:6 type:<root>.H
VALUE_PARAMETER name:i index:7 type:<root>.I
BLOCK_BODY
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public 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
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun <get-b> (): 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 (a: kotlin.Int): 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
a: CONST Int type=kotlin.Int value=1
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open 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
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun <get-b> (): 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 (a: kotlin.Int): 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
a: CONST Int type=kotlin.Int value=1
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public 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
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun <get-b> (): 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 (a: kotlin.Int): 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
a: CONST Int type=kotlin.Int value=1
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
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun <get-b> (): 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 (a: kotlin.Int): 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
a: CONST Int type=kotlin.Int value=1
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
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun <get-b> (): 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 (a: kotlin.Int): 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
a: CONST Int type=kotlin.Int value=1
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
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun <get-b> (): 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 (a: kotlin.Int): 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
a: CONST Int type=kotlin.Int value=1
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public 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
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun <get-b> (): 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 (a: kotlin.Int): 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
a: CONST Int type=kotlin.Int value=1
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open 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
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun <get-b> (): 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 (a: kotlin.Int): 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
a: CONST Int type=kotlin.Int value=1
@@ -0,0 +1,121 @@
// TARGET_BACKEND: JVM
// SEPARATE_SIGNATURE_DUMP_FOR_K2
// ^ ISSUE: KT-65388
// FILE: Java1.java
public class Java1 extends A {
public Java1(int i) {
super(i);
}
}
// FILE: Java2.java
public class Java2 extends A {
public Java2(int i) {
super(i);
}
@Override
public void foo(int a) { }
@Override
public int getA() {
return 5;
}
}
// FILE: Java3.java
interface Java3 {
public void foo(int a);
public void setA(int a);
}
// FILE: 1.kt
annotation class MyAnnotation
open class A {
@MyAnnotation
open fun foo(@MyAnnotation a: Int) { }
@MyAnnotation
open val a : Int = 1
@MyAnnotation constructor(i: Int)
open var b
@MyAnnotation get() = 10
@MyAnnotation set(value) {}
}
class B: Java1(1) //Kotlin ← Java ← Kotlin
class C : Java1(1) {
override val a: Int
get() = 10
override fun foo(a: Int) { }
override var b: Int
get() = 11
set(value) {}
}
class D: Java2(2) //Kotlin ← Java (override) ← Kotlin
class E : Java2(2) {
override val a: Int
get() = 10
override var b: Int = 0
get() = 11
override fun foo(a: Int) { }
}
abstract class F : Java1(1), Java3 // Kotlin ← Java1, Java2 ← Kotlin2
class G : Java1(1), Java3 {
override fun setA(a: Int) { }
override fun foo(a: Int) { }
}
class H : Java1(1), KotlinInterface // Kotlin ← Java, Kotlin2 ← Kotlin3
class I : Java1(1), KotlinInterface {
override var b: Int
get() = 2
set(value) {}
override val a: Int
get() = 2
override fun foo(a: Int) { }
}
interface KotlinInterface {
val a : Int
val b : Int
fun foo(a: Int)
}
fun test(b: B, c: C, d: D, e: E, f: F, g: G, h: H, i: I) {
b.a
b.b
b.foo(1)
c.a
c.b
c.foo(1)
d.a
d.b
d.foo(1)
e.a
e.b
e.foo(1)
f.a
f.b
f.foo(1)
g.a
g.b
g.foo(1)
h.a
h.b
h.foo(1)
i.a
i.b
i.foo(1)
}
@@ -0,0 +1,197 @@
open annotation class MyAnnotation : Annotation {
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
}
open class A {
@MyAnnotation
open val a: Int
field = 1
open get
@MyAnnotation
constructor(i: Int) {
super/*Any*/()
/* <init>() */
}
@MyAnnotation
open fun foo(@MyAnnotation a: Int) {
}
open var b: Int
@MyAnnotation
open get(): Int {
return 10
}
@MyAnnotation
open set(value: Int) {
}
}
class B : Java1 {
constructor() /* primary */ {
super/*Java1*/(i = 1)
/* <init>() */
}
}
class C : Java1 {
constructor() /* primary */ {
super/*Java1*/(i = 1)
/* <init>() */
}
override fun foo(a: Int) {
}
override val a: Int
override get(): Int {
return 10
}
override var b: Int
override get(): Int {
return 11
}
override set(value: Int) {
}
}
class D : Java2 {
constructor() /* primary */ {
super/*Java2*/(i = 2)
/* <init>() */
}
}
class E : Java2 {
override var b: Int
field = 0
override get(): Int {
return 11
}
override set
constructor() /* primary */ {
super/*Java2*/(i = 2)
/* <init>() */
}
override fun foo(a: Int) {
}
override val a: Int
override get(): Int {
return 10
}
}
abstract class F : Java1, Java3 {
constructor() /* primary */ {
super/*Java1*/(i = 1)
/* <init>() */
}
}
class G : Java1, Java3 {
constructor() /* primary */ {
super/*Java1*/(i = 1)
/* <init>() */
}
override fun foo(a: Int) {
}
override fun setA(a: Int) {
}
}
class H : Java1, KotlinInterface {
constructor() /* primary */ {
super/*Java1*/(i = 1)
/* <init>() */
}
}
class I : Java1, KotlinInterface {
constructor() /* primary */ {
super/*Java1*/(i = 1)
/* <init>() */
}
override fun foo(a: Int) {
}
override val a: Int
override get(): Int {
return 2
}
override var b: Int
override get(): Int {
return 2
}
override set(value: Int) {
}
}
interface KotlinInterface {
abstract fun foo(a: Int)
abstract val a: Int
abstract get
abstract val b: Int
abstract get
}
fun test(b: B, c: C, d: D, e: E, f: F, g: G, h: H, i: I) {
b.<get-a>() /*~> Unit */
b.<get-b>() /*~> Unit */
b.foo(a = 1)
c.<get-a>() /*~> Unit */
c.<get-b>() /*~> Unit */
c.foo(a = 1)
d.<get-a>() /*~> Unit */
d.<get-b>() /*~> Unit */
d.foo(a = 1)
e.<get-a>() /*~> Unit */
e.<get-b>() /*~> Unit */
e.foo(a = 1)
f.<get-a>() /*~> Unit */
f.<get-b>() /*~> Unit */
f.foo(a = 1)
g.<get-a>() /*~> Unit */
g.<get-b>() /*~> Unit */
g.foo(a = 1)
h.<get-a>() /*~> Unit */
h.<get-b>() /*~> Unit */
h.foo(a = 1)
i.<get-a>() /*~> Unit */
i.<get-b>() /*~> Unit */
i.foo(a = 1)
}
@@ -0,0 +1,492 @@
// CHECK:
// Mangled name: MyAnnotation
// Public signature: /MyAnnotation|null[0]
open annotation class MyAnnotation : Annotation {
// CHECK:
// Mangled name: MyAnnotation#<init>(){}
// Public signature: /MyAnnotation.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
}
// CHECK:
// Mangled name: A
// Public signature: /A|null[0]
open class A {
// CHECK:
// Mangled name: A{}a
// Public signature: /A.a|-1200697420457237799[0]
// Public signature debug description: {}a
@MyAnnotation
open 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
open get
// CHECK:
// Mangled name: A#<init>(kotlin.Int){}
// Public signature: /A.<init>|-5182794243525578284[0]
// Public signature debug description: <init>(kotlin.Int){}
@MyAnnotation
constructor(i: Int)
// CHECK:
// Mangled name: A#foo(kotlin.Int){}
// Public signature: /A.foo|-104159190164110731[0]
// Public signature debug description: foo(kotlin.Int){}
@MyAnnotation
open fun foo(@MyAnnotation a: Int): Unit
// CHECK:
// Mangled name: A{}b
// Public signature: /A.b|772347207915745207[0]
// Public signature debug description: {}b
open var b: Int
// CHECK JVM_IR:
// Mangled name: A#<get-b>(){}kotlin.Int
// Public signature: /A.b.<get-b>|-2902143276921469679[0]
// Public signature debug description: <get-b>(){}kotlin.Int
@MyAnnotation
open get(): Int
// CHECK:
// Mangled name: A#<set-b>(kotlin.Int){}
// Public signature: /A.b.<set-b>|393614520529327556[0]
// Public signature debug description: <set-b>(kotlin.Int){}
@MyAnnotation
open set(value: Int): 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(kotlin.Int){}
// Public signature: /B.foo|-104159190164110731[0]
// Public signature debug description: foo(kotlin.Int){}
@MyAnnotation
/* fake */ override fun foo(@MyAnnotation a: Int): Unit
// CHECK:
// Mangled name: B{}a
// Public signature: /B.a|-1200697420457237799[0]
// Public signature debug description: {}a
@MyAnnotation
/* 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: B{}b
// Public signature: /B.b|772347207915745207[0]
// Public signature debug description: {}b
/* fake */ override var b: Int
// CHECK JVM_IR:
// Mangled name: B#<get-b>(){}kotlin.Int
// Public signature: /B.b.<get-b>|-2902143276921469679[0]
// Public signature debug description: <get-b>(){}kotlin.Int
@MyAnnotation
/* fake */ override get(): Int
// CHECK:
// Mangled name: B#<set-b>(kotlin.Int){}
// Public signature: /B.b.<set-b>|393614520529327556[0]
// Public signature debug description: <set-b>(kotlin.Int){}
@MyAnnotation
/* fake */ override set(value: Int): Unit
}
// CHECK:
// Mangled name: C
// Public signature: /C|null[0]
class C : Java1 {
// CHECK:
// Mangled name: C#<init>(){}
// Public signature: /C.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: C#foo(kotlin.Int){}
// Public signature: /C.foo|-104159190164110731[0]
// Public signature debug description: foo(kotlin.Int){}
override fun foo(a: Int): Unit
// CHECK:
// Mangled name: C{}a
// Public signature: /C.a|-1200697420457237799[0]
// Public signature debug description: {}a
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
override get(): Int
// CHECK:
// Mangled name: C{}b
// Public signature: /C.b|772347207915745207[0]
// Public signature debug description: {}b
override var b: Int
// CHECK JVM_IR:
// Mangled name: C#<get-b>(){}kotlin.Int
// Public signature: /C.b.<get-b>|-2902143276921469679[0]
// Public signature debug description: <get-b>(){}kotlin.Int
override get(): Int
// CHECK:
// Mangled name: C#<set-b>(kotlin.Int){}
// Public signature: /C.b.<set-b>|393614520529327556[0]
// Public signature debug description: <set-b>(kotlin.Int){}
override set(value: Int): 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(kotlin.Int){}
// Public signature: /D.foo|-104159190164110731[0]
// Public signature debug description: foo(kotlin.Int){}
@Override
/* fake */ override fun foo(a: Int): Unit
// CHECK:
// Mangled name: D{}a
// Public signature: /D.a|-1200697420457237799[0]
// Public signature debug description: {}a
/* 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
@Override
/* fake */ override get(): Int
// CHECK:
// Mangled name: D{}b
// Public signature: /D.b|772347207915745207[0]
// Public signature debug description: {}b
/* fake */ override var b: Int
// CHECK JVM_IR:
// Mangled name: D#<get-b>(){}kotlin.Int
// Public signature: /D.b.<get-b>|-2902143276921469679[0]
// Public signature debug description: <get-b>(){}kotlin.Int
@MyAnnotation
/* fake */ override get(): Int
// CHECK:
// Mangled name: D#<set-b>(kotlin.Int){}
// Public signature: /D.b.<set-b>|393614520529327556[0]
// Public signature debug description: <set-b>(kotlin.Int){}
@MyAnnotation
/* fake */ override set(value: Int): Unit
}
// CHECK:
// Mangled name: E
// Public signature: /E|null[0]
class E : Java2 {
// CHECK:
// Mangled name: E{}b
// Public signature: /E.b|772347207915745207[0]
// Public signature debug description: {}b
override var b: Int
// CHECK JVM_IR:
// Mangled name: E#<get-b>(){}kotlin.Int
// Public signature: /E.b.<get-b>|-2902143276921469679[0]
// Public signature debug description: <get-b>(){}kotlin.Int
override get(): Int
// CHECK:
// Mangled name: E#<set-b>(kotlin.Int){}
// Public signature: /E.b.<set-b>|393614520529327556[0]
// Public signature debug description: <set-b>(kotlin.Int){}
override set
// CHECK:
// Mangled name: E#<init>(){}
// Public signature: /E.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: E#foo(kotlin.Int){}
// Public signature: /E.foo|-104159190164110731[0]
// Public signature debug description: foo(kotlin.Int){}
override fun foo(a: Int): 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]
abstract class F : Java1, Java3 {
// CHECK:
// Mangled name: F#<init>(){}
// Public signature: /F.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: F#foo(kotlin.Int){}
// Public signature: /F.foo|-104159190164110731[0]
// Public signature debug description: foo(kotlin.Int){}
@MyAnnotation
/* fake */ override fun foo(@MyAnnotation a: Int): Unit
// CHECK:
// Mangled name: F#setA(kotlin.Int){}
// Public signature: /F.setA|-2839184409429581850[0]
// Public signature debug description: setA(kotlin.Int){}
abstract /* fake */ override fun setA(a: Int): Unit
// CHECK:
// Mangled name: F{}a
// Public signature: /F.a|-1200697420457237799[0]
// Public signature debug description: {}a
@MyAnnotation
/* 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
/* fake */ override get(): Int
// CHECK:
// Mangled name: F{}b
// Public signature: /F.b|772347207915745207[0]
// Public signature debug description: {}b
/* fake */ override var b: Int
// CHECK JVM_IR:
// Mangled name: F#<get-b>(){}kotlin.Int
// Public signature: /F.b.<get-b>|-2902143276921469679[0]
// Public signature debug description: <get-b>(){}kotlin.Int
@MyAnnotation
/* fake */ override get(): Int
// CHECK:
// Mangled name: F#<set-b>(kotlin.Int){}
// Public signature: /F.b.<set-b>|393614520529327556[0]
// Public signature debug description: <set-b>(kotlin.Int){}
@MyAnnotation
/* fake */ override set(value: Int): Unit
}
// CHECK:
// Mangled name: G
// Public signature: /G|null[0]
class G : Java1, Java3 {
// CHECK:
// Mangled name: G#<init>(){}
// Public signature: /G.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: G#foo(kotlin.Int){}
// Public signature: /G.foo|-104159190164110731[0]
// Public signature debug description: foo(kotlin.Int){}
override fun foo(a: Int): Unit
// CHECK:
// Mangled name: G#setA(kotlin.Int){}
// Public signature: /G.setA|-2839184409429581850[0]
// Public signature debug description: setA(kotlin.Int){}
override fun setA(a: Int): Unit
// CHECK:
// Mangled name: G{}a
// Public signature: /G.a|-1200697420457237799[0]
// Public signature debug description: {}a
@MyAnnotation
/* 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: G{}b
// Public signature: /G.b|772347207915745207[0]
// Public signature debug description: {}b
/* fake */ override var b: Int
// CHECK JVM_IR:
// Mangled name: G#<get-b>(){}kotlin.Int
// Public signature: /G.b.<get-b>|-2902143276921469679[0]
// Public signature debug description: <get-b>(){}kotlin.Int
@MyAnnotation
/* fake */ override get(): Int
// CHECK:
// Mangled name: G#<set-b>(kotlin.Int){}
// Public signature: /G.b.<set-b>|393614520529327556[0]
// Public signature debug description: <set-b>(kotlin.Int){}
@MyAnnotation
/* fake */ override set(value: Int): Unit
}
// CHECK:
// Mangled name: H
// Public signature: /H|null[0]
class H : Java1, KotlinInterface {
// CHECK:
// Mangled name: H#<init>(){}
// Public signature: /H.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: H#foo(kotlin.Int){}
// Public signature: /H.foo|-104159190164110731[0]
// Public signature debug description: foo(kotlin.Int){}
@MyAnnotation
/* fake */ override fun foo(@MyAnnotation a: Int): Unit
// CHECK:
// Mangled name: H{}a
// Public signature: /H.a|-1200697420457237799[0]
// Public signature debug description: {}a
@MyAnnotation
/* fake */ 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
/* fake */ override get(): Int
// CHECK:
// Mangled name: H{}b
// Public signature: /H.b|772347207915745207[0]
// Public signature debug description: {}b
/* fake */ override var b: Int
// CHECK JVM_IR:
// Mangled name: H#<get-b>(){}kotlin.Int
// Public signature: /H.b.<get-b>|-2902143276921469679[0]
// Public signature debug description: <get-b>(){}kotlin.Int
@MyAnnotation
/* fake */ override get(): Int
// CHECK:
// Mangled name: H#<set-b>(kotlin.Int){}
// Public signature: /H.b.<set-b>|393614520529327556[0]
// Public signature debug description: <set-b>(kotlin.Int){}
@MyAnnotation
/* fake */ override set(value: Int): Unit
}
// CHECK:
// Mangled name: I
// Public signature: /I|null[0]
class I : Java1, KotlinInterface {
// CHECK:
// Mangled name: I#<init>(){}
// Public signature: /I.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: I#foo(kotlin.Int){}
// Public signature: /I.foo|-104159190164110731[0]
// Public signature debug description: foo(kotlin.Int){}
override fun foo(a: Int): Unit
// CHECK:
// Mangled name: I{}a
// Public signature: /I.a|-1200697420457237799[0]
// Public signature debug description: {}a
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
override get(): Int
// CHECK:
// Mangled name: I{}b
// Public signature: /I.b|772347207915745207[0]
// Public signature debug description: {}b
override var b: Int
// CHECK JVM_IR:
// Mangled name: I#<get-b>(){}kotlin.Int
// Public signature: /I.b.<get-b>|-2902143276921469679[0]
// Public signature debug description: <get-b>(){}kotlin.Int
override get(): Int
// CHECK:
// Mangled name: I#<set-b>(kotlin.Int){}
// Public signature: /I.b.<set-b>|393614520529327556[0]
// Public signature debug description: <set-b>(kotlin.Int){}
override set(value: Int): Unit
}
// CHECK:
// Mangled name: KotlinInterface
// Public signature: /KotlinInterface|null[0]
interface KotlinInterface {
// CHECK:
// Mangled name: KotlinInterface#foo(kotlin.Int){}
// Public signature: /KotlinInterface.foo|-104159190164110731[0]
// Public signature debug description: foo(kotlin.Int){}
abstract fun foo(a: Int): Unit
// CHECK:
// Mangled name: KotlinInterface{}a
// Public signature: /KotlinInterface.a|-1200697420457237799[0]
// Public signature debug description: {}a
abstract val a: Int
// CHECK JVM_IR:
// Mangled name: KotlinInterface#<get-a>(){}kotlin.Int
// Public signature: /KotlinInterface.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
abstract get
// CHECK:
// Mangled name: KotlinInterface{}b
// Public signature: /KotlinInterface.b|772347207915745207[0]
// Public signature debug description: {}b
abstract val b: Int
// CHECK JVM_IR:
// Mangled name: KotlinInterface#<get-b>(){}kotlin.Int
// Public signature: /KotlinInterface.b.<get-b>|-2902143276921469679[0]
// Public signature debug description: <get-b>(){}kotlin.Int
abstract get
}
// CHECK:
// Mangled name: #test(B;C;D;E;F;G;H;I){}
// Public signature: /test|2768829396992774586[0]
// Public signature debug description: test(B;C;D;E;F;G;H;I){}
fun test(b: B, c: C, d: D, e: E, f: F, g: G, h: H, i: I): Unit
@@ -0,0 +1,473 @@
FILE fqName:<root> fileName:/1.kt
CLASS CLASS name:A modality:OPEN 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:OPEN visibility:public superTypes:[<root>.Java2]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.Java1) returnType:@[EnhancedNullability] kotlin.String? [fake_override]
annotations:
Nullable(value = <null>)
overridden:
public open fun bar (): @[EnhancedNullability] kotlin.String? declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<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>.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, s:@[EnhancedNullability] kotlin.String?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (s: @[EnhancedNullability] kotlin.String?): kotlin.Unit declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:s index:0 type:@[EnhancedNullability] kotlin.String?
annotations:
Nullable(value = <null>)
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
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:bar visibility:public modality:OPEN <> ($this:<root>.B) returnType:kotlin.String
overridden:
public open fun bar (): @[EnhancedNullability] kotlin.String? declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.B
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar (): kotlin.String declared in <root>.B'
CONST String type=kotlin.String value="2"
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.B, s:kotlin.String?) returnType:kotlin.Unit
overridden:
public open fun foo (s: @[EnhancedNullability] kotlin.String?): kotlin.Unit declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.B
VALUE_PARAMETER name:s index:0 type:kotlin.String?
BLOCK_BODY
CLASS CLASS name:C modality:FINAL visibility:public superTypes:[<root>.Java3]
$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>.Java3'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:C modality:FINAL visibility:public superTypes:[<root>.Java3]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.Java3) returnType:@[EnhancedNullability] kotlin.String? [fake_override]
annotations:
Override
overridden:
public open fun bar (): @[EnhancedNullability] kotlin.String? declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<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:public modality:OPEN <> ($this:<root>.Java3, s:@[EnhancedNullability] kotlin.String?) returnType:kotlin.Unit [fake_override]
annotations:
Override
overridden:
public open fun foo (s: @[EnhancedNullability] kotlin.String?): kotlin.Unit declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.Java3
VALUE_PARAMETER name:s index:0 type:@[EnhancedNullability] kotlin.String?
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: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: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:bar visibility:public modality:OPEN <> ($this:<root>.D) returnType:kotlin.String
overridden:
public open fun bar (): @[EnhancedNullability] kotlin.String? declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.D
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar (): kotlin.String declared in <root>.D'
CONST String type=kotlin.String value="3"
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.D, s:kotlin.String?) returnType:kotlin.Unit
overridden:
public open fun foo (s: @[EnhancedNullability] kotlin.String?): kotlin.Unit declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.D
VALUE_PARAMETER name:s index:0 type:kotlin.String?
BLOCK_BODY
CLASS CLASS name:E modality:ABSTRACT visibility:public superTypes:[<root>.Java2; <root>.Java4]
$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>.Java2'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:E modality:ABSTRACT visibility:public superTypes:[<root>.Java2; <root>.Java4]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.Java1) returnType:@[EnhancedNullability] kotlin.String? [fake_override]
annotations:
Nullable(value = <null>)
overridden:
public open fun bar (): @[EnhancedNullability] kotlin.String? declared in <root>.Java2
public abstract fun bar (): @[FlexibleNullability] kotlin.Any? declared in <root>.Java4
$this: VALUE_PARAMETER name:<this> type:<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>.Java2
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:ABSTRACT <> ($this:<root>.Java4, s:@[FlexibleNullability] kotlin.Any?) returnType:kotlin.Unit [fake_override]
overridden:
public abstract fun foo (s: @[FlexibleNullability] kotlin.Any?): kotlin.Unit declared in <root>.Java4
$this: VALUE_PARAMETER name:<this> type:<root>.Java4
VALUE_PARAMETER name:s index:0 type:@[FlexibleNullability] kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:public modality:OPEN <> ($this:<root>.Java1, s:@[EnhancedNullability] kotlin.String?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (s: @[EnhancedNullability] kotlin.String?): kotlin.Unit declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:s index:0 type:@[EnhancedNullability] kotlin.String?
annotations:
Nullable(value = <null>)
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
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>.Java2
public open fun toString (): kotlin.String declared in <root>.Java4
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:F modality:FINAL visibility:public superTypes:[<root>.Java2; <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>.Java2'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:F modality:FINAL visibility:public superTypes:[<root>.Java2; <root>.Java4]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.Java1) returnType:@[EnhancedNullability] kotlin.String? [fake_override]
annotations:
Nullable(value = <null>)
overridden:
public open fun bar (): @[EnhancedNullability] kotlin.String? declared in <root>.Java2
public abstract fun bar (): @[FlexibleNullability] kotlin.Any? declared in <root>.Java4
$this: VALUE_PARAMETER name:<this> type:<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>.Java2
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>.Java1, s:@[EnhancedNullability] kotlin.String?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (s: @[EnhancedNullability] kotlin.String?): kotlin.Unit declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:s index:0 type:@[EnhancedNullability] kotlin.String?
annotations:
Nullable(value = <null>)
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
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>.Java2
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>.F, s:kotlin.Any?) returnType:kotlin.Unit
overridden:
public abstract fun foo (s: @[FlexibleNullability] kotlin.Any?): kotlin.Unit declared in <root>.Java4
$this: VALUE_PARAMETER name:<this> type:<root>.F
VALUE_PARAMETER name:s index:0 type:kotlin.Any?
BLOCK_BODY
CLASS CLASS name:G modality:ABSTRACT visibility:public superTypes:[<root>.Java2; <root>.KotlinInterface]
$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>.Java2'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:G modality:ABSTRACT visibility:public superTypes:[<root>.Java2; <root>.KotlinInterface]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.Java1) returnType:@[EnhancedNullability] kotlin.String? [fake_override]
annotations:
Nullable(value = <null>)
overridden:
public open fun bar (): @[EnhancedNullability] kotlin.String? declared in <root>.Java2
public abstract fun bar (): kotlin.Any? declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<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>.Java2
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.KotlinInterface
$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>.KotlinInterface, s:kotlin.Any) returnType:kotlin.Unit [fake_override]
overridden:
public abstract fun foo (s: kotlin.Any): kotlin.Unit declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
VALUE_PARAMETER name:s index:0 type:kotlin.Any
FUN FAKE_OVERRIDE name:foo visibility:public modality:OPEN <> ($this:<root>.Java1, s:@[EnhancedNullability] kotlin.String?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (s: @[EnhancedNullability] kotlin.String?): kotlin.Unit declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:s index:0 type:@[EnhancedNullability] kotlin.String?
annotations:
Nullable(value = <null>)
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
public open fun hashCode (): kotlin.Int declared in <root>.KotlinInterface
$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
public open fun toString (): kotlin.String declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
PROPERTY FAKE_OVERRIDE name:nullableString visibility:public modality:ABSTRACT [fake_override,val]
overridden:
public abstract nullableString: kotlin.Any
FUN FAKE_OVERRIDE name:<get-nullableString> visibility:public modality:ABSTRACT <> ($this:<root>.KotlinInterface) returnType:kotlin.Any [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:nullableString visibility:public modality:ABSTRACT [fake_override,val]
overridden:
public abstract fun <get-nullableString> (): kotlin.Any declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
CLASS CLASS name:H modality:FINAL visibility:public superTypes:[<root>.Java2; <root>.KotlinInterface]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.H
PROPERTY name:nullableString visibility:public modality:OPEN [val]
overridden:
public abstract nullableString: kotlin.Any
FIELD PROPERTY_BACKING_FIELD name:nullableString type:kotlin.Any visibility:private [final]
EXPRESSION_BODY
GET_VAR 'nullableString: kotlin.Any declared in <root>.H.<init>' type=kotlin.Any origin=INITIALIZE_PROPERTY_FROM_PARAMETER
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-nullableString> visibility:public modality:OPEN <> ($this:<root>.H) returnType:kotlin.Any
correspondingProperty: PROPERTY name:nullableString visibility:public modality:OPEN [val]
overridden:
public abstract fun <get-nullableString> (): kotlin.Any declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.H
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun <get-nullableString> (): kotlin.Any declared in <root>.H'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:nullableString type:kotlin.Any visibility:private [final]' type=kotlin.Any origin=null
receiver: GET_VAR '<this>: <root>.H declared in <root>.H.<get-nullableString>' type=<root>.H origin=null
CONSTRUCTOR visibility:public <> (nullableString:kotlin.Any) returnType:<root>.H [primary]
VALUE_PARAMETER name:nullableString index:0 type:kotlin.Any
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java2'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:H modality:FINAL visibility:public superTypes:[<root>.Java2; <root>.KotlinInterface]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.Java1) returnType:@[EnhancedNullability] kotlin.String? [fake_override]
annotations:
Nullable(value = <null>)
overridden:
public open fun bar (): @[EnhancedNullability] kotlin.String? declared in <root>.Java2
public abstract fun bar (): kotlin.Any? declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<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>.Java2
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.KotlinInterface
$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, s:@[EnhancedNullability] kotlin.String?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (s: @[EnhancedNullability] kotlin.String?): kotlin.Unit declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:s index:0 type:@[EnhancedNullability] kotlin.String?
annotations:
Nullable(value = <null>)
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
public open fun hashCode (): kotlin.Int declared in <root>.KotlinInterface
$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
public open fun toString (): kotlin.String declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.H, s:kotlin.Any) returnType:kotlin.Unit
overridden:
public abstract fun foo (s: kotlin.Any): kotlin.Unit declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.H
VALUE_PARAMETER name:s index:0 type:kotlin.Any
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:bar visibility:public modality:OPEN <> ($this:<root>.Java1) returnType:@[EnhancedNullability] kotlin.String? [fake_override]
annotations:
Nullable(value = <null>)
overridden:
public open fun bar (): @[EnhancedNullability] kotlin.String? declared in <root>.Java5
$this: VALUE_PARAMETER name:<this> type:<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>.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>.Java1, s:@[EnhancedNullability] kotlin.String?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (s: @[EnhancedNullability] kotlin.String?): kotlin.Unit declared in <root>.Java5
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:s index:0 type:@[EnhancedNullability] kotlin.String?
annotations:
Nullable(value = <null>)
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 INTERFACE name:KotlinInterface modality:ABSTRACT visibility:public superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.KotlinInterface
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:bar visibility:public modality:ABSTRACT <> ($this:<root>.KotlinInterface) returnType:kotlin.Any?
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
FUN name:foo visibility:public modality:ABSTRACT <> ($this:<root>.KotlinInterface, s:kotlin.Any) returnType:kotlin.Unit
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
VALUE_PARAMETER name:s index:0 type:kotlin.Any
PROPERTY name:nullableString visibility:public modality:ABSTRACT [val]
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-nullableString> visibility:public modality:ABSTRACT <> ($this:<root>.KotlinInterface) returnType:kotlin.Any
correspondingProperty: PROPERTY name:nullableString visibility:public modality:ABSTRACT [val]
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
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
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:nullableString type:@[EnhancedNullability] kotlin.String? visibility:public' type=@[EnhancedNullability] kotlin.String? origin=null
receiver: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
CALL 'public open fun foo (s: @[EnhancedNullability] kotlin.String?): 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
s: CONST String type=kotlin.String value=""
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun bar (): @[EnhancedNullability] kotlin.String? declared in <root>.A' type=@[EnhancedNullability] kotlin.String? 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:nullableString type:@[EnhancedNullability] kotlin.String? visibility:public' type=@[EnhancedNullability] kotlin.String? origin=null
receiver: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
CALL 'public open fun foo (s: kotlin.String?): 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
s: CONST String type=kotlin.String value=""
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun bar (): kotlin.String declared in <root>.B' type=kotlin.String 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:nullableString type:@[FlexibleNullability] kotlin.String? visibility:public' type=@[FlexibleNullability] kotlin.String? origin=null
receiver: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
CALL 'public open fun foo (s: @[EnhancedNullability] kotlin.String?): 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
s: CONST String type=kotlin.String value=""
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun bar (): @[EnhancedNullability] kotlin.String? declared in <root>.C' type=@[EnhancedNullability] kotlin.String? 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:nullableString type:@[FlexibleNullability] kotlin.String? visibility:public' type=@[FlexibleNullability] kotlin.String? origin=null
receiver: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
CALL 'public open fun foo (s: kotlin.String?): 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
s: CONST String type=kotlin.String value=""
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun bar (): kotlin.String declared in <root>.D' type=kotlin.String 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:nullableString type:@[EnhancedNullability] kotlin.String? visibility:public' type=@[EnhancedNullability] kotlin.String? origin=null
receiver: GET_VAR 'e: <root>.E declared in <root>.test' type=<root>.E origin=null
CALL 'public open fun foo (s: @[EnhancedNullability] kotlin.String?): 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
s: CONST String type=kotlin.String value=""
CALL 'public abstract fun foo (s: @[FlexibleNullability] kotlin.Any?): 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
s: CONST Int type=kotlin.Int value=1
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun bar (): @[EnhancedNullability] kotlin.String? declared in <root>.E' type=@[EnhancedNullability] kotlin.String? 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:nullableString type:@[EnhancedNullability] kotlin.String? visibility:public' type=@[EnhancedNullability] kotlin.String? origin=null
receiver: GET_VAR 'f: <root>.F declared in <root>.test' type=<root>.F origin=null
CALL 'public open fun foo (s: @[EnhancedNullability] kotlin.String?): 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
s: CONST String type=kotlin.String value=""
CALL 'public open fun foo (s: kotlin.Any?): 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
s: CONST Int type=kotlin.Int value=1
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun bar (): @[EnhancedNullability] kotlin.String? declared in <root>.F' type=@[EnhancedNullability] kotlin.String? 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:nullableString type:@[EnhancedNullability] kotlin.String? visibility:public' type=@[EnhancedNullability] kotlin.String? origin=null
receiver: GET_VAR 'g: <root>.G declared in <root>.test' type=<root>.G origin=null
CALL 'public abstract fun foo (s: kotlin.Any): 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
s: CONST Int type=kotlin.Int value=1
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun bar (): @[EnhancedNullability] kotlin.String? declared in <root>.G' type=@[EnhancedNullability] kotlin.String? 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-nullableString> (): kotlin.Any declared in <root>.H' type=kotlin.Any origin=GET_PROPERTY
$this: GET_VAR 'h: <root>.H declared in <root>.test' type=<root>.H origin=null
CALL 'public open fun foo (s: kotlin.Any): 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
s: CONST Int type=kotlin.Int value=1
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun bar (): @[EnhancedNullability] kotlin.String? declared in <root>.H' type=@[EnhancedNullability] kotlin.String? 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:nullableString type:@[EnhancedNullability] kotlin.String? visibility:public' type=@[EnhancedNullability] kotlin.String? origin=null
receiver: GET_VAR 'i: <root>.I declared in <root>.test' type=<root>.I origin=null
CALL 'public open fun foo (s: @[EnhancedNullability] kotlin.String?): 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
s: CONST String type=kotlin.String value=""
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun bar (): @[EnhancedNullability] kotlin.String? declared in <root>.I' type=@[EnhancedNullability] kotlin.String? origin=null
$this: GET_VAR 'i: <root>.I declared in <root>.test' type=<root>.I origin=null
@@ -0,0 +1,146 @@
open class A : Java2 {
constructor() /* primary */ {
super/*Java2*/()
/* <init>() */
}
}
class B : Java2 {
constructor() /* primary */ {
super/*Java2*/()
/* <init>() */
}
override fun bar(): String {
return "2"
}
override fun foo(s: String?) {
}
}
class C : Java3 {
constructor() /* primary */ {
super/*Java3*/()
/* <init>() */
}
}
class D : Java3 {
constructor() /* primary */ {
super/*Java3*/()
/* <init>() */
}
override fun bar(): String {
return "3"
}
override fun foo(s: String?) {
}
}
abstract class E : Java2, Java4 {
constructor() /* primary */ {
super/*Java2*/()
/* <init>() */
}
}
class F : Java2, Java4 {
constructor() /* primary */ {
super/*Java2*/()
/* <init>() */
}
override fun foo(s: Any?) {
}
}
abstract class G : Java2, KotlinInterface {
constructor() /* primary */ {
super/*Java2*/()
/* <init>() */
}
}
class H : Java2, KotlinInterface {
override val nullableString: Any
field = nullableString
override get
constructor(nullableString: Any) /* primary */ {
super/*Java2*/()
/* <init>() */
}
override fun foo(s: Any) {
}
}
class I : Java5 {
constructor() /* primary */ {
super/*Java5*/()
/* <init>() */
}
}
interface KotlinInterface {
abstract fun bar(): Any?
abstract fun foo(s: Any)
abstract val nullableString: Any
abstract get
}
fun test(a: A, b: B, c: C, d: D, e: E, f: F, g: G, h: H, i: I) {
a.#nullableString /*~> Unit */
a.foo(s = "")
a.bar() /*~> Unit */
b.#nullableString /*~> Unit */
b.foo(s = "")
b.bar() /*~> Unit */
c.#nullableString /*~> Unit */
c.foo(s = "")
c.bar() /*~> Unit */
d.#nullableString /*~> Unit */
d.foo(s = "")
d.bar() /*~> Unit */
e.#nullableString /*~> Unit */
e.foo(s = "")
e.foo(s = 1)
e.bar() /*~> Unit */
f.#nullableString /*~> Unit */
f.foo(s = "")
f.foo(s = 1)
f.bar() /*~> Unit */
g.#nullableString /*~> Unit */
g.foo(s = 1)
g.bar() /*~> Unit */
h.<get-nullableString>() /*~> Unit */
h.foo(s = 1)
h.bar() /*~> Unit */
i.#nullableString /*~> Unit */
i.foo(s = "")
i.bar() /*~> Unit */
}
@@ -0,0 +1,514 @@
FILE fqName:<root> fileName:/1.kt
CLASS CLASS name:A modality:OPEN 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:OPEN visibility:public superTypes:[<root>.Java2]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.Java1) returnType:@[EnhancedNullability] kotlin.String? [fake_override]
annotations:
Nullable(value = <null>)
overridden:
public open fun bar (): @[EnhancedNullability] kotlin.String? declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<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>.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, s:@[EnhancedNullability] kotlin.String?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (s: @[EnhancedNullability] kotlin.String?): kotlin.Unit declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:s index:0 type:@[EnhancedNullability] kotlin.String?
annotations:
Nullable(value = <null>)
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:nullableString visibility:public modality:FINAL [fake_override,var]
annotations:
Nullable(value = <null>)
overridden:
public final nullableString: @[EnhancedNullability] kotlin.String?
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: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:bar visibility:public modality:OPEN <> ($this:<root>.B) returnType:kotlin.String
overridden:
public open fun bar (): @[EnhancedNullability] kotlin.String? declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.B
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar (): kotlin.String declared in <root>.B'
CONST String type=kotlin.String value="2"
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.B, s:kotlin.String?) returnType:kotlin.Unit
overridden:
public open fun foo (s: @[EnhancedNullability] kotlin.String?): kotlin.Unit declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.B
VALUE_PARAMETER name:s index:0 type:kotlin.String?
BLOCK_BODY
PROPERTY FAKE_OVERRIDE name:nullableString visibility:public modality:FINAL [fake_override,var]
annotations:
Nullable(value = <null>)
overridden:
public final nullableString: @[EnhancedNullability] kotlin.String?
CLASS CLASS name:C modality:FINAL visibility:public superTypes:[<root>.Java3]
$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>.Java3'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:C modality:FINAL visibility:public superTypes:[<root>.Java3]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.Java3) returnType:@[EnhancedNullability] kotlin.String? [fake_override]
annotations:
Override
overridden:
public open fun bar (): @[EnhancedNullability] kotlin.String? declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<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:public modality:OPEN <> ($this:<root>.Java3, s:@[EnhancedNullability] kotlin.String?) returnType:kotlin.Unit [fake_override]
annotations:
Override
overridden:
public open fun foo (s: @[EnhancedNullability] kotlin.String?): kotlin.Unit declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.Java3
VALUE_PARAMETER name:s index:0 type:@[EnhancedNullability] kotlin.String?
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:nullableString visibility:public modality:FINAL [fake_override,var]
overridden:
public final nullableString: @[EnhancedNullability] kotlin.String?
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: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:bar visibility:public modality:OPEN <> ($this:<root>.D) returnType:kotlin.String
overridden:
public open fun bar (): @[EnhancedNullability] kotlin.String? declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.D
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar (): kotlin.String declared in <root>.D'
CONST String type=kotlin.String value="3"
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.D, s:kotlin.String?) returnType:kotlin.Unit
overridden:
public open fun foo (s: @[EnhancedNullability] kotlin.String?): kotlin.Unit declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.D
VALUE_PARAMETER name:s index:0 type:kotlin.String?
BLOCK_BODY
PROPERTY FAKE_OVERRIDE name:nullableString visibility:public modality:FINAL [fake_override,var]
overridden:
public final nullableString: @[EnhancedNullability] kotlin.String?
CLASS CLASS name:E modality:ABSTRACT visibility:public superTypes:[<root>.Java2; <root>.Java4]
$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>.Java2'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:E modality:ABSTRACT visibility:public superTypes:[<root>.Java2; <root>.Java4]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.Java1) returnType:@[EnhancedNullability] kotlin.String? [fake_override]
annotations:
Nullable(value = <null>)
overridden:
public open fun bar (): @[EnhancedNullability] kotlin.String? declared in <root>.Java2
public abstract fun bar (): @[FlexibleNullability] kotlin.Any? declared in <root>.Java4
$this: VALUE_PARAMETER name:<this> type:<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>.Java2
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:ABSTRACT <> ($this:<root>.Java4, s:@[FlexibleNullability] kotlin.Any?) returnType:kotlin.Unit [fake_override]
overridden:
public abstract fun foo (s: @[FlexibleNullability] kotlin.Any?): kotlin.Unit declared in <root>.Java4
$this: VALUE_PARAMETER name:<this> type:<root>.Java4
VALUE_PARAMETER name:s index:0 type:@[FlexibleNullability] kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:public modality:OPEN <> ($this:<root>.Java1, s:@[EnhancedNullability] kotlin.String?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (s: @[EnhancedNullability] kotlin.String?): kotlin.Unit declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:s index:0 type:@[EnhancedNullability] kotlin.String?
annotations:
Nullable(value = <null>)
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
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>.Java2
public open fun toString (): kotlin.String declared in <root>.Java4
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
PROPERTY FAKE_OVERRIDE name:nullableString visibility:public modality:FINAL [fake_override,var]
annotations:
Nullable(value = <null>)
overridden:
public final nullableString: @[EnhancedNullability] kotlin.String?
CLASS CLASS name:F modality:FINAL visibility:public superTypes:[<root>.Java2; <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>.Java2'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:F modality:FINAL visibility:public superTypes:[<root>.Java2; <root>.Java4]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.Java1) returnType:@[EnhancedNullability] kotlin.String? [fake_override]
annotations:
Nullable(value = <null>)
overridden:
public open fun bar (): @[EnhancedNullability] kotlin.String? declared in <root>.Java2
public abstract fun bar (): @[FlexibleNullability] kotlin.Any? declared in <root>.Java4
$this: VALUE_PARAMETER name:<this> type:<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>.Java2
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>.Java1, s:@[EnhancedNullability] kotlin.String?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (s: @[EnhancedNullability] kotlin.String?): kotlin.Unit declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:s index:0 type:@[EnhancedNullability] kotlin.String?
annotations:
Nullable(value = <null>)
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
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>.Java2
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>.F, s:kotlin.Any?) returnType:kotlin.Unit
overridden:
public abstract fun foo (s: @[FlexibleNullability] kotlin.Any?): kotlin.Unit declared in <root>.Java4
$this: VALUE_PARAMETER name:<this> type:<root>.F
VALUE_PARAMETER name:s index:0 type:kotlin.Any?
BLOCK_BODY
PROPERTY FAKE_OVERRIDE name:nullableString visibility:public modality:FINAL [fake_override,var]
annotations:
Nullable(value = <null>)
overridden:
public final nullableString: @[EnhancedNullability] kotlin.String?
CLASS CLASS name:G modality:ABSTRACT visibility:public superTypes:[<root>.Java2; <root>.KotlinInterface]
$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>.Java2'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:G modality:ABSTRACT visibility:public superTypes:[<root>.Java2; <root>.KotlinInterface]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.Java1) returnType:@[EnhancedNullability] kotlin.String? [fake_override]
annotations:
Nullable(value = <null>)
overridden:
public open fun bar (): @[EnhancedNullability] kotlin.String? declared in <root>.Java2
public abstract fun bar (): kotlin.Any? declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<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>.Java2
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.KotlinInterface
$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>.KotlinInterface, s:kotlin.Any) returnType:kotlin.Unit [fake_override]
overridden:
public abstract fun foo (s: kotlin.Any): kotlin.Unit declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
VALUE_PARAMETER name:s index:0 type:kotlin.Any
FUN FAKE_OVERRIDE name:foo visibility:public modality:OPEN <> ($this:<root>.Java1, s:@[EnhancedNullability] kotlin.String?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (s: @[EnhancedNullability] kotlin.String?): kotlin.Unit declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:s index:0 type:@[EnhancedNullability] kotlin.String?
annotations:
Nullable(value = <null>)
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
public open fun hashCode (): kotlin.Int declared in <root>.KotlinInterface
$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
public open fun toString (): kotlin.String declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
PROPERTY FAKE_OVERRIDE name:nullableString visibility:public modality:ABSTRACT [fake_override,val]
overridden:
public abstract nullableString: kotlin.Any
FUN FAKE_OVERRIDE name:<get-nullableString> visibility:public modality:ABSTRACT <> ($this:<root>.KotlinInterface) returnType:kotlin.Any [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:nullableString visibility:public modality:ABSTRACT [fake_override,val]
overridden:
public abstract fun <get-nullableString> (): kotlin.Any declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
PROPERTY FAKE_OVERRIDE name:nullableString visibility:public modality:FINAL [fake_override,var]
annotations:
Nullable(value = <null>)
overridden:
public final nullableString: @[EnhancedNullability] kotlin.String?
CLASS CLASS name:H modality:FINAL visibility:public superTypes:[<root>.Java2; <root>.KotlinInterface]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.H
PROPERTY name:nullableString visibility:public modality:OPEN [val]
overridden:
public abstract nullableString: kotlin.Any
FIELD PROPERTY_BACKING_FIELD name:nullableString type:kotlin.Any visibility:private [final]
EXPRESSION_BODY
GET_VAR 'nullableString: kotlin.Any declared in <root>.H.<init>' type=kotlin.Any origin=INITIALIZE_PROPERTY_FROM_PARAMETER
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-nullableString> visibility:public modality:OPEN <> ($this:<root>.H) returnType:kotlin.Any
correspondingProperty: PROPERTY name:nullableString visibility:public modality:OPEN [val]
overridden:
public abstract fun <get-nullableString> (): kotlin.Any declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.H
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun <get-nullableString> (): kotlin.Any declared in <root>.H'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:nullableString type:kotlin.Any visibility:private [final]' type=kotlin.Any origin=null
receiver: GET_VAR '<this>: <root>.H declared in <root>.H.<get-nullableString>' type=<root>.H origin=null
CONSTRUCTOR visibility:public <> (nullableString:kotlin.Any) returnType:<root>.H [primary]
VALUE_PARAMETER name:nullableString index:0 type:kotlin.Any
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java2'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:H modality:FINAL visibility:public superTypes:[<root>.Java2; <root>.KotlinInterface]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.Java1) returnType:@[EnhancedNullability] kotlin.String? [fake_override]
annotations:
Nullable(value = <null>)
overridden:
public open fun bar (): @[EnhancedNullability] kotlin.String? declared in <root>.Java2
public abstract fun bar (): kotlin.Any? declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<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>.Java2
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.KotlinInterface
$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, s:@[EnhancedNullability] kotlin.String?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (s: @[EnhancedNullability] kotlin.String?): kotlin.Unit declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:s index:0 type:@[EnhancedNullability] kotlin.String?
annotations:
Nullable(value = <null>)
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
public open fun hashCode (): kotlin.Int declared in <root>.KotlinInterface
$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
public open fun toString (): kotlin.String declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.H, s:kotlin.Any) returnType:kotlin.Unit
overridden:
public abstract fun foo (s: kotlin.Any): kotlin.Unit declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.H
VALUE_PARAMETER name:s index:0 type:kotlin.Any
BLOCK_BODY
PROPERTY FAKE_OVERRIDE name:nullableString visibility:public modality:FINAL [fake_override,var]
annotations:
Nullable(value = <null>)
overridden:
public final nullableString: @[EnhancedNullability] kotlin.String?
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:bar visibility:public modality:OPEN <> ($this:<root>.Java1) returnType:@[EnhancedNullability] kotlin.String? [fake_override]
annotations:
Nullable(value = <null>)
overridden:
public open fun bar (): @[EnhancedNullability] kotlin.String? declared in <root>.Java5
$this: VALUE_PARAMETER name:<this> type:<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>.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>.Java1, s:@[EnhancedNullability] kotlin.String?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (s: @[EnhancedNullability] kotlin.String?): kotlin.Unit declared in <root>.Java5
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:s index:0 type:@[EnhancedNullability] kotlin.String?
annotations:
Nullable(value = <null>)
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:nullableString visibility:public modality:FINAL [fake_override,var]
annotations:
Nullable(value = <null>)
overridden:
public final nullableString: @[EnhancedNullability] kotlin.String?
CLASS INTERFACE name:KotlinInterface modality:ABSTRACT visibility:public superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.KotlinInterface
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:bar visibility:public modality:ABSTRACT <> ($this:<root>.KotlinInterface) returnType:kotlin.Any?
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
FUN name:foo visibility:public modality:ABSTRACT <> ($this:<root>.KotlinInterface, s:kotlin.Any) returnType:kotlin.Unit
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
VALUE_PARAMETER name:s index:0 type:kotlin.Any
PROPERTY name:nullableString visibility:public modality:ABSTRACT [val]
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-nullableString> visibility:public modality:ABSTRACT <> ($this:<root>.KotlinInterface) returnType:kotlin.Any
correspondingProperty: PROPERTY name:nullableString visibility:public modality:ABSTRACT [val]
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
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
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:nullableString type:@[EnhancedNullability] kotlin.String? visibility:public' type=@[EnhancedNullability] kotlin.String? origin=null
receiver: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
CALL 'public open fun foo (s: @[EnhancedNullability] kotlin.String?): 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
s: CONST String type=kotlin.String value=""
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun bar (): @[EnhancedNullability] kotlin.String? declared in <root>.A' type=@[EnhancedNullability] kotlin.String? 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:nullableString type:@[EnhancedNullability] kotlin.String? visibility:public' type=@[EnhancedNullability] kotlin.String? origin=null
receiver: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
CALL 'public open fun foo (s: kotlin.String?): 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
s: CONST String type=kotlin.String value=""
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun bar (): kotlin.String declared in <root>.B' type=kotlin.String 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:nullableString type:@[EnhancedNullability] kotlin.String? visibility:public' type=@[EnhancedNullability] kotlin.String? origin=null
receiver: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
CALL 'public open fun foo (s: @[EnhancedNullability] kotlin.String?): 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
s: CONST String type=kotlin.String value=""
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun bar (): @[EnhancedNullability] kotlin.String? declared in <root>.C' type=@[EnhancedNullability] kotlin.String? 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:nullableString type:@[EnhancedNullability] kotlin.String? visibility:public' type=@[EnhancedNullability] kotlin.String? origin=null
receiver: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
CALL 'public open fun foo (s: kotlin.String?): 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
s: CONST String type=kotlin.String value=""
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun bar (): kotlin.String declared in <root>.D' type=kotlin.String 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:nullableString type:@[EnhancedNullability] kotlin.String? visibility:public' type=@[EnhancedNullability] kotlin.String? origin=null
receiver: GET_VAR 'e: <root>.E declared in <root>.test' type=<root>.E origin=null
CALL 'public open fun foo (s: @[EnhancedNullability] kotlin.String?): 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
s: CONST String type=kotlin.String value=""
CALL 'public abstract fun foo (s: @[FlexibleNullability] kotlin.Any?): 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
s: CONST Int type=kotlin.Int value=1
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun bar (): @[EnhancedNullability] kotlin.String? declared in <root>.E' type=@[EnhancedNullability] kotlin.String? 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:nullableString type:@[EnhancedNullability] kotlin.String? visibility:public' type=@[EnhancedNullability] kotlin.String? origin=null
receiver: GET_VAR 'f: <root>.F declared in <root>.test' type=<root>.F origin=null
CALL 'public open fun foo (s: @[EnhancedNullability] kotlin.String?): 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
s: CONST String type=kotlin.String value=""
CALL 'public open fun foo (s: kotlin.Any?): 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
s: CONST Int type=kotlin.Int value=1
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun bar (): @[EnhancedNullability] kotlin.String? declared in <root>.F' type=@[EnhancedNullability] kotlin.String? 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:nullableString type:@[EnhancedNullability] kotlin.String? visibility:public' type=@[EnhancedNullability] kotlin.String? origin=null
receiver: GET_VAR 'g: <root>.G declared in <root>.test' type=<root>.G origin=null
CALL 'public abstract fun foo (s: kotlin.Any): 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
s: CONST Int type=kotlin.Int value=1
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun bar (): @[EnhancedNullability] kotlin.String? declared in <root>.G' type=@[EnhancedNullability] kotlin.String? 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:nullableString type:@[EnhancedNullability] kotlin.String? visibility:public' type=@[EnhancedNullability] kotlin.String? origin=null
receiver: GET_VAR 'h: <root>.H declared in <root>.test' type=<root>.H origin=null
CALL 'public open fun foo (s: kotlin.Any): 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
s: CONST Int type=kotlin.Int value=1
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun bar (): @[EnhancedNullability] kotlin.String? declared in <root>.H' type=@[EnhancedNullability] kotlin.String? 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:nullableString type:@[EnhancedNullability] kotlin.String? visibility:public' type=@[EnhancedNullability] kotlin.String? origin=null
receiver: GET_VAR 'i: <root>.I declared in <root>.test' type=<root>.I origin=null
CALL 'public open fun foo (s: @[EnhancedNullability] kotlin.String?): 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
s: CONST String type=kotlin.String value=""
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun bar (): @[EnhancedNullability] kotlin.String? declared in <root>.I' type=@[EnhancedNullability] kotlin.String? origin=null
$this: GET_VAR 'i: <root>.I declared in <root>.test' type=<root>.I origin=null
@@ -0,0 +1,111 @@
// TARGET_BACKEND: JVM
// FILE: Java1.java
import org.jetbrains.annotations.Nullable;
public class Java1 {
@Nullable
public String nullableString = "3";
@Nullable
public String bar() {
return nullableString;
}
public void foo(@Nullable String s) {}
}
// FILE: Java2.java
public class Java2 extends Java1 { }
// FILE: Java3.java
public class Java3 extends Java1 {
@Override
public String bar() {
return "2";
}
@Override
public void foo(String s){}
public String nullableString = "5";
}
// FILE: Java4.java
public interface Java4 {
public Object bar();
public void foo(Object s);
public Object nullableString = "6";
}
// FILE: Java5.java
public class Java5 extends A { }
// FILE: 1.kt
open class A : Java2() // Kotlin ← Java1 ← Java2
class B : Java2() {
override fun bar(): String {
return "2"
}
override fun foo(s: String?) { }
}
class C : Java3() // Kotlin ← Java1(override) ← Java2
class D : Java3() {
override fun foo(s: String?) { }
override fun bar(): String {
return "3"
}
}
abstract class E : Java2(), Java4 // Kotlin ← Java1, Java2 ← Java3
class F : Java2(), Java4 {
override fun foo(s: Any?) { }
}
abstract class G : Java2() , KotlinInterface //Kotlin ← Java, Kotlin2 ← Java2
class H(override val nullableString: Any) : Java2() , KotlinInterface {
override fun foo(s: Any) { }
}
class I : Java5() //Kotlin ← Java ← Kotlin ← Java
interface KotlinInterface {
fun bar(): Any?
fun foo(s: Any)
val nullableString: Any
}
fun test(a: A, b: B, c: C, d: D, e: E, f: F, g: G, h: H, i: I) {
a.nullableString
a.foo("")
a.bar()
b.nullableString
b.foo("")
b.bar()
c.nullableString
c.foo("")
c.bar()
d.nullableString
d.foo("")
d.bar()
e.nullableString
e.foo("")
e.foo(1)
e.bar()
f.nullableString
f.foo("")
f.foo(1)
f.bar()
g.nullableString
g.foo(1)
g.bar()
h.nullableString
h.foo(1)
h.bar()
i.nullableString
i.foo("")
i.bar()
}
@@ -0,0 +1,146 @@
open class A : Java2 {
constructor() /* primary */ {
super/*Java2*/()
/* <init>() */
}
}
class B : Java2 {
constructor() /* primary */ {
super/*Java2*/()
/* <init>() */
}
override fun bar(): String {
return "2"
}
override fun foo(s: String?) {
}
}
class C : Java3 {
constructor() /* primary */ {
super/*Java3*/()
/* <init>() */
}
}
class D : Java3 {
constructor() /* primary */ {
super/*Java3*/()
/* <init>() */
}
override fun bar(): String {
return "3"
}
override fun foo(s: String?) {
}
}
abstract class E : Java2, Java4 {
constructor() /* primary */ {
super/*Java2*/()
/* <init>() */
}
}
class F : Java2, Java4 {
constructor() /* primary */ {
super/*Java2*/()
/* <init>() */
}
override fun foo(s: Any?) {
}
}
abstract class G : Java2, KotlinInterface {
constructor() /* primary */ {
super/*Java2*/()
/* <init>() */
}
}
class H : Java2, KotlinInterface {
override val nullableString: Any
field = nullableString
override get
constructor(nullableString: Any) /* primary */ {
super/*Java2*/()
/* <init>() */
}
override fun foo(s: Any) {
}
}
class I : Java5 {
constructor() /* primary */ {
super/*Java5*/()
/* <init>() */
}
}
interface KotlinInterface {
abstract fun bar(): Any?
abstract fun foo(s: Any)
abstract val nullableString: Any
abstract get
}
fun test(a: A, b: B, c: C, d: D, e: E, f: F, g: G, h: H, i: I) {
a(super<A>).#nullableString /*~> Unit */
a.foo(s = "")
a.bar() /*~> Unit */
b(super<B>).#nullableString /*~> Unit */
b.foo(s = "")
b.bar() /*~> Unit */
c(super<C>).#nullableString /*~> Unit */
c.foo(s = "")
c.bar() /*~> Unit */
d(super<D>).#nullableString /*~> Unit */
d.foo(s = "")
d.bar() /*~> Unit */
e(super<E>).#nullableString /*~> Unit */
e.foo(s = "")
e.foo(s = 1)
e.bar() /*~> Unit */
f(super<F>).#nullableString /*~> Unit */
f.foo(s = "")
f.foo(s = 1)
f.bar() /*~> Unit */
g(super<G>).#nullableString /*~> Unit */
g.foo(s = 1)
g.bar() /*~> Unit */
h(super<H>).#nullableString /*~> Unit */
h.foo(s = 1)
h.bar() /*~> Unit */
i(super<I>).#nullableString /*~> Unit */
i.foo(s = "")
i.bar() /*~> Unit */
}
@@ -0,0 +1,298 @@
// CHECK:
// Mangled name: A
// Public signature: /A|null[0]
open class A : Java2 {
// CHECK:
// Mangled name: A#<init>(){}
// Public signature: /A.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: A#bar(){}kotlin.String?{EnhancedNullability}
// Public signature: /A.bar|7290041286951472444[0]
// Public signature debug description: bar(){}kotlin.String?{EnhancedNullability}
/* fake */ override fun bar(): @EnhancedNullability String?
// CHECK:
// Mangled name: A#foo(kotlin.String?{EnhancedNullability}){}
// Public signature: /A.foo|5501098881315880089[0]
// Public signature debug description: foo(kotlin.String?{EnhancedNullability}){}
/* fake */ override fun foo(s: @EnhancedNullability String?): Unit
}
// 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 JVM_IR:
// Mangled name: B#bar(){}kotlin.String
// Public signature: /B.bar|1214702899383694193[0]
// Public signature debug description: bar(){}kotlin.String
override fun bar(): String
// CHECK:
// Mangled name: B#foo(kotlin.String?){}
// Public signature: /B.foo|-7402282804178432687[0]
// Public signature debug description: foo(kotlin.String?){}
override fun foo(s: String?): Unit
}
// CHECK:
// Mangled name: C
// Public signature: /C|null[0]
class C : Java3 {
// CHECK:
// Mangled name: C#<init>(){}
// Public signature: /C.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: C#bar(){}kotlin.String?{EnhancedNullability}
// Public signature: /C.bar|7290041286951472444[0]
// Public signature debug description: bar(){}kotlin.String?{EnhancedNullability}
@Override
/* fake */ override fun bar(): @EnhancedNullability String?
// CHECK:
// Mangled name: C#foo(kotlin.String?{EnhancedNullability}){}
// Public signature: /C.foo|5501098881315880089[0]
// Public signature debug description: foo(kotlin.String?{EnhancedNullability}){}
@Override
/* fake */ override fun foo(s: @EnhancedNullability String?): 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 JVM_IR:
// Mangled name: D#bar(){}kotlin.String
// Public signature: /D.bar|1214702899383694193[0]
// Public signature debug description: bar(){}kotlin.String
override fun bar(): String
// CHECK:
// Mangled name: D#foo(kotlin.String?){}
// Public signature: /D.foo|-7402282804178432687[0]
// Public signature debug description: foo(kotlin.String?){}
override fun foo(s: String?): Unit
}
// CHECK:
// Mangled name: E
// Public signature: /E|null[0]
abstract class E : Java2, Java4 {
// CHECK:
// Mangled name: E#<init>(){}
// Public signature: /E.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: E#bar(){}kotlin.String?{EnhancedNullability}
// Public signature: /E.bar|7290041286951472444[0]
// Public signature debug description: bar(){}kotlin.String?{EnhancedNullability}
/* fake */ override fun bar(): @EnhancedNullability String?
// CHECK:
// Mangled name: E#foo(kotlin.Any?){}
// Public signature: /E.foo|-6211124056249407422[0]
// Public signature debug description: foo(kotlin.Any?){}
abstract /* fake */ override fun foo(s: Any?): Unit
// CHECK:
// Mangled name: E#foo(kotlin.String?{EnhancedNullability}){}
// Public signature: /E.foo|5501098881315880089[0]
// Public signature debug description: foo(kotlin.String?{EnhancedNullability}){}
/* fake */ override fun foo(s: @EnhancedNullability String?): Unit
}
// CHECK:
// Mangled name: F
// Public signature: /F|null[0]
class F : Java2, Java4 {
// CHECK:
// Mangled name: F#<init>(){}
// Public signature: /F.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: F#bar(){}kotlin.String?{EnhancedNullability}
// Public signature: /F.bar|7290041286951472444[0]
// Public signature debug description: bar(){}kotlin.String?{EnhancedNullability}
/* fake */ override fun bar(): @EnhancedNullability String?
// CHECK:
// Mangled name: F#foo(kotlin.String?{EnhancedNullability}){}
// Public signature: /F.foo|5501098881315880089[0]
// Public signature debug description: foo(kotlin.String?{EnhancedNullability}){}
/* fake */ override fun foo(s: @EnhancedNullability String?): Unit
// CHECK:
// Mangled name: F#foo(kotlin.Any?){}
// Public signature: /F.foo|-6211124056249407422[0]
// Public signature debug description: foo(kotlin.Any?){}
override fun foo(s: Any?): Unit
}
// CHECK:
// Mangled name: G
// Public signature: /G|null[0]
abstract class G : Java2, KotlinInterface {
// CHECK:
// Mangled name: G#<init>(){}
// Public signature: /G.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: G#bar(){}kotlin.String?{EnhancedNullability}
// Public signature: /G.bar|7290041286951472444[0]
// Public signature debug description: bar(){}kotlin.String?{EnhancedNullability}
/* fake */ override fun bar(): @EnhancedNullability String?
// CHECK:
// Mangled name: G#foo(kotlin.Any){}
// Public signature: /G.foo|-3585887913961670341[0]
// Public signature debug description: foo(kotlin.Any){}
abstract /* fake */ override fun foo(s: Any): Unit
// CHECK:
// Mangled name: G#foo(kotlin.String?{EnhancedNullability}){}
// Public signature: /G.foo|5501098881315880089[0]
// Public signature debug description: foo(kotlin.String?{EnhancedNullability}){}
/* fake */ override fun foo(s: @EnhancedNullability String?): Unit
// CHECK:
// Mangled name: G{}nullableString
// Public signature: /G.nullableString|-5031128639215906993[0]
// Public signature debug description: {}nullableString
abstract /* fake */ override val nullableString: Any
// CHECK JVM_IR:
// Mangled name: G#<get-nullableString>(){}kotlin.Any
// Public signature: /G.nullableString.<get-nullableString>|1496833730388071426[0]
// Public signature debug description: <get-nullableString>(){}kotlin.Any
abstract /* fake */ override get(): Any
}
// CHECK:
// Mangled name: H
// Public signature: /H|null[0]
class H : Java2, KotlinInterface {
// CHECK:
// Mangled name: H{}nullableString
// Public signature: /H.nullableString|-5031128639215906993[0]
// Public signature debug description: {}nullableString
override val nullableString: Any
// CHECK JVM_IR:
// Mangled name: H#<get-nullableString>(){}kotlin.Any
// Public signature: /H.nullableString.<get-nullableString>|1496833730388071426[0]
// Public signature debug description: <get-nullableString>(){}kotlin.Any
override get
// CHECK:
// Mangled name: H#<init>(kotlin.Any){}
// Public signature: /H.<init>|4518179880532599055[0]
// Public signature debug description: <init>(kotlin.Any){}
constructor(nullableString: Any) /* primary */
// CHECK JVM_IR:
// Mangled name: H#bar(){}kotlin.String?{EnhancedNullability}
// Public signature: /H.bar|7290041286951472444[0]
// Public signature debug description: bar(){}kotlin.String?{EnhancedNullability}
/* fake */ override fun bar(): @EnhancedNullability String?
// CHECK:
// Mangled name: H#foo(kotlin.String?{EnhancedNullability}){}
// Public signature: /H.foo|5501098881315880089[0]
// Public signature debug description: foo(kotlin.String?{EnhancedNullability}){}
/* fake */ override fun foo(s: @EnhancedNullability String?): Unit
// CHECK:
// Mangled name: H#foo(kotlin.Any){}
// Public signature: /H.foo|-3585887913961670341[0]
// Public signature debug description: foo(kotlin.Any){}
override fun foo(s: Any): 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 JVM_IR:
// Mangled name: I#bar(){}kotlin.String?{EnhancedNullability}
// Public signature: /I.bar|7290041286951472444[0]
// Public signature debug description: bar(){}kotlin.String?{EnhancedNullability}
/* fake */ override fun bar(): @EnhancedNullability String?
// CHECK:
// Mangled name: I#foo(kotlin.String?{EnhancedNullability}){}
// Public signature: /I.foo|5501098881315880089[0]
// Public signature debug description: foo(kotlin.String?{EnhancedNullability}){}
/* fake */ override fun foo(s: @EnhancedNullability String?): Unit
}
// CHECK:
// Mangled name: KotlinInterface
// Public signature: /KotlinInterface|null[0]
interface KotlinInterface {
// CHECK JVM_IR:
// Mangled name: KotlinInterface#bar(){}kotlin.Any?
// Public signature: /KotlinInterface.bar|-8552338359875258022[0]
// Public signature debug description: bar(){}kotlin.Any?
abstract fun bar(): Any?
// CHECK:
// Mangled name: KotlinInterface#foo(kotlin.Any){}
// Public signature: /KotlinInterface.foo|-3585887913961670341[0]
// Public signature debug description: foo(kotlin.Any){}
abstract fun foo(s: Any): Unit
// CHECK:
// Mangled name: KotlinInterface{}nullableString
// Public signature: /KotlinInterface.nullableString|-5031128639215906993[0]
// Public signature debug description: {}nullableString
abstract val nullableString: Any
// CHECK JVM_IR:
// Mangled name: KotlinInterface#<get-nullableString>(){}kotlin.Any
// Public signature: /KotlinInterface.nullableString.<get-nullableString>|1496833730388071426[0]
// Public signature debug description: <get-nullableString>(){}kotlin.Any
abstract get
}
// 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,852 @@
FILE fqName:<root> fileName:/1.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:getB visibility:public modality:FINAL <> ($this:<root>.KotlinClass) returnType:kotlin.String [fake_override]
annotations:
JvmName(name = "getBJava")
overridden:
public final fun getB (): kotlin.String declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass
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:overloadMethod visibility:public modality:OPEN <> ($this:<root>.KotlinClass, first:kotlin.String, second:kotlin.String, third:kotlin.Int) returnType:kotlin.Unit [fake_override]
annotations:
JvmOverloads
overridden:
public open fun overloadMethod (first: kotlin.String, second: kotlin.String, third: kotlin.Int): kotlin.Unit declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass
VALUE_PARAMETER name:first index:0 type:kotlin.String
VALUE_PARAMETER name:second index:1 type:kotlin.String
VALUE_PARAMETER name:third index:2 type:kotlin.Int
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,val]
overridden:
public final a: kotlin.String
FUN FAKE_OVERRIDE name:<get-a> visibility:public modality:FINAL <> ($this:<root>.Java1) returnType:kotlin.String [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a visibility:public modality:FINAL [fake_override,val]
overridden:
public final fun <get-a> (): kotlin.String declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
PROPERTY FAKE_OVERRIDE name:c visibility:public modality:FINAL [fake_override,var]
overridden:
public final c: kotlin.String
FUN FAKE_OVERRIDE name:<get-c> visibility:public modality:FINAL <> ($this:<root>.Java1) returnType:kotlin.String [fake_override]
annotations:
JvmName(name = "getText")
correspondingProperty: PROPERTY FAKE_OVERRIDE name:c visibility:public modality:FINAL [fake_override,var]
overridden:
public final fun <get-c> (): kotlin.String declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
FUN FAKE_OVERRIDE name:<set-c> visibility:public modality:FINAL <> ($this:<root>.Java1, value:kotlin.String) returnType:kotlin.Unit [fake_override]
annotations:
JvmName(name = "setText")
correspondingProperty: PROPERTY FAKE_OVERRIDE name:c visibility:public modality:FINAL [fake_override,var]
overridden:
public final fun <set-c> (value: kotlin.String): kotlin.Unit declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:value index:0 type:kotlin.String
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:getB visibility:public modality:FINAL <> ($this:<root>.KotlinClass) returnType:kotlin.String [fake_override]
annotations:
JvmName(name = "getBJava")
overridden:
public final fun getB (): kotlin.String declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass
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:overloadMethod visibility:public modality:OPEN <> ($this:<root>.B, first:kotlin.String, second:kotlin.String, third:kotlin.Int) returnType:kotlin.Unit
overridden:
public open fun overloadMethod (first: kotlin.String, second: kotlin.String, third: kotlin.Int): kotlin.Unit declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.B
VALUE_PARAMETER name:first index:0 type:kotlin.String
VALUE_PARAMETER name:second index:1 type:kotlin.String
VALUE_PARAMETER name:third index:2 type:kotlin.Int
BLOCK_BODY
PROPERTY FAKE_OVERRIDE name:a visibility:public modality:FINAL [fake_override,val]
overridden:
public final a: kotlin.String
FUN FAKE_OVERRIDE name:<get-a> visibility:public modality:FINAL <> ($this:<root>.Java1) returnType:kotlin.String [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a visibility:public modality:FINAL [fake_override,val]
overridden:
public final fun <get-a> (): kotlin.String declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
PROPERTY FAKE_OVERRIDE name:c visibility:public modality:FINAL [fake_override,var]
overridden:
public final c: kotlin.String
FUN FAKE_OVERRIDE name:<get-c> visibility:public modality:FINAL <> ($this:<root>.Java1) returnType:kotlin.String [fake_override]
annotations:
JvmName(name = "getText")
correspondingProperty: PROPERTY FAKE_OVERRIDE name:c visibility:public modality:FINAL [fake_override,var]
overridden:
public final fun <get-c> (): kotlin.String declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
FUN FAKE_OVERRIDE name:<set-c> visibility:public modality:FINAL <> ($this:<root>.Java1, value:kotlin.String) returnType:kotlin.Unit [fake_override]
annotations:
JvmName(name = "setText")
correspondingProperty: PROPERTY FAKE_OVERRIDE name:c visibility:public modality:FINAL [fake_override,var]
overridden:
public final fun <set-c> (value: kotlin.String): kotlin.Unit declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:value index:0 type:kotlin.String
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:getB visibility:public modality:OPEN <> ($this:<root>.Java2) returnType:@[EnhancedNullability] kotlin.String [fake_override]
overridden:
public open fun getB (): @[EnhancedNullability] kotlin.String 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:overloadMethod visibility:public modality:OPEN <> ($this:<root>.Java2, first:@[EnhancedNullability] kotlin.String, second:@[EnhancedNullability] kotlin.String, third:kotlin.Int) returnType:kotlin.Unit [fake_override]
overridden:
public open fun overloadMethod (first: @[EnhancedNullability] kotlin.String, second: @[EnhancedNullability] kotlin.String, third: kotlin.Int): kotlin.Unit declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.Java2
VALUE_PARAMETER name:first index:0 type:@[EnhancedNullability] kotlin.String
VALUE_PARAMETER name:second index:1 type:@[EnhancedNullability] kotlin.String
VALUE_PARAMETER name:third index:2 type:kotlin.Int
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:OPEN [fake_override,val]
overridden:
public open a: @[FlexibleNullability] kotlin.String?
FUN FAKE_OVERRIDE name:<get-a> visibility:public modality:OPEN <> ($this:<root>.Java2) returnType:@[FlexibleNullability] kotlin.String? [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a visibility:public modality:OPEN [fake_override,val]
overridden:
public open fun <get-a> (): @[FlexibleNullability] kotlin.String? declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.Java2
PROPERTY FAKE_OVERRIDE name:c visibility:public modality:OPEN [fake_override,var]
overridden:
public open c: @[FlexibleNullability] kotlin.String?
FUN FAKE_OVERRIDE name:<get-c> visibility:public modality:OPEN <> ($this:<root>.Java2) returnType:@[FlexibleNullability] kotlin.String? [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:c visibility:public modality:OPEN [fake_override,var]
overridden:
public open fun <get-c> (): @[FlexibleNullability] kotlin.String? declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.Java2
FUN FAKE_OVERRIDE name:<set-c> visibility:public modality:OPEN <> ($this:<root>.Java2, text:@[FlexibleNullability] kotlin.String?) returnType:kotlin.Unit [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:c visibility:public modality:OPEN [fake_override,var]
overridden:
public open fun <set-c> (text: @[FlexibleNullability] kotlin.String?): kotlin.Unit declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.Java2
VALUE_PARAMETER name:text index:0 type:@[FlexibleNullability] kotlin.String?
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:getB visibility:public modality:OPEN <> ($this:<root>.Java2) returnType:@[EnhancedNullability] kotlin.String [fake_override]
overridden:
public open fun getB (): @[EnhancedNullability] kotlin.String 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
FUN name:overloadMethod visibility:public modality:OPEN <> ($this:<root>.D, first:kotlin.String, second:kotlin.String, third:kotlin.Int) returnType:kotlin.Unit
overridden:
public open fun overloadMethod (first: @[EnhancedNullability] kotlin.String, second: @[EnhancedNullability] kotlin.String, third: kotlin.Int): kotlin.Unit declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.D
VALUE_PARAMETER name:first index:0 type:kotlin.String
VALUE_PARAMETER name:second index:1 type:kotlin.String
VALUE_PARAMETER name:third index:2 type:kotlin.Int
BLOCK_BODY
PROPERTY FAKE_OVERRIDE name:c visibility:public modality:OPEN [fake_override,var]
overridden:
public open c: @[FlexibleNullability] kotlin.String?
FUN FAKE_OVERRIDE name:<get-c> visibility:public modality:OPEN <> ($this:<root>.Java2) returnType:@[FlexibleNullability] kotlin.String? [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:c visibility:public modality:OPEN [fake_override,var]
overridden:
public open fun <get-c> (): @[FlexibleNullability] kotlin.String? declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.Java2
FUN FAKE_OVERRIDE name:<set-c> visibility:public modality:OPEN <> ($this:<root>.Java2, text:@[FlexibleNullability] kotlin.String?) returnType:kotlin.Unit [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:c visibility:public modality:OPEN [fake_override,var]
overridden:
public open fun <set-c> (text: @[FlexibleNullability] kotlin.String?): kotlin.Unit declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.Java2
VALUE_PARAMETER name:text index:0 type:@[FlexibleNullability] kotlin.String?
PROPERTY name:a visibility:public modality:OPEN [val]
overridden:
public open a: @[FlexibleNullability] kotlin.String?
FUN name:<get-a> visibility:public modality:OPEN <> ($this:<root>.D) returnType:kotlin.String
correspondingProperty: PROPERTY name:a visibility:public modality:OPEN [val]
overridden:
public open fun <get-a> (): @[FlexibleNullability] kotlin.String? declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.D
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun <get-a> (): kotlin.String declared in <root>.D'
CONST String type=kotlin.String value="3"
CLASS CLASS name:E modality:ABSTRACT visibility:public superTypes:[<root>.Java1; <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>.Java1'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:E modality:ABSTRACT visibility:public superTypes:[<root>.Java1; <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>.Java1
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:public modality:ABSTRACT <> ($this:<root>.Java3) returnType:kotlin.Unit [fake_override]
overridden:
public abstract fun foo (): kotlin.Unit declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.Java3
FUN FAKE_OVERRIDE name:getB visibility:public modality:FINAL <> ($this:<root>.KotlinClass) returnType:kotlin.String [fake_override]
annotations:
JvmName(name = "getBJava")
overridden:
public final fun getB (): kotlin.String declared in <root>.Java1
public abstract fun getB (): @[FlexibleNullability] kotlin.String? declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass
FUN FAKE_OVERRIDE name:getC visibility:public modality:ABSTRACT <> ($this:<root>.Java3) returnType:@[FlexibleNullability] kotlin.String? [fake_override]
overridden:
public abstract fun getC (): @[FlexibleNullability] kotlin.String? 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>.Java1
public open fun hashCode (): kotlin.Int declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:overloadMethod visibility:public modality:OPEN <> ($this:<root>.KotlinClass, first:kotlin.String, second:kotlin.String, third:kotlin.Int) returnType:kotlin.Unit [fake_override]
annotations:
JvmOverloads
overridden:
public open fun overloadMethod (first: kotlin.String, second: kotlin.String, third: kotlin.Int): kotlin.Unit declared in <root>.Java1
public abstract fun overloadMethod (first: @[FlexibleNullability] kotlin.String?, second: @[FlexibleNullability] kotlin.String?, third: kotlin.Int): kotlin.Unit declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass
VALUE_PARAMETER name:first index:0 type:kotlin.String
VALUE_PARAMETER name:second index:1 type:kotlin.String
VALUE_PARAMETER name:third index:2 type:kotlin.Int
FUN FAKE_OVERRIDE name:setB visibility:public modality:ABSTRACT <> ($this:<root>.Java3, text:@[FlexibleNullability] kotlin.String?) returnType:kotlin.Unit [fake_override]
overridden:
public abstract fun setB (text: @[FlexibleNullability] kotlin.String?): kotlin.Unit declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.Java3
VALUE_PARAMETER name:text index:0 type:@[FlexibleNullability] kotlin.String?
FUN FAKE_OVERRIDE name:setC visibility:public modality:ABSTRACT <> ($this:<root>.Java3, text:@[FlexibleNullability] kotlin.String?) returnType:kotlin.Unit [fake_override]
overridden:
public abstract fun setC (text: @[FlexibleNullability] kotlin.String?): kotlin.Unit declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.Java3
VALUE_PARAMETER name:text index:0 type:@[FlexibleNullability] kotlin.String?
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
public open fun toString (): kotlin.String declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
PROPERTY FAKE_OVERRIDE name:a visibility:public modality:FINAL [fake_override,val]
overridden:
public final a: kotlin.String
FUN FAKE_OVERRIDE name:<get-a> visibility:public modality:FINAL <> ($this:<root>.Java1) returnType:kotlin.String [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a visibility:public modality:FINAL [fake_override,val]
overridden:
public final fun <get-a> (): kotlin.String declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
PROPERTY FAKE_OVERRIDE name:c visibility:public modality:FINAL [fake_override,var]
overridden:
public final c: kotlin.String
FUN FAKE_OVERRIDE name:<get-c> visibility:public modality:FINAL <> ($this:<root>.Java1) returnType:kotlin.String [fake_override]
annotations:
JvmName(name = "getText")
correspondingProperty: PROPERTY FAKE_OVERRIDE name:c visibility:public modality:FINAL [fake_override,var]
overridden:
public final fun <get-c> (): kotlin.String declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
FUN FAKE_OVERRIDE name:<set-c> visibility:public modality:FINAL <> ($this:<root>.Java1, value:kotlin.String) returnType:kotlin.Unit [fake_override]
annotations:
JvmName(name = "setText")
correspondingProperty: PROPERTY FAKE_OVERRIDE name:c visibility:public modality:FINAL [fake_override,var]
overridden:
public final fun <set-c> (value: kotlin.String): kotlin.Unit declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:value index:0 type:kotlin.String
CLASS CLASS name:F modality:FINAL visibility:public superTypes:[<root>.Java1; <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>.Java1'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:F modality:FINAL visibility:public superTypes:[<root>.Java1; <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>.Java1
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:getB visibility:public modality:FINAL <> ($this:<root>.KotlinClass) returnType:kotlin.String [fake_override]
annotations:
JvmName(name = "getBJava")
overridden:
public final fun getB (): kotlin.String declared in <root>.Java1
public abstract fun getB (): @[FlexibleNullability] kotlin.String? declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass
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
public open fun hashCode (): kotlin.Int declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:overloadMethod visibility:public modality:OPEN <> ($this:<root>.KotlinClass, first:kotlin.String, second:kotlin.String, third:kotlin.Int) returnType:kotlin.Unit [fake_override]
annotations:
JvmOverloads
overridden:
public open fun overloadMethod (first: kotlin.String, second: kotlin.String, third: kotlin.Int): kotlin.Unit declared in <root>.Java1
public abstract fun overloadMethod (first: @[FlexibleNullability] kotlin.String?, second: @[FlexibleNullability] kotlin.String?, third: kotlin.Int): kotlin.Unit declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass
VALUE_PARAMETER name:first index:0 type:kotlin.String
VALUE_PARAMETER name:second index:1 type:kotlin.String
VALUE_PARAMETER name:third index:2 type:kotlin.Int
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
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:
public abstract fun foo (): kotlin.Unit declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.F
BLOCK_BODY
FUN name:getC visibility:public modality:OPEN <> ($this:<root>.F) returnType:kotlin.String
overridden:
public abstract fun getC (): @[FlexibleNullability] kotlin.String? declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.F
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun getC (): kotlin.String declared in <root>.F'
CONST String type=kotlin.String value="5"
FUN name:setB visibility:public modality:OPEN <> ($this:<root>.F, text:kotlin.String) returnType:kotlin.Unit
overridden:
public abstract fun setB (text: @[FlexibleNullability] kotlin.String?): kotlin.Unit declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.F
VALUE_PARAMETER name:text index:0 type:kotlin.String
BLOCK_BODY
FUN name:setC visibility:public modality:OPEN <> ($this:<root>.F, text:kotlin.String) returnType:kotlin.Unit
overridden:
public abstract fun setC (text: @[FlexibleNullability] kotlin.String?): kotlin.Unit declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.F
VALUE_PARAMETER name:text index:0 type:kotlin.String
BLOCK_BODY
PROPERTY FAKE_OVERRIDE name:a visibility:public modality:FINAL [fake_override,val]
overridden:
public final a: kotlin.String
FUN FAKE_OVERRIDE name:<get-a> visibility:public modality:FINAL <> ($this:<root>.Java1) returnType:kotlin.String [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a visibility:public modality:FINAL [fake_override,val]
overridden:
public final fun <get-a> (): kotlin.String declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
PROPERTY FAKE_OVERRIDE name:c visibility:public modality:FINAL [fake_override,var]
overridden:
public final c: kotlin.String
FUN FAKE_OVERRIDE name:<get-c> visibility:public modality:FINAL <> ($this:<root>.Java1) returnType:kotlin.String [fake_override]
annotations:
JvmName(name = "getText")
correspondingProperty: PROPERTY FAKE_OVERRIDE name:c visibility:public modality:FINAL [fake_override,var]
overridden:
public final fun <get-c> (): kotlin.String declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
FUN FAKE_OVERRIDE name:<set-c> visibility:public modality:FINAL <> ($this:<root>.Java1, value:kotlin.String) returnType:kotlin.Unit [fake_override]
annotations:
JvmName(name = "setText")
correspondingProperty: PROPERTY FAKE_OVERRIDE name:c visibility:public modality:FINAL [fake_override,var]
overridden:
public final fun <set-c> (value: kotlin.String): kotlin.Unit declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:value index:0 type:kotlin.String
CLASS CLASS name:G modality:ABSTRACT visibility:public superTypes:[<root>.Java1; <root>.KotlinInterface]
$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>.Java1'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:G modality:ABSTRACT visibility:public superTypes:[<root>.Java1; <root>.KotlinInterface]'
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
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.KotlinInterface
$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>.KotlinInterface) returnType:kotlin.Unit [fake_override]
overridden:
public abstract fun foo (): kotlin.Unit declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
FUN FAKE_OVERRIDE name:getB visibility:public modality:FINAL <> ($this:<root>.KotlinClass) returnType:kotlin.String [fake_override]
annotations:
JvmName(name = "getBJava")
overridden:
public final fun getB (): kotlin.String declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass
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
public open fun hashCode (): kotlin.Int declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:overloadMethod visibility:public modality:ABSTRACT <> ($this:<root>.KotlinInterface, first:kotlin.String) returnType:kotlin.Unit [fake_override]
overridden:
public abstract fun overloadMethod (first: kotlin.String): kotlin.Unit declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
VALUE_PARAMETER name:first index:0 type:kotlin.String
FUN FAKE_OVERRIDE name:overloadMethod visibility:public modality:OPEN <> ($this:<root>.KotlinClass, first:kotlin.String, second:kotlin.String, third:kotlin.Int) returnType:kotlin.Unit [fake_override]
annotations:
JvmOverloads
overridden:
public open fun overloadMethod (first: kotlin.String, second: kotlin.String, third: kotlin.Int): kotlin.Unit declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass
VALUE_PARAMETER name:first index:0 type:kotlin.String
VALUE_PARAMETER name:second index:1 type:kotlin.String
VALUE_PARAMETER name:third index:2 type:kotlin.Int
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
public open fun toString (): kotlin.String declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
PROPERTY FAKE_OVERRIDE name:a visibility:public modality:FINAL [fake_override,val]
overridden:
public final a: kotlin.String
public abstract a: kotlin.String
FUN FAKE_OVERRIDE name:<get-a> visibility:public modality:FINAL <> ($this:<root>.Java1) returnType:kotlin.String [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a visibility:public modality:FINAL [fake_override,val]
overridden:
public final fun <get-a> (): kotlin.String declared in <root>.Java1
public abstract fun <get-a> (): kotlin.String declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
PROPERTY FAKE_OVERRIDE name:b visibility:public modality:ABSTRACT [fake_override,val]
overridden:
public abstract b: kotlin.String
FUN FAKE_OVERRIDE name:<get-b> visibility:public modality:ABSTRACT <> ($this:<root>.KotlinInterface) returnType:kotlin.String [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:b visibility:public modality:ABSTRACT [fake_override,val]
overridden:
public abstract fun <get-b> (): kotlin.String declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
PROPERTY FAKE_OVERRIDE name:c visibility:public modality:FINAL [fake_override,var]
overridden:
public final c: kotlin.String
public abstract c: kotlin.String
FUN FAKE_OVERRIDE name:<get-c> visibility:public modality:FINAL <> ($this:<root>.Java1) returnType:kotlin.String [fake_override]
annotations:
JvmName(name = "getText")
correspondingProperty: PROPERTY FAKE_OVERRIDE name:c visibility:public modality:FINAL [fake_override,var]
overridden:
public final fun <get-c> (): kotlin.String declared in <root>.Java1
public abstract fun <get-c> (): kotlin.String declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
FUN FAKE_OVERRIDE name:<set-c> visibility:public modality:FINAL <> ($this:<root>.Java1, value:kotlin.String) returnType:kotlin.Unit [fake_override]
annotations:
JvmName(name = "setText")
correspondingProperty: PROPERTY FAKE_OVERRIDE name:c visibility:public modality:FINAL [fake_override,var]
overridden:
public final fun <set-c> (value: kotlin.String): kotlin.Unit declared in <root>.Java1
public abstract fun <set-c> (<set-?>: kotlin.String): kotlin.Unit declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:value index:0 type:kotlin.String
CLASS CLASS name:H modality:FINAL visibility:public superTypes:[<root>.Java1; <root>.KotlinInterface]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.H
PROPERTY name:b visibility:public modality:OPEN [val]
overridden:
public abstract b: kotlin.String
FIELD PROPERTY_BACKING_FIELD name:b type:kotlin.String visibility:private [final]
EXPRESSION_BODY
GET_VAR 'b: kotlin.String declared in <root>.H.<init>' type=kotlin.String origin=INITIALIZE_PROPERTY_FROM_PARAMETER
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-b> visibility:public modality:OPEN <> ($this:<root>.H) returnType:kotlin.String
correspondingProperty: PROPERTY name:b visibility:public modality:OPEN [val]
overridden:
public abstract fun <get-b> (): kotlin.String declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.H
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun <get-b> (): kotlin.String declared in <root>.H'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:b type:kotlin.String visibility:private [final]' type=kotlin.String origin=null
receiver: GET_VAR '<this>: <root>.H declared in <root>.H.<get-b>' type=<root>.H origin=null
CONSTRUCTOR visibility:public <> (b:kotlin.String) returnType:<root>.H [primary]
VALUE_PARAMETER name:b index:0 type:kotlin.String
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java1'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:H modality:FINAL visibility:public superTypes:[<root>.Java1; <root>.KotlinInterface]'
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
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:getB visibility:public modality:FINAL <> ($this:<root>.KotlinClass) returnType:kotlin.String [fake_override]
annotations:
JvmName(name = "getBJava")
overridden:
public final fun getB (): kotlin.String declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass
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
public open fun hashCode (): kotlin.Int declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:overloadMethod visibility:public modality:OPEN <> ($this:<root>.KotlinClass, first:kotlin.String, second:kotlin.String, third:kotlin.Int) returnType:kotlin.Unit [fake_override]
annotations:
JvmOverloads
overridden:
public open fun overloadMethod (first: kotlin.String, second: kotlin.String, third: kotlin.Int): kotlin.Unit declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass
VALUE_PARAMETER name:first index:0 type:kotlin.String
VALUE_PARAMETER name:second index:1 type:kotlin.String
VALUE_PARAMETER name:third index:2 type:kotlin.Int
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
public open fun toString (): kotlin.String declared in <root>.KotlinInterface
$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>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.H
BLOCK_BODY
FUN name:overloadMethod visibility:public modality:OPEN <> ($this:<root>.H, first:kotlin.String) returnType:kotlin.Unit
overridden:
public abstract fun overloadMethod (first: kotlin.String): kotlin.Unit declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.H
VALUE_PARAMETER name:first index:0 type:kotlin.String
BLOCK_BODY
PROPERTY FAKE_OVERRIDE name:a visibility:public modality:FINAL [fake_override,val]
overridden:
public final a: kotlin.String
public abstract a: kotlin.String
FUN FAKE_OVERRIDE name:<get-a> visibility:public modality:FINAL <> ($this:<root>.Java1) returnType:kotlin.String [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a visibility:public modality:FINAL [fake_override,val]
overridden:
public final fun <get-a> (): kotlin.String declared in <root>.Java1
public abstract fun <get-a> (): kotlin.String declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
PROPERTY FAKE_OVERRIDE name:c visibility:public modality:FINAL [fake_override,var]
overridden:
public final c: kotlin.String
public abstract c: kotlin.String
FUN FAKE_OVERRIDE name:<get-c> visibility:public modality:FINAL <> ($this:<root>.Java1) returnType:kotlin.String [fake_override]
annotations:
JvmName(name = "getText")
correspondingProperty: PROPERTY FAKE_OVERRIDE name:c visibility:public modality:FINAL [fake_override,var]
overridden:
public final fun <get-c> (): kotlin.String declared in <root>.Java1
public abstract fun <get-c> (): kotlin.String declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
FUN FAKE_OVERRIDE name:<set-c> visibility:public modality:FINAL <> ($this:<root>.Java1, value:kotlin.String) returnType:kotlin.Unit [fake_override]
annotations:
JvmName(name = "setText")
correspondingProperty: PROPERTY FAKE_OVERRIDE name:c visibility:public modality:FINAL [fake_override,var]
overridden:
public final fun <set-c> (value: kotlin.String): kotlin.Unit declared in <root>.Java1
public abstract fun <set-c> (<set-?>: kotlin.String): kotlin.Unit declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:value index:0 type:kotlin.String
CLASS CLASS name:KotlinClass modality:OPEN visibility:public superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.KotlinClass
PROPERTY name:a visibility:public modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.String visibility:public [final]
annotations:
JvmField
EXPRESSION_BODY
CONST String type=kotlin.String value="1"
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-a> visibility:public modality:FINAL <> ($this:<root>.KotlinClass) returnType:kotlin.String
correspondingProperty: PROPERTY name:a visibility:public modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-a> (): kotlin.String declared in <root>.KotlinClass'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.String visibility:public [final]' type=kotlin.String origin=null
receiver: GET_VAR '<this>: <root>.KotlinClass declared in <root>.KotlinClass.<get-a>' type=<root>.KotlinClass origin=null
PROPERTY name:c visibility:public modality:FINAL [var]
FIELD PROPERTY_BACKING_FIELD name:c type:kotlin.String visibility:private
EXPRESSION_BODY
CONST String type=kotlin.String value="1"
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-c> visibility:public modality:FINAL <> ($this:<root>.KotlinClass) returnType:kotlin.String
annotations:
JvmName(name = "getText")
correspondingProperty: PROPERTY name:c visibility:public modality:FINAL [var]
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-c> (): kotlin.String declared in <root>.KotlinClass'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:c type:kotlin.String visibility:private' type=kotlin.String origin=null
receiver: GET_VAR '<this>: <root>.KotlinClass declared in <root>.KotlinClass.<get-c>' type=<root>.KotlinClass origin=null
FUN DEFAULT_PROPERTY_ACCESSOR name:<set-c> visibility:public modality:FINAL <> ($this:<root>.KotlinClass, <set-?>:kotlin.String) returnType:kotlin.Unit
annotations:
JvmName(name = "setText")
correspondingProperty: PROPERTY name:c visibility:public modality:FINAL [var]
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass
VALUE_PARAMETER name:<set-?> index:0 type:kotlin.String
BLOCK_BODY
SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:c type:kotlin.String visibility:private' type=kotlin.Unit origin=null
receiver: GET_VAR '<this>: <root>.KotlinClass declared in <root>.KotlinClass.<set-c>' type=<root>.KotlinClass origin=null
value: GET_VAR '<set-?>: kotlin.String declared in <root>.KotlinClass.<set-c>' type=kotlin.String origin=null
CLASS OBJECT name:Companion modality:FINAL visibility:public [companion] superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.KotlinClass.Companion
CONSTRUCTOR visibility:private <> () returnType:<root>.KotlinClass.Companion [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS OBJECT name:Companion modality:FINAL visibility:public [companion] 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:public modality:FINAL <> ($this:<root>.KotlinClass.Companion) returnType:kotlin.Unit
annotations:
JvmStatic
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass.Companion
BLOCK_BODY
CONSTRUCTOR visibility:public <> () returnType:<root>.KotlinClass [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:KotlinClass 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:getB visibility:public modality:FINAL <> ($this:<root>.KotlinClass) returnType:kotlin.String
annotations:
JvmName(name = "getBJava")
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun getB (): kotlin.String declared in <root>.KotlinClass'
CONST String type=kotlin.String value="b"
FUN name:overloadMethod visibility:public modality:OPEN <> ($this:<root>.KotlinClass, first:kotlin.String, second:kotlin.String, third:kotlin.Int) returnType:kotlin.Unit
annotations:
JvmOverloads
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass
VALUE_PARAMETER name:first index:0 type:kotlin.String
VALUE_PARAMETER name:second index:1 type:kotlin.String
EXPRESSION_BODY
CONST String type=kotlin.String value="text"
VALUE_PARAMETER name:third index:2 type:kotlin.Int
EXPRESSION_BODY
CONST Int type=kotlin.Int value=10
BLOCK_BODY
CLASS INTERFACE name:KotlinInterface modality:ABSTRACT visibility:public superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.KotlinInterface
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:ABSTRACT <> ($this:<root>.KotlinInterface) returnType:kotlin.Unit
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
FUN name:overloadMethod visibility:public modality:ABSTRACT <> ($this:<root>.KotlinInterface, first:kotlin.String) returnType:kotlin.Unit
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
VALUE_PARAMETER name:first index:0 type:kotlin.String
PROPERTY name:a visibility:public modality:ABSTRACT [val]
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-a> visibility:public modality:ABSTRACT <> ($this:<root>.KotlinInterface) returnType:kotlin.String
correspondingProperty: PROPERTY name:a visibility:public modality:ABSTRACT [val]
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
PROPERTY name:b visibility:public modality:ABSTRACT [val]
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-b> visibility:public modality:ABSTRACT <> ($this:<root>.KotlinInterface) returnType:kotlin.String
correspondingProperty: PROPERTY name:b visibility:public modality:ABSTRACT [val]
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
PROPERTY name:c visibility:public modality:ABSTRACT [var]
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-c> visibility:public modality:ABSTRACT <> ($this:<root>.KotlinInterface) returnType:kotlin.String
correspondingProperty: PROPERTY name:c visibility:public modality:ABSTRACT [var]
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
FUN DEFAULT_PROPERTY_ACCESSOR name:<set-c> visibility:public modality:ABSTRACT <> ($this:<root>.KotlinInterface, <set-?>:kotlin.String) returnType:kotlin.Unit
correspondingProperty: PROPERTY name:c visibility:public modality:ABSTRACT [var]
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
VALUE_PARAMETER name:<set-?> index:0 type:kotlin.String
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
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public final fun <get-a> (): kotlin.String declared in <root>.A' type=kotlin.String origin=GET_PROPERTY
$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-c> (): kotlin.String declared in <root>.A' type=kotlin.String origin=GET_PROPERTY
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
CALL 'public final fun <set-c> (value: kotlin.String): kotlin.Unit declared in <root>.A' type=kotlin.Unit origin=EQ
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
value: CONST String type=kotlin.String value="2"
CALL 'public open fun overloadMethod (first: kotlin.String, second: kotlin.String, third: kotlin.Int): 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
first: CONST String type=kotlin.String value=""
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public final fun <get-a> (): kotlin.String declared in <root>.B' type=kotlin.String origin=GET_PROPERTY
$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-c> (): kotlin.String declared in <root>.B' type=kotlin.String origin=GET_PROPERTY
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
CALL 'public final fun <set-c> (value: kotlin.String): 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
value: CONST String type=kotlin.String value="2"
CALL 'public open fun overloadMethod (first: kotlin.String, second: kotlin.String, third: kotlin.Int): 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
first: CONST String type=kotlin.String value=""
second: CONST String type=kotlin.String value="2"
third: CONST Int type=kotlin.Int value=3
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun <get-a> (): @[FlexibleNullability] kotlin.String? declared in <root>.C' type=@[FlexibleNullability] kotlin.String? origin=GET_PROPERTY
$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 open fun <get-c> (): @[FlexibleNullability] kotlin.String? declared in <root>.C' type=@[FlexibleNullability] kotlin.String? origin=GET_PROPERTY
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
CALL 'public open fun <set-c> (text: @[FlexibleNullability] kotlin.String?): 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
text: CONST String type=kotlin.String value="2"
CALL 'public open fun overloadMethod (first: @[EnhancedNullability] kotlin.String, second: @[EnhancedNullability] kotlin.String, third: kotlin.Int): 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
first: CONST String type=kotlin.String value=""
CALL 'public open fun overloadMethod (first: @[EnhancedNullability] kotlin.String, second: @[EnhancedNullability] kotlin.String, third: kotlin.Int): 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
first: CONST String type=kotlin.String value=""
second: CONST String type=kotlin.String value=""
third: CONST Int type=kotlin.Int value=1
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun <get-a> (): kotlin.String declared in <root>.D' type=kotlin.String origin=GET_PROPERTY
$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 open fun <get-c> (): @[FlexibleNullability] kotlin.String? declared in <root>.D' type=@[FlexibleNullability] kotlin.String? origin=GET_PROPERTY
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
CALL 'public open fun <set-c> (text: @[FlexibleNullability] kotlin.String?): kotlin.Unit declared in <root>.D' type=kotlin.Unit origin=EQ
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
text: CONST String type=kotlin.String value="2"
CALL 'public open fun overloadMethod (first: kotlin.String, second: kotlin.String, third: kotlin.Int): 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
first: CONST String type=kotlin.String value=""
CALL 'public open fun overloadMethod (first: kotlin.String, second: kotlin.String, third: kotlin.Int): 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
first: CONST String type=kotlin.String value=""
second: CONST String type=kotlin.String value=""
third: CONST Int type=kotlin.Int value=1
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public final fun <get-a> (): kotlin.String declared in <root>.E' type=kotlin.String 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 getB (): kotlin.String declared in <root>.E' type=kotlin.String 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-c> (): kotlin.String declared in <root>.E' type=kotlin.String origin=GET_PROPERTY
$this: GET_VAR 'e: <root>.E declared in <root>.test' type=<root>.E origin=null
CALL 'public final fun <set-c> (value: kotlin.String): kotlin.Unit declared in <root>.E' type=kotlin.Unit origin=EQ
$this: GET_VAR 'e: <root>.E declared in <root>.test' type=<root>.E origin=null
value: CONST String type=kotlin.String value="2"
CALL 'public abstract fun setB (text: @[FlexibleNullability] kotlin.String?): kotlin.Unit declared in <root>.E' type=kotlin.Unit origin=EQ
$this: GET_VAR 'e: <root>.E declared in <root>.test' type=<root>.E origin=null
text: CONST String type=kotlin.String value="2"
CALL 'public open fun overloadMethod (first: kotlin.String, second: kotlin.String, third: kotlin.Int): 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
first: CONST String type=kotlin.String value=""
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public final fun <get-a> (): kotlin.String declared in <root>.F' type=kotlin.String 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 'public final fun getB (): kotlin.String declared in <root>.F' type=kotlin.String 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 'public final fun <get-c> (): kotlin.String declared in <root>.F' type=kotlin.String origin=GET_PROPERTY
$this: GET_VAR 'f: <root>.F declared in <root>.test' type=<root>.F origin=null
CALL 'public final fun <set-c> (value: kotlin.String): kotlin.Unit declared in <root>.F' type=kotlin.Unit origin=EQ
$this: GET_VAR 'f: <root>.F declared in <root>.test' type=<root>.F origin=null
value: CONST String type=kotlin.String value="2"
CALL 'public open fun setB (text: kotlin.String): kotlin.Unit declared in <root>.F' type=kotlin.Unit origin=EQ
$this: GET_VAR 'f: <root>.F declared in <root>.test' type=<root>.F origin=null
text: CONST String type=kotlin.String value="2"
CALL 'public open fun overloadMethod (first: kotlin.String, second: kotlin.String, third: kotlin.Int): 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
first: CONST String type=kotlin.String value=""
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public final fun <get-a> (): kotlin.String declared in <root>.G' type=kotlin.String 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 'public abstract fun <get-b> (): kotlin.String declared in <root>.G' type=kotlin.String 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 'public final fun <get-c> (): kotlin.String declared in <root>.G' type=kotlin.String origin=GET_PROPERTY
$this: GET_VAR 'g: <root>.G declared in <root>.test' type=<root>.G origin=null
CALL 'public final fun <set-c> (value: kotlin.String): kotlin.Unit declared in <root>.G' type=kotlin.Unit origin=EQ
$this: GET_VAR 'g: <root>.G declared in <root>.test' type=<root>.G origin=null
value: CONST String type=kotlin.String value="2"
CALL 'public abstract fun overloadMethod (first: kotlin.String): 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
first: CONST String type=kotlin.String value=""
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public final fun <get-a> (): kotlin.String declared in <root>.H' type=kotlin.String origin=GET_PROPERTY
$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 open fun <get-b> (): kotlin.String declared in <root>.H' type=kotlin.String origin=GET_PROPERTY
$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-c> (): kotlin.String declared in <root>.H' type=kotlin.String origin=GET_PROPERTY
$this: GET_VAR 'h: <root>.H declared in <root>.test' type=<root>.H origin=null
CALL 'public open fun overloadMethod (first: kotlin.String): 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
first: CONST String type=kotlin.String value=""
CALL 'public open fun overloadMethod (first: kotlin.String, second: kotlin.String, third: kotlin.Int): 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
first: CONST String type=kotlin.String value=""
second: CONST String type=kotlin.String value=""
third: CONST Int type=kotlin.Int value=1
@@ -0,0 +1,207 @@
class A : Java1 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
}
class B : Java1 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
override fun overloadMethod(first: String, second: String, third: Int) {
}
}
class C : Java2 {
constructor() /* primary */ {
super/*Java2*/()
/* <init>() */
}
}
class D : Java2 {
constructor() /* primary */ {
super/*Java2*/()
/* <init>() */
}
override fun overloadMethod(first: String, second: String, third: Int) {
}
override val a: String
override get(): String {
return "3"
}
}
abstract class E : Java1, Java3 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
}
class F : Java1, Java3 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
override fun foo() {
}
override fun getC(): String {
return "5"
}
override fun setB(text: String) {
}
override fun setC(text: String) {
}
}
abstract class G : Java1, KotlinInterface {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
}
class H : Java1, KotlinInterface {
override val b: String
field = b
override get
constructor(b: String) /* primary */ {
super/*Java1*/()
/* <init>() */
}
override fun foo() {
}
override fun overloadMethod(first: String) {
}
}
open class KotlinClass {
val a: String
field = "1"
get
var c: String
field = "1"
@JvmName(name = "getText")
get
@JvmName(name = "setText")
set
companion object Companion {
private constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
@JvmStatic
fun foo() {
}
}
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
@JvmName(name = "getBJava")
fun getB(): String {
return "b"
}
@JvmOverloads
open fun overloadMethod(first: String, second: String = "text", third: Int = 10) {
}
}
interface KotlinInterface {
abstract fun foo()
abstract fun overloadMethod(first: String)
abstract val a: String
abstract get
abstract val b: String
abstract get
abstract var c: String
abstract get
abstract set
}
fun test(a: A, b: B, c: C, d: D, e: E, f: F, g: G, h: H) {
a.<get-a>() /*~> Unit */
a.<get-c>() /*~> Unit */
a.<set-c>(value = "2")
a.overloadMethod(first = "")
b.<get-a>() /*~> Unit */
b.<get-c>() /*~> Unit */
b.<set-c>(value = "2")
b.overloadMethod(first = "", second = "2", third = 3)
c.<get-a>() /*~> Unit */
c.<get-c>() /*~> Unit */
c.<set-c>(text = "2")
c.overloadMethod(first = "")
c.overloadMethod(first = "", second = "", third = 1)
d.<get-a>() /*~> Unit */
d.<get-c>() /*~> Unit */
d.<set-c>(text = "2")
d.overloadMethod(first = "")
d.overloadMethod(first = "", second = "", third = 1)
e.<get-a>() /*~> Unit */
e.getB() /*~> Unit */
e.<get-c>() /*~> Unit */
e.<set-c>(value = "2")
e.setB(text = "2")
e.overloadMethod(first = "")
f.<get-a>() /*~> Unit */
f.getB() /*~> Unit */
f.<get-c>() /*~> Unit */
f.<set-c>(value = "2")
f.setB(text = "2")
f.overloadMethod(first = "")
g.<get-a>() /*~> Unit */
g.<get-b>() /*~> Unit */
g.<get-c>() /*~> Unit */
g.<set-c>(value = "2")
g.overloadMethod(first = "")
h.<get-a>() /*~> Unit */
h.<get-b>() /*~> Unit */
h.<get-c>() /*~> Unit */
h.overloadMethod(first = "")
h.overloadMethod(first = "", second = "", third = 1)
}
@@ -0,0 +1,660 @@
// 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 JVM_IR:
// Mangled name: A#getB(){}kotlin.String
// Public signature: /A.getB|-4761387797922949255[0]
// Public signature debug description: getB(){}kotlin.String
@JvmName(name = "getBJava")
/* fake */ override fun getB(): String
// CHECK:
// Mangled name: A#overloadMethod(kotlin.String;kotlin.String;kotlin.Int){}
// Public signature: /A.overloadMethod|6854898171569188871[0]
// Public signature debug description: overloadMethod(kotlin.String;kotlin.String;kotlin.Int){}
@JvmOverloads
/* fake */ override fun overloadMethod(first: String, second: String, third: Int): Unit
// CHECK:
// Mangled name: A{}a
// Public signature: /A.a|-1200697420457237799[0]
// Public signature debug description: {}a
/* fake */ override val a: String
// CHECK JVM_IR:
// Mangled name: A#<get-a>(){}kotlin.String
// Public signature: /A.a.<get-a>|-6318309956076983327[0]
// Public signature debug description: <get-a>(){}kotlin.String
/* fake */ override get(): String
// CHECK:
// Mangled name: A{}c
// Public signature: /A.c|-4416962153448040627[0]
// Public signature debug description: {}c
/* fake */ override var c: String
// CHECK JVM_IR:
// Mangled name: A#<get-c>(){}kotlin.String
// Public signature: /A.c.<get-c>|-1685601560056418491[0]
// Public signature debug description: <get-c>(){}kotlin.String
@JvmName(name = "getText")
/* fake */ override get(): String
// CHECK:
// Mangled name: A#<set-c>(kotlin.String){}
// Public signature: /A.c.<set-c>|8694985733648793496[0]
// Public signature debug description: <set-c>(kotlin.String){}
@JvmName(name = "setText")
/* fake */ override set(value: String): 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 JVM_IR:
// Mangled name: B#getB(){}kotlin.String
// Public signature: /B.getB|-4761387797922949255[0]
// Public signature debug description: getB(){}kotlin.String
@JvmName(name = "getBJava")
/* fake */ override fun getB(): String
// CHECK:
// Mangled name: B#overloadMethod(kotlin.String;kotlin.String;kotlin.Int){}
// Public signature: /B.overloadMethod|6854898171569188871[0]
// Public signature debug description: overloadMethod(kotlin.String;kotlin.String;kotlin.Int){}
override fun overloadMethod(first: String, second: String, third: Int): Unit
// CHECK:
// Mangled name: B{}a
// Public signature: /B.a|-1200697420457237799[0]
// Public signature debug description: {}a
/* fake */ override val a: String
// CHECK JVM_IR:
// Mangled name: B#<get-a>(){}kotlin.String
// Public signature: /B.a.<get-a>|-6318309956076983327[0]
// Public signature debug description: <get-a>(){}kotlin.String
/* fake */ override get(): String
// CHECK:
// Mangled name: B{}c
// Public signature: /B.c|-4416962153448040627[0]
// Public signature debug description: {}c
/* fake */ override var c: String
// CHECK JVM_IR:
// Mangled name: B#<get-c>(){}kotlin.String
// Public signature: /B.c.<get-c>|-1685601560056418491[0]
// Public signature debug description: <get-c>(){}kotlin.String
@JvmName(name = "getText")
/* fake */ override get(): String
// CHECK:
// Mangled name: B#<set-c>(kotlin.String){}
// Public signature: /B.c.<set-c>|8694985733648793496[0]
// Public signature debug description: <set-c>(kotlin.String){}
@JvmName(name = "setText")
/* fake */ override set(value: String): 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 JVM_IR:
// Mangled name: C#getB(){}kotlin.String{EnhancedNullability}
// Public signature: /C.getB|4278170284003720919[0]
// Public signature debug description: getB(){}kotlin.String{EnhancedNullability}
/* fake */ override fun getB(): @EnhancedNullability String
// CHECK:
// Mangled name: C#overloadMethod(kotlin.String{EnhancedNullability};kotlin.String{EnhancedNullability};kotlin.Int){}
// Public signature: /C.overloadMethod|8770045736695034254[0]
// Public signature debug description: overloadMethod(kotlin.String{EnhancedNullability};kotlin.String{EnhancedNullability};kotlin.Int){}
/* fake */ override fun overloadMethod(first: @EnhancedNullability String, second: @EnhancedNullability String, third: Int): Unit
// CHECK:
// Mangled name: C{}a
// Public signature: /C.a|-1200697420457237799[0]
// Public signature debug description: {}a
/* fake */ override val a: String?
// CHECK JVM_IR:
// Mangled name: C#<get-a>(){}kotlin.String?
// Public signature: /C.a.<get-a>|-3827020536169281094[0]
// Public signature debug description: <get-a>(){}kotlin.String?
/* fake */ override get(): String?
// CHECK:
// Mangled name: C{}c
// Public signature: /C.c|-4416962153448040627[0]
// Public signature debug description: {}c
/* fake */ override var c: String?
// CHECK JVM_IR:
// Mangled name: C#<get-c>(){}kotlin.String?
// Public signature: /C.c.<get-c>|-6320399562288171885[0]
// Public signature debug description: <get-c>(){}kotlin.String?
/* fake */ override get(): String?
// CHECK:
// Mangled name: C#<set-c>(kotlin.String?){}
// Public signature: /C.c.<set-c>|7821982893837257305[0]
// Public signature debug description: <set-c>(kotlin.String?){}
/* fake */ override set(text: String?): 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 JVM_IR:
// Mangled name: D#getB(){}kotlin.String{EnhancedNullability}
// Public signature: /D.getB|4278170284003720919[0]
// Public signature debug description: getB(){}kotlin.String{EnhancedNullability}
/* fake */ override fun getB(): @EnhancedNullability String
// CHECK:
// Mangled name: D#overloadMethod(kotlin.String;kotlin.String;kotlin.Int){}
// Public signature: /D.overloadMethod|6854898171569188871[0]
// Public signature debug description: overloadMethod(kotlin.String;kotlin.String;kotlin.Int){}
override fun overloadMethod(first: String, second: String, third: Int): Unit
// CHECK:
// Mangled name: D{}c
// Public signature: /D.c|-4416962153448040627[0]
// Public signature debug description: {}c
/* fake */ override var c: String?
// CHECK JVM_IR:
// Mangled name: D#<get-c>(){}kotlin.String?
// Public signature: /D.c.<get-c>|-6320399562288171885[0]
// Public signature debug description: <get-c>(){}kotlin.String?
/* fake */ override get(): String?
// CHECK:
// Mangled name: D#<set-c>(kotlin.String?){}
// Public signature: /D.c.<set-c>|7821982893837257305[0]
// Public signature debug description: <set-c>(kotlin.String?){}
/* fake */ override set(text: String?): Unit
// CHECK:
// Mangled name: D{}a
// Public signature: /D.a|-1200697420457237799[0]
// Public signature debug description: {}a
override val a: String
// CHECK JVM_IR:
// Mangled name: D#<get-a>(){}kotlin.String
// Public signature: /D.a.<get-a>|-6318309956076983327[0]
// Public signature debug description: <get-a>(){}kotlin.String
override get(): String
}
// CHECK:
// Mangled name: E
// Public signature: /E|null[0]
abstract class E : Java1, 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(){}
abstract /* fake */ override fun foo(): Unit
// CHECK JVM_IR:
// Mangled name: E#getB(){}kotlin.String
// Public signature: /E.getB|-4761387797922949255[0]
// Public signature debug description: getB(){}kotlin.String
@JvmName(name = "getBJava")
/* fake */ override fun getB(): String
// CHECK JVM_IR:
// Mangled name: E#getC(){}kotlin.String?
// Public signature: /E.getC|-4926278272686304201[0]
// Public signature debug description: getC(){}kotlin.String?
abstract /* fake */ override fun getC(): String?
// CHECK:
// Mangled name: E#overloadMethod(kotlin.String;kotlin.String;kotlin.Int){}
// Public signature: /E.overloadMethod|6854898171569188871[0]
// Public signature debug description: overloadMethod(kotlin.String;kotlin.String;kotlin.Int){}
@JvmOverloads
/* fake */ override fun overloadMethod(first: String, second: String, third: Int): Unit
// CHECK:
// Mangled name: E#setB(kotlin.String?){}
// Public signature: /E.setB|3235024716846847901[0]
// Public signature debug description: setB(kotlin.String?){}
abstract /* fake */ override fun setB(text: String?): Unit
// CHECK:
// Mangled name: E#setC(kotlin.String?){}
// Public signature: /E.setC|8854730909867222504[0]
// Public signature debug description: setC(kotlin.String?){}
abstract /* fake */ override fun setC(text: String?): Unit
// CHECK:
// Mangled name: E{}a
// Public signature: /E.a|-1200697420457237799[0]
// Public signature debug description: {}a
/* fake */ override val a: String
// CHECK JVM_IR:
// Mangled name: E#<get-a>(){}kotlin.String
// Public signature: /E.a.<get-a>|-6318309956076983327[0]
// Public signature debug description: <get-a>(){}kotlin.String
/* fake */ override get(): String
// CHECK:
// Mangled name: E{}c
// Public signature: /E.c|-4416962153448040627[0]
// Public signature debug description: {}c
/* fake */ override var c: String
// CHECK JVM_IR:
// Mangled name: E#<get-c>(){}kotlin.String
// Public signature: /E.c.<get-c>|-1685601560056418491[0]
// Public signature debug description: <get-c>(){}kotlin.String
@JvmName(name = "getText")
/* fake */ override get(): String
// CHECK:
// Mangled name: E#<set-c>(kotlin.String){}
// Public signature: /E.c.<set-c>|8694985733648793496[0]
// Public signature debug description: <set-c>(kotlin.String){}
@JvmName(name = "setText")
/* fake */ override set(value: String): Unit
}
// CHECK:
// Mangled name: F
// Public signature: /F|null[0]
class F : Java1, Java3 {
// CHECK:
// Mangled name: F#<init>(){}
// Public signature: /F.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: F#getB(){}kotlin.String
// Public signature: /F.getB|-4761387797922949255[0]
// Public signature debug description: getB(){}kotlin.String
@JvmName(name = "getBJava")
/* fake */ override fun getB(): String
// CHECK:
// Mangled name: F#overloadMethod(kotlin.String;kotlin.String;kotlin.Int){}
// Public signature: /F.overloadMethod|6854898171569188871[0]
// Public signature debug description: overloadMethod(kotlin.String;kotlin.String;kotlin.Int){}
@JvmOverloads
/* fake */ override fun overloadMethod(first: String, second: String, third: Int): Unit
// CHECK:
// Mangled name: F#foo(){}
// Public signature: /F.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
override fun foo(): Unit
// CHECK JVM_IR:
// Mangled name: F#getC(){}kotlin.String
// Public signature: /F.getC|-869268604338261875[0]
// Public signature debug description: getC(){}kotlin.String
override fun getC(): String
// CHECK:
// Mangled name: F#setB(kotlin.String){}
// Public signature: /F.setB|-8766973500211804524[0]
// Public signature debug description: setB(kotlin.String){}
override fun setB(text: String): Unit
// CHECK:
// Mangled name: F#setC(kotlin.String){}
// Public signature: /F.setC|2472800919204397200[0]
// Public signature debug description: setC(kotlin.String){}
override fun setC(text: String): Unit
// CHECK:
// Mangled name: F{}a
// Public signature: /F.a|-1200697420457237799[0]
// Public signature debug description: {}a
/* fake */ override val a: String
// CHECK JVM_IR:
// Mangled name: F#<get-a>(){}kotlin.String
// Public signature: /F.a.<get-a>|-6318309956076983327[0]
// Public signature debug description: <get-a>(){}kotlin.String
/* fake */ override get(): String
// CHECK:
// Mangled name: F{}c
// Public signature: /F.c|-4416962153448040627[0]
// Public signature debug description: {}c
/* fake */ override var c: String
// CHECK JVM_IR:
// Mangled name: F#<get-c>(){}kotlin.String
// Public signature: /F.c.<get-c>|-1685601560056418491[0]
// Public signature debug description: <get-c>(){}kotlin.String
@JvmName(name = "getText")
/* fake */ override get(): String
// CHECK:
// Mangled name: F#<set-c>(kotlin.String){}
// Public signature: /F.c.<set-c>|8694985733648793496[0]
// Public signature debug description: <set-c>(kotlin.String){}
@JvmName(name = "setText")
/* fake */ override set(value: String): Unit
}
// CHECK:
// Mangled name: G
// Public signature: /G|null[0]
abstract class G : Java1, KotlinInterface {
// 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 JVM_IR:
// Mangled name: G#getB(){}kotlin.String
// Public signature: /G.getB|-4761387797922949255[0]
// Public signature debug description: getB(){}kotlin.String
@JvmName(name = "getBJava")
/* fake */ override fun getB(): String
// CHECK:
// Mangled name: G#overloadMethod(kotlin.String){}
// Public signature: /G.overloadMethod|8031992761249002127[0]
// Public signature debug description: overloadMethod(kotlin.String){}
abstract /* fake */ override fun overloadMethod(first: String): Unit
// CHECK:
// Mangled name: G#overloadMethod(kotlin.String;kotlin.String;kotlin.Int){}
// Public signature: /G.overloadMethod|6854898171569188871[0]
// Public signature debug description: overloadMethod(kotlin.String;kotlin.String;kotlin.Int){}
@JvmOverloads
/* fake */ override fun overloadMethod(first: String, second: String, third: Int): Unit
// CHECK:
// Mangled name: G{}a
// Public signature: /G.a|-1200697420457237799[0]
// Public signature debug description: {}a
/* fake */ override val a: String
// CHECK JVM_IR:
// Mangled name: G#<get-a>(){}kotlin.String
// Public signature: /G.a.<get-a>|-6318309956076983327[0]
// Public signature debug description: <get-a>(){}kotlin.String
/* fake */ override get(): String
// CHECK:
// Mangled name: G{}b
// Public signature: /G.b|772347207915745207[0]
// Public signature debug description: {}b
abstract /* fake */ override val b: String
// CHECK JVM_IR:
// Mangled name: G#<get-b>(){}kotlin.String
// Public signature: /G.b.<get-b>|5457451065030643294[0]
// Public signature debug description: <get-b>(){}kotlin.String
abstract /* fake */ override get(): String
// CHECK:
// Mangled name: G{}c
// Public signature: /G.c|-4416962153448040627[0]
// Public signature debug description: {}c
/* fake */ override var c: String
// CHECK JVM_IR:
// Mangled name: G#<get-c>(){}kotlin.String
// Public signature: /G.c.<get-c>|-1685601560056418491[0]
// Public signature debug description: <get-c>(){}kotlin.String
@JvmName(name = "getText")
/* fake */ override get(): String
// CHECK:
// Mangled name: G#<set-c>(kotlin.String){}
// Public signature: /G.c.<set-c>|8694985733648793496[0]
// Public signature debug description: <set-c>(kotlin.String){}
@JvmName(name = "setText")
/* fake */ override set(value: String): Unit
}
// CHECK:
// Mangled name: H
// Public signature: /H|null[0]
class H : Java1, KotlinInterface {
// CHECK:
// Mangled name: H{}b
// Public signature: /H.b|772347207915745207[0]
// Public signature debug description: {}b
override val b: String
// CHECK JVM_IR:
// Mangled name: H#<get-b>(){}kotlin.String
// Public signature: /H.b.<get-b>|5457451065030643294[0]
// Public signature debug description: <get-b>(){}kotlin.String
override get
// CHECK:
// Mangled name: H#<init>(kotlin.String){}
// Public signature: /H.<init>|1280618353163213788[0]
// Public signature debug description: <init>(kotlin.String){}
constructor(b: String) /* primary */
// CHECK JVM_IR:
// Mangled name: H#getB(){}kotlin.String
// Public signature: /H.getB|-4761387797922949255[0]
// Public signature debug description: getB(){}kotlin.String
@JvmName(name = "getBJava")
/* fake */ override fun getB(): String
// CHECK:
// Mangled name: H#overloadMethod(kotlin.String;kotlin.String;kotlin.Int){}
// Public signature: /H.overloadMethod|6854898171569188871[0]
// Public signature debug description: overloadMethod(kotlin.String;kotlin.String;kotlin.Int){}
@JvmOverloads
/* fake */ override fun overloadMethod(first: String, second: String, third: Int): Unit
// CHECK:
// Mangled name: H#foo(){}
// Public signature: /H.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
override fun foo(): Unit
// CHECK:
// Mangled name: H#overloadMethod(kotlin.String){}
// Public signature: /H.overloadMethod|8031992761249002127[0]
// Public signature debug description: overloadMethod(kotlin.String){}
override fun overloadMethod(first: String): Unit
// CHECK:
// Mangled name: H{}a
// Public signature: /H.a|-1200697420457237799[0]
// Public signature debug description: {}a
/* fake */ override val a: String
// CHECK JVM_IR:
// Mangled name: H#<get-a>(){}kotlin.String
// Public signature: /H.a.<get-a>|-6318309956076983327[0]
// Public signature debug description: <get-a>(){}kotlin.String
/* fake */ override get(): String
// CHECK:
// Mangled name: H{}c
// Public signature: /H.c|-4416962153448040627[0]
// Public signature debug description: {}c
/* fake */ override var c: String
// CHECK JVM_IR:
// Mangled name: H#<get-c>(){}kotlin.String
// Public signature: /H.c.<get-c>|-1685601560056418491[0]
// Public signature debug description: <get-c>(){}kotlin.String
@JvmName(name = "getText")
/* fake */ override get(): String
// CHECK:
// Mangled name: H#<set-c>(kotlin.String){}
// Public signature: /H.c.<set-c>|8694985733648793496[0]
// Public signature debug description: <set-c>(kotlin.String){}
@JvmName(name = "setText")
/* fake */ override set(value: String): Unit
}
// CHECK:
// Mangled name: KotlinClass
// Public signature: /KotlinClass|null[0]
open class KotlinClass {
// CHECK:
// Mangled name: KotlinClass{}a
// Public signature: /KotlinClass.a|-1200697420457237799[0]
// Public signature debug description: {}a
val a: String
// CHECK JVM_IR:
// Mangled name: KotlinClass#<get-a>(){}kotlin.String
// Public signature: /KotlinClass.a.<get-a>|-6318309956076983327[0]
// Public signature debug description: <get-a>(){}kotlin.String
get
// CHECK:
// Mangled name: KotlinClass{}c
// Public signature: /KotlinClass.c|-4416962153448040627[0]
// Public signature debug description: {}c
var c: String
// CHECK JVM_IR:
// Mangled name: KotlinClass#<get-c>(){}kotlin.String
// Public signature: /KotlinClass.c.<get-c>|-1685601560056418491[0]
// Public signature debug description: <get-c>(){}kotlin.String
@JvmName(name = "getText")
get
// CHECK:
// Mangled name: KotlinClass#<set-c>(kotlin.String){}
// Public signature: /KotlinClass.c.<set-c>|8694985733648793496[0]
// Public signature debug description: <set-c>(kotlin.String){}
@JvmName(name = "setText")
set
// CHECK:
// Mangled name: KotlinClass.Companion
// Public signature: /KotlinClass.Companion|null[0]
companion object Companion {
// CHECK:
// Mangled name: KotlinClass.Companion#<init>(){}
// Public signature: /KotlinClass.Companion.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
private constructor() /* primary */
// CHECK:
// Mangled name: KotlinClass.Companion#foo(){}
// Public signature: /KotlinClass.Companion.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
@JvmStatic
fun foo(): Unit
}
// CHECK:
// Mangled name: KotlinClass#<init>(){}
// Public signature: /KotlinClass.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: KotlinClass#getB(){}kotlin.String
// Public signature: /KotlinClass.getB|-4761387797922949255[0]
// Public signature debug description: getB(){}kotlin.String
@JvmName(name = "getBJava")
fun getB(): String
// CHECK:
// Mangled name: KotlinClass#overloadMethod(kotlin.String;kotlin.String;kotlin.Int){}
// Public signature: /KotlinClass.overloadMethod|6854898171569188871[0]
// Public signature debug description: overloadMethod(kotlin.String;kotlin.String;kotlin.Int){}
@JvmOverloads
open fun overloadMethod(first: String, second: String, third: Int): Unit
}
// CHECK:
// Mangled name: KotlinInterface
// Public signature: /KotlinInterface|null[0]
interface KotlinInterface {
// CHECK:
// Mangled name: KotlinInterface#foo(){}
// Public signature: /KotlinInterface.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
abstract fun foo(): Unit
// CHECK:
// Mangled name: KotlinInterface#overloadMethod(kotlin.String){}
// Public signature: /KotlinInterface.overloadMethod|8031992761249002127[0]
// Public signature debug description: overloadMethod(kotlin.String){}
abstract fun overloadMethod(first: String): Unit
// CHECK:
// Mangled name: KotlinInterface{}a
// Public signature: /KotlinInterface.a|-1200697420457237799[0]
// Public signature debug description: {}a
abstract val a: String
// CHECK JVM_IR:
// Mangled name: KotlinInterface#<get-a>(){}kotlin.String
// Public signature: /KotlinInterface.a.<get-a>|-6318309956076983327[0]
// Public signature debug description: <get-a>(){}kotlin.String
abstract get
// CHECK:
// Mangled name: KotlinInterface{}b
// Public signature: /KotlinInterface.b|772347207915745207[0]
// Public signature debug description: {}b
abstract val b: String
// CHECK JVM_IR:
// Mangled name: KotlinInterface#<get-b>(){}kotlin.String
// Public signature: /KotlinInterface.b.<get-b>|5457451065030643294[0]
// Public signature debug description: <get-b>(){}kotlin.String
abstract get
// CHECK:
// Mangled name: KotlinInterface{}c
// Public signature: /KotlinInterface.c|-4416962153448040627[0]
// Public signature debug description: {}c
abstract var c: String
// CHECK JVM_IR:
// Mangled name: KotlinInterface#<get-c>(){}kotlin.String
// Public signature: /KotlinInterface.c.<get-c>|-1685601560056418491[0]
// Public signature debug description: <get-c>(){}kotlin.String
abstract get
// CHECK:
// Mangled name: KotlinInterface#<set-c>(kotlin.String){}
// Public signature: /KotlinInterface.c.<set-c>|8694985733648793496[0]
// Public signature debug description: <set-c>(kotlin.String){}
abstract set
}
// 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,852 @@
FILE fqName:<root> fileName:/1.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:getB visibility:public modality:FINAL <> ($this:<root>.KotlinClass) returnType:kotlin.String [fake_override]
annotations:
JvmName(name = "getBJava")
overridden:
public final fun getB (): kotlin.String declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass
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:overloadMethod visibility:public modality:OPEN <> ($this:<root>.KotlinClass, first:kotlin.String, second:kotlin.String, third:kotlin.Int) returnType:kotlin.Unit [fake_override]
annotations:
JvmOverloads
overridden:
public open fun overloadMethod (first: kotlin.String, second: kotlin.String, third: kotlin.Int): kotlin.Unit declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass
VALUE_PARAMETER name:first index:0 type:kotlin.String
VALUE_PARAMETER name:second index:1 type:kotlin.String
VALUE_PARAMETER name:third index:2 type:kotlin.Int
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,val]
overridden:
public final a: kotlin.String
FUN FAKE_OVERRIDE name:<get-a> visibility:public modality:FINAL <> ($this:<root>.KotlinClass) returnType:kotlin.String [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a visibility:public modality:FINAL [fake_override,val]
overridden:
public final fun <get-a> (): kotlin.String declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass
PROPERTY FAKE_OVERRIDE name:c visibility:public modality:FINAL [fake_override,var]
overridden:
public final c: kotlin.String
FUN FAKE_OVERRIDE name:<get-c> visibility:public modality:FINAL <> ($this:<root>.KotlinClass) returnType:kotlin.String [fake_override]
annotations:
JvmName(name = "getText")
correspondingProperty: PROPERTY FAKE_OVERRIDE name:c visibility:public modality:FINAL [fake_override,var]
overridden:
public final fun <get-c> (): kotlin.String declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass
FUN FAKE_OVERRIDE name:<set-c> visibility:public modality:FINAL <> ($this:<root>.KotlinClass, <set-?>:kotlin.String) returnType:kotlin.Unit [fake_override]
annotations:
JvmName(name = "setText")
correspondingProperty: PROPERTY FAKE_OVERRIDE name:c visibility:public modality:FINAL [fake_override,var]
overridden:
public final fun <set-c> (<set-?>: kotlin.String): kotlin.Unit declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass
VALUE_PARAMETER name:<set-?> index:0 type:kotlin.String
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:getB visibility:public modality:FINAL <> ($this:<root>.KotlinClass) returnType:kotlin.String [fake_override]
annotations:
JvmName(name = "getBJava")
overridden:
public final fun getB (): kotlin.String declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass
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:overloadMethod visibility:public modality:OPEN <> ($this:<root>.B, first:kotlin.String, second:kotlin.String, third:kotlin.Int) returnType:kotlin.Unit
overridden:
public open fun overloadMethod (first: kotlin.String, second: kotlin.String, third: kotlin.Int): kotlin.Unit declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.B
VALUE_PARAMETER name:first index:0 type:kotlin.String
VALUE_PARAMETER name:second index:1 type:kotlin.String
VALUE_PARAMETER name:third index:2 type:kotlin.Int
BLOCK_BODY
PROPERTY FAKE_OVERRIDE name:a visibility:public modality:FINAL [fake_override,val]
overridden:
public final a: kotlin.String
FUN FAKE_OVERRIDE name:<get-a> visibility:public modality:FINAL <> ($this:<root>.KotlinClass) returnType:kotlin.String [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a visibility:public modality:FINAL [fake_override,val]
overridden:
public final fun <get-a> (): kotlin.String declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass
PROPERTY FAKE_OVERRIDE name:c visibility:public modality:FINAL [fake_override,var]
overridden:
public final c: kotlin.String
FUN FAKE_OVERRIDE name:<get-c> visibility:public modality:FINAL <> ($this:<root>.KotlinClass) returnType:kotlin.String [fake_override]
annotations:
JvmName(name = "getText")
correspondingProperty: PROPERTY FAKE_OVERRIDE name:c visibility:public modality:FINAL [fake_override,var]
overridden:
public final fun <get-c> (): kotlin.String declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass
FUN FAKE_OVERRIDE name:<set-c> visibility:public modality:FINAL <> ($this:<root>.KotlinClass, <set-?>:kotlin.String) returnType:kotlin.Unit [fake_override]
annotations:
JvmName(name = "setText")
correspondingProperty: PROPERTY FAKE_OVERRIDE name:c visibility:public modality:FINAL [fake_override,var]
overridden:
public final fun <set-c> (<set-?>: kotlin.String): kotlin.Unit declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass
VALUE_PARAMETER name:<set-?> index:0 type:kotlin.String
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:getB visibility:public modality:OPEN <> ($this:<root>.Java2) returnType:@[EnhancedNullability] kotlin.String [fake_override]
overridden:
public open fun getB (): @[EnhancedNullability] kotlin.String 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:overloadMethod visibility:public modality:OPEN <> ($this:<root>.Java2, first:@[EnhancedNullability] kotlin.String, second:@[EnhancedNullability] kotlin.String, third:kotlin.Int) returnType:kotlin.Unit [fake_override]
overridden:
public open fun overloadMethod (first: @[EnhancedNullability] kotlin.String, second: @[EnhancedNullability] kotlin.String, third: kotlin.Int): kotlin.Unit declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.Java2
VALUE_PARAMETER name:first index:0 type:@[EnhancedNullability] kotlin.String
VALUE_PARAMETER name:second index:1 type:@[EnhancedNullability] kotlin.String
VALUE_PARAMETER name:third index:2 type:kotlin.Int
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:OPEN [fake_override,val]
overridden:
public open a: @[EnhancedNullability] kotlin.String
FUN FAKE_OVERRIDE name:<get-a> visibility:public modality:OPEN <> ($this:<root>.Java2) returnType:@[EnhancedNullability] kotlin.String [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a visibility:public modality:OPEN [fake_override,val]
overridden:
public open fun <get-a> (): @[EnhancedNullability] kotlin.String declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.Java2
PROPERTY FAKE_OVERRIDE name:c visibility:public modality:OPEN [fake_override,var]
overridden:
public open c: @[EnhancedNullability] kotlin.String
FUN FAKE_OVERRIDE name:<get-c> visibility:public modality:OPEN <> ($this:<root>.Java2) returnType:@[EnhancedNullability] kotlin.String [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:c visibility:public modality:OPEN [fake_override,var]
overridden:
public open fun <get-c> (): @[EnhancedNullability] kotlin.String declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.Java2
FUN FAKE_OVERRIDE name:<set-c> visibility:public modality:OPEN <> ($this:<root>.Java2, <set-?>:@[FlexibleNullability] kotlin.String?) returnType:kotlin.Unit [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:c visibility:public modality:OPEN [fake_override,var]
overridden:
public open fun <set-c> (<set-?>: @[FlexibleNullability] kotlin.String?): kotlin.Unit declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.Java2
VALUE_PARAMETER name:<set-?> index:0 type:@[FlexibleNullability] kotlin.String?
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:getB visibility:public modality:OPEN <> ($this:<root>.Java2) returnType:@[EnhancedNullability] kotlin.String [fake_override]
overridden:
public open fun getB (): @[EnhancedNullability] kotlin.String 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
FUN name:overloadMethod visibility:public modality:OPEN <> ($this:<root>.D, first:kotlin.String, second:kotlin.String, third:kotlin.Int) returnType:kotlin.Unit
overridden:
public open fun overloadMethod (first: @[EnhancedNullability] kotlin.String, second: @[EnhancedNullability] kotlin.String, third: kotlin.Int): kotlin.Unit declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.D
VALUE_PARAMETER name:first index:0 type:kotlin.String
VALUE_PARAMETER name:second index:1 type:kotlin.String
VALUE_PARAMETER name:third index:2 type:kotlin.Int
BLOCK_BODY
PROPERTY FAKE_OVERRIDE name:c visibility:public modality:OPEN [fake_override,var]
overridden:
public open c: @[EnhancedNullability] kotlin.String
FUN FAKE_OVERRIDE name:<get-c> visibility:public modality:OPEN <> ($this:<root>.Java2) returnType:@[EnhancedNullability] kotlin.String [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:c visibility:public modality:OPEN [fake_override,var]
overridden:
public open fun <get-c> (): @[EnhancedNullability] kotlin.String declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.Java2
FUN FAKE_OVERRIDE name:<set-c> visibility:public modality:OPEN <> ($this:<root>.Java2, <set-?>:@[FlexibleNullability] kotlin.String?) returnType:kotlin.Unit [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:c visibility:public modality:OPEN [fake_override,var]
overridden:
public open fun <set-c> (<set-?>: @[FlexibleNullability] kotlin.String?): kotlin.Unit declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.Java2
VALUE_PARAMETER name:<set-?> index:0 type:@[FlexibleNullability] kotlin.String?
PROPERTY name:a visibility:public modality:OPEN [val]
overridden:
public open a: @[EnhancedNullability] kotlin.String
FUN name:<get-a> visibility:public modality:OPEN <> ($this:<root>.D) returnType:kotlin.String
correspondingProperty: PROPERTY name:a visibility:public modality:OPEN [val]
overridden:
public open fun <get-a> (): @[EnhancedNullability] kotlin.String declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.D
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun <get-a> (): kotlin.String declared in <root>.D'
CONST String type=kotlin.String value="3"
CLASS CLASS name:E modality:ABSTRACT visibility:public superTypes:[<root>.Java1; <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>.Java1'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:E modality:ABSTRACT visibility:public superTypes:[<root>.Java1; <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>.Java1
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:public modality:ABSTRACT <> ($this:<root>.Java3) returnType:kotlin.Unit [fake_override]
overridden:
public abstract fun foo (): kotlin.Unit declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.Java3
FUN FAKE_OVERRIDE name:getB visibility:public modality:FINAL <> ($this:<root>.KotlinClass) returnType:kotlin.String [fake_override]
annotations:
JvmName(name = "getBJava")
overridden:
public final fun getB (): kotlin.String declared in <root>.Java1
public abstract fun getB (): @[FlexibleNullability] kotlin.String? declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass
FUN FAKE_OVERRIDE name:getC visibility:public modality:ABSTRACT <> ($this:<root>.Java3) returnType:@[FlexibleNullability] kotlin.String? [fake_override]
overridden:
public abstract fun getC (): @[FlexibleNullability] kotlin.String? 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>.Java1
public open fun hashCode (): kotlin.Int declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:overloadMethod visibility:public modality:OPEN <> ($this:<root>.KotlinClass, first:kotlin.String, second:kotlin.String, third:kotlin.Int) returnType:kotlin.Unit [fake_override]
annotations:
JvmOverloads
overridden:
public open fun overloadMethod (first: kotlin.String, second: kotlin.String, third: kotlin.Int): kotlin.Unit declared in <root>.Java1
public abstract fun overloadMethod (first: @[FlexibleNullability] kotlin.String?, second: @[FlexibleNullability] kotlin.String?, third: kotlin.Int): kotlin.Unit declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass
VALUE_PARAMETER name:first index:0 type:kotlin.String
VALUE_PARAMETER name:second index:1 type:kotlin.String
VALUE_PARAMETER name:third index:2 type:kotlin.Int
FUN FAKE_OVERRIDE name:setB visibility:public modality:ABSTRACT <> ($this:<root>.Java3, text:@[FlexibleNullability] kotlin.String?) returnType:kotlin.Unit [fake_override]
overridden:
public abstract fun setB (text: @[FlexibleNullability] kotlin.String?): kotlin.Unit declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.Java3
VALUE_PARAMETER name:text index:0 type:@[FlexibleNullability] kotlin.String?
FUN FAKE_OVERRIDE name:setC visibility:public modality:ABSTRACT <> ($this:<root>.Java3, text:@[FlexibleNullability] kotlin.String?) returnType:kotlin.Unit [fake_override]
overridden:
public abstract fun setC (text: @[FlexibleNullability] kotlin.String?): kotlin.Unit declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.Java3
VALUE_PARAMETER name:text index:0 type:@[FlexibleNullability] kotlin.String?
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
public open fun toString (): kotlin.String declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
PROPERTY FAKE_OVERRIDE name:a visibility:public modality:FINAL [fake_override,val]
overridden:
public final a: kotlin.String
FUN FAKE_OVERRIDE name:<get-a> visibility:public modality:FINAL <> ($this:<root>.KotlinClass) returnType:kotlin.String [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a visibility:public modality:FINAL [fake_override,val]
overridden:
public final fun <get-a> (): kotlin.String declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass
PROPERTY FAKE_OVERRIDE name:c visibility:public modality:FINAL [fake_override,var]
overridden:
public final c: kotlin.String
FUN FAKE_OVERRIDE name:<get-c> visibility:public modality:FINAL <> ($this:<root>.KotlinClass) returnType:kotlin.String [fake_override]
annotations:
JvmName(name = "getText")
correspondingProperty: PROPERTY FAKE_OVERRIDE name:c visibility:public modality:FINAL [fake_override,var]
overridden:
public final fun <get-c> (): kotlin.String declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass
FUN FAKE_OVERRIDE name:<set-c> visibility:public modality:FINAL <> ($this:<root>.KotlinClass, <set-?>:kotlin.String) returnType:kotlin.Unit [fake_override]
annotations:
JvmName(name = "setText")
correspondingProperty: PROPERTY FAKE_OVERRIDE name:c visibility:public modality:FINAL [fake_override,var]
overridden:
public final fun <set-c> (<set-?>: kotlin.String): kotlin.Unit declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass
VALUE_PARAMETER name:<set-?> index:0 type:kotlin.String
CLASS CLASS name:F modality:FINAL visibility:public superTypes:[<root>.Java1; <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>.Java1'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:F modality:FINAL visibility:public superTypes:[<root>.Java1; <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>.Java1
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:getB visibility:public modality:FINAL <> ($this:<root>.KotlinClass) returnType:kotlin.String [fake_override]
annotations:
JvmName(name = "getBJava")
overridden:
public final fun getB (): kotlin.String declared in <root>.Java1
public abstract fun getB (): @[FlexibleNullability] kotlin.String? declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass
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
public open fun hashCode (): kotlin.Int declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:overloadMethod visibility:public modality:OPEN <> ($this:<root>.KotlinClass, first:kotlin.String, second:kotlin.String, third:kotlin.Int) returnType:kotlin.Unit [fake_override]
annotations:
JvmOverloads
overridden:
public open fun overloadMethod (first: kotlin.String, second: kotlin.String, third: kotlin.Int): kotlin.Unit declared in <root>.Java1
public abstract fun overloadMethod (first: @[FlexibleNullability] kotlin.String?, second: @[FlexibleNullability] kotlin.String?, third: kotlin.Int): kotlin.Unit declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass
VALUE_PARAMETER name:first index:0 type:kotlin.String
VALUE_PARAMETER name:second index:1 type:kotlin.String
VALUE_PARAMETER name:third index:2 type:kotlin.Int
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
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:
public abstract fun foo (): kotlin.Unit declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.F
BLOCK_BODY
FUN name:getC visibility:public modality:OPEN <> ($this:<root>.F) returnType:kotlin.String
overridden:
public abstract fun getC (): @[FlexibleNullability] kotlin.String? declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.F
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun getC (): kotlin.String declared in <root>.F'
CONST String type=kotlin.String value="5"
FUN name:setB visibility:public modality:OPEN <> ($this:<root>.F, text:kotlin.String) returnType:kotlin.Unit
overridden:
public abstract fun setB (text: @[FlexibleNullability] kotlin.String?): kotlin.Unit declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.F
VALUE_PARAMETER name:text index:0 type:kotlin.String
BLOCK_BODY
FUN name:setC visibility:public modality:OPEN <> ($this:<root>.F, text:kotlin.String) returnType:kotlin.Unit
overridden:
public abstract fun setC (text: @[FlexibleNullability] kotlin.String?): kotlin.Unit declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.F
VALUE_PARAMETER name:text index:0 type:kotlin.String
BLOCK_BODY
PROPERTY FAKE_OVERRIDE name:a visibility:public modality:FINAL [fake_override,val]
overridden:
public final a: kotlin.String
FUN FAKE_OVERRIDE name:<get-a> visibility:public modality:FINAL <> ($this:<root>.KotlinClass) returnType:kotlin.String [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a visibility:public modality:FINAL [fake_override,val]
overridden:
public final fun <get-a> (): kotlin.String declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass
PROPERTY FAKE_OVERRIDE name:c visibility:public modality:FINAL [fake_override,var]
overridden:
public final c: kotlin.String
FUN FAKE_OVERRIDE name:<get-c> visibility:public modality:FINAL <> ($this:<root>.KotlinClass) returnType:kotlin.String [fake_override]
annotations:
JvmName(name = "getText")
correspondingProperty: PROPERTY FAKE_OVERRIDE name:c visibility:public modality:FINAL [fake_override,var]
overridden:
public final fun <get-c> (): kotlin.String declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass
FUN FAKE_OVERRIDE name:<set-c> visibility:public modality:FINAL <> ($this:<root>.KotlinClass, <set-?>:kotlin.String) returnType:kotlin.Unit [fake_override]
annotations:
JvmName(name = "setText")
correspondingProperty: PROPERTY FAKE_OVERRIDE name:c visibility:public modality:FINAL [fake_override,var]
overridden:
public final fun <set-c> (<set-?>: kotlin.String): kotlin.Unit declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass
VALUE_PARAMETER name:<set-?> index:0 type:kotlin.String
CLASS CLASS name:G modality:ABSTRACT visibility:public superTypes:[<root>.Java1; <root>.KotlinInterface]
$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>.Java1'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:G modality:ABSTRACT visibility:public superTypes:[<root>.Java1; <root>.KotlinInterface]'
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
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.KotlinInterface
$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>.KotlinInterface) returnType:kotlin.Unit [fake_override]
overridden:
public abstract fun foo (): kotlin.Unit declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
FUN FAKE_OVERRIDE name:getB visibility:public modality:FINAL <> ($this:<root>.KotlinClass) returnType:kotlin.String [fake_override]
annotations:
JvmName(name = "getBJava")
overridden:
public final fun getB (): kotlin.String declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass
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
public open fun hashCode (): kotlin.Int declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:overloadMethod visibility:public modality:ABSTRACT <> ($this:<root>.KotlinInterface, first:kotlin.String) returnType:kotlin.Unit [fake_override]
overridden:
public abstract fun overloadMethod (first: kotlin.String): kotlin.Unit declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
VALUE_PARAMETER name:first index:0 type:kotlin.String
FUN FAKE_OVERRIDE name:overloadMethod visibility:public modality:OPEN <> ($this:<root>.KotlinClass, first:kotlin.String, second:kotlin.String, third:kotlin.Int) returnType:kotlin.Unit [fake_override]
annotations:
JvmOverloads
overridden:
public open fun overloadMethod (first: kotlin.String, second: kotlin.String, third: kotlin.Int): kotlin.Unit declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass
VALUE_PARAMETER name:first index:0 type:kotlin.String
VALUE_PARAMETER name:second index:1 type:kotlin.String
VALUE_PARAMETER name:third index:2 type:kotlin.Int
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
public open fun toString (): kotlin.String declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
PROPERTY FAKE_OVERRIDE name:a visibility:public modality:FINAL [fake_override,val]
overridden:
public final a: kotlin.String
public abstract a: kotlin.String
FUN FAKE_OVERRIDE name:<get-a> visibility:public modality:FINAL <> ($this:<root>.KotlinClass) returnType:kotlin.String [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a visibility:public modality:FINAL [fake_override,val]
overridden:
public final fun <get-a> (): kotlin.String declared in <root>.Java1
public abstract fun <get-a> (): kotlin.String declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass
PROPERTY FAKE_OVERRIDE name:b visibility:public modality:ABSTRACT [fake_override,val]
overridden:
public abstract b: kotlin.String
FUN FAKE_OVERRIDE name:<get-b> visibility:public modality:ABSTRACT <> ($this:<root>.KotlinInterface) returnType:kotlin.String [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:b visibility:public modality:ABSTRACT [fake_override,val]
overridden:
public abstract fun <get-b> (): kotlin.String declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
PROPERTY FAKE_OVERRIDE name:c visibility:public modality:FINAL [fake_override,var]
overridden:
public final c: kotlin.String
public abstract c: kotlin.String
FUN FAKE_OVERRIDE name:<get-c> visibility:public modality:FINAL <> ($this:<root>.KotlinClass) returnType:kotlin.String [fake_override]
annotations:
JvmName(name = "getText")
correspondingProperty: PROPERTY FAKE_OVERRIDE name:c visibility:public modality:FINAL [fake_override,var]
overridden:
public final fun <get-c> (): kotlin.String declared in <root>.Java1
public abstract fun <get-c> (): kotlin.String declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass
FUN FAKE_OVERRIDE name:<set-c> visibility:public modality:FINAL <> ($this:<root>.KotlinClass, <set-?>:kotlin.String) returnType:kotlin.Unit [fake_override]
annotations:
JvmName(name = "setText")
correspondingProperty: PROPERTY FAKE_OVERRIDE name:c visibility:public modality:FINAL [fake_override,var]
overridden:
public final fun <set-c> (<set-?>: kotlin.String): kotlin.Unit declared in <root>.Java1
public abstract fun <set-c> (<set-?>: kotlin.String): kotlin.Unit declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass
VALUE_PARAMETER name:<set-?> index:0 type:kotlin.String
CLASS CLASS name:H modality:FINAL visibility:public superTypes:[<root>.Java1; <root>.KotlinInterface]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.H
PROPERTY name:b visibility:public modality:OPEN [val]
overridden:
public abstract b: kotlin.String
FIELD PROPERTY_BACKING_FIELD name:b type:kotlin.String visibility:private [final]
EXPRESSION_BODY
GET_VAR 'b: kotlin.String declared in <root>.H.<init>' type=kotlin.String origin=INITIALIZE_PROPERTY_FROM_PARAMETER
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-b> visibility:public modality:OPEN <> ($this:<root>.H) returnType:kotlin.String
correspondingProperty: PROPERTY name:b visibility:public modality:OPEN [val]
overridden:
public abstract fun <get-b> (): kotlin.String declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.H
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun <get-b> (): kotlin.String declared in <root>.H'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:b type:kotlin.String visibility:private [final]' type=kotlin.String origin=null
receiver: GET_VAR '<this>: <root>.H declared in <root>.H.<get-b>' type=<root>.H origin=null
CONSTRUCTOR visibility:public <> (b:kotlin.String) returnType:<root>.H [primary]
VALUE_PARAMETER name:b index:0 type:kotlin.String
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java1'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:H modality:FINAL visibility:public superTypes:[<root>.Java1; <root>.KotlinInterface]'
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
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:getB visibility:public modality:FINAL <> ($this:<root>.KotlinClass) returnType:kotlin.String [fake_override]
annotations:
JvmName(name = "getBJava")
overridden:
public final fun getB (): kotlin.String declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass
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
public open fun hashCode (): kotlin.Int declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:overloadMethod visibility:public modality:OPEN <> ($this:<root>.KotlinClass, first:kotlin.String, second:kotlin.String, third:kotlin.Int) returnType:kotlin.Unit [fake_override]
annotations:
JvmOverloads
overridden:
public open fun overloadMethod (first: kotlin.String, second: kotlin.String, third: kotlin.Int): kotlin.Unit declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass
VALUE_PARAMETER name:first index:0 type:kotlin.String
VALUE_PARAMETER name:second index:1 type:kotlin.String
VALUE_PARAMETER name:third index:2 type:kotlin.Int
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
public open fun toString (): kotlin.String declared in <root>.KotlinInterface
$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>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.H
BLOCK_BODY
FUN name:overloadMethod visibility:public modality:OPEN <> ($this:<root>.H, first:kotlin.String) returnType:kotlin.Unit
overridden:
public abstract fun overloadMethod (first: kotlin.String): kotlin.Unit declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.H
VALUE_PARAMETER name:first index:0 type:kotlin.String
BLOCK_BODY
PROPERTY FAKE_OVERRIDE name:a visibility:public modality:FINAL [fake_override,val]
overridden:
public final a: kotlin.String
public abstract a: kotlin.String
FUN FAKE_OVERRIDE name:<get-a> visibility:public modality:FINAL <> ($this:<root>.KotlinClass) returnType:kotlin.String [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a visibility:public modality:FINAL [fake_override,val]
overridden:
public final fun <get-a> (): kotlin.String declared in <root>.Java1
public abstract fun <get-a> (): kotlin.String declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass
PROPERTY FAKE_OVERRIDE name:c visibility:public modality:FINAL [fake_override,var]
overridden:
public final c: kotlin.String
public abstract c: kotlin.String
FUN FAKE_OVERRIDE name:<get-c> visibility:public modality:FINAL <> ($this:<root>.KotlinClass) returnType:kotlin.String [fake_override]
annotations:
JvmName(name = "getText")
correspondingProperty: PROPERTY FAKE_OVERRIDE name:c visibility:public modality:FINAL [fake_override,var]
overridden:
public final fun <get-c> (): kotlin.String declared in <root>.Java1
public abstract fun <get-c> (): kotlin.String declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass
FUN FAKE_OVERRIDE name:<set-c> visibility:public modality:FINAL <> ($this:<root>.KotlinClass, <set-?>:kotlin.String) returnType:kotlin.Unit [fake_override]
annotations:
JvmName(name = "setText")
correspondingProperty: PROPERTY FAKE_OVERRIDE name:c visibility:public modality:FINAL [fake_override,var]
overridden:
public final fun <set-c> (<set-?>: kotlin.String): kotlin.Unit declared in <root>.Java1
public abstract fun <set-c> (<set-?>: kotlin.String): kotlin.Unit declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass
VALUE_PARAMETER name:<set-?> index:0 type:kotlin.String
CLASS CLASS name:KotlinClass modality:OPEN visibility:public superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.KotlinClass
PROPERTY name:a visibility:public modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.String visibility:public [final]
annotations:
JvmField
EXPRESSION_BODY
CONST String type=kotlin.String value="1"
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-a> visibility:public modality:FINAL <> ($this:<root>.KotlinClass) returnType:kotlin.String
correspondingProperty: PROPERTY name:a visibility:public modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-a> (): kotlin.String declared in <root>.KotlinClass'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.String visibility:public [final]' type=kotlin.String origin=null
receiver: GET_VAR '<this>: <root>.KotlinClass declared in <root>.KotlinClass.<get-a>' type=<root>.KotlinClass origin=null
PROPERTY name:c visibility:public modality:FINAL [var]
FIELD PROPERTY_BACKING_FIELD name:c type:kotlin.String visibility:private
EXPRESSION_BODY
CONST String type=kotlin.String value="1"
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-c> visibility:public modality:FINAL <> ($this:<root>.KotlinClass) returnType:kotlin.String
annotations:
JvmName(name = "getText")
correspondingProperty: PROPERTY name:c visibility:public modality:FINAL [var]
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-c> (): kotlin.String declared in <root>.KotlinClass'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:c type:kotlin.String visibility:private' type=kotlin.String origin=null
receiver: GET_VAR '<this>: <root>.KotlinClass declared in <root>.KotlinClass.<get-c>' type=<root>.KotlinClass origin=null
FUN DEFAULT_PROPERTY_ACCESSOR name:<set-c> visibility:public modality:FINAL <> ($this:<root>.KotlinClass, <set-?>:kotlin.String) returnType:kotlin.Unit
annotations:
JvmName(name = "setText")
correspondingProperty: PROPERTY name:c visibility:public modality:FINAL [var]
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass
VALUE_PARAMETER name:<set-?> index:0 type:kotlin.String
BLOCK_BODY
SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:c type:kotlin.String visibility:private' type=kotlin.Unit origin=null
receiver: GET_VAR '<this>: <root>.KotlinClass declared in <root>.KotlinClass.<set-c>' type=<root>.KotlinClass origin=null
value: GET_VAR '<set-?>: kotlin.String declared in <root>.KotlinClass.<set-c>' type=kotlin.String origin=null
CLASS OBJECT name:Companion modality:FINAL visibility:public [companion] superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.KotlinClass.Companion
CONSTRUCTOR visibility:private <> () returnType:<root>.KotlinClass.Companion [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS OBJECT name:Companion modality:FINAL visibility:public [companion] 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:public modality:FINAL <> ($this:<root>.KotlinClass.Companion) returnType:kotlin.Unit
annotations:
JvmStatic
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass.Companion
BLOCK_BODY
CONSTRUCTOR visibility:public <> () returnType:<root>.KotlinClass [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:KotlinClass 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:getB visibility:public modality:FINAL <> ($this:<root>.KotlinClass) returnType:kotlin.String
annotations:
JvmName(name = "getBJava")
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun getB (): kotlin.String declared in <root>.KotlinClass'
CONST String type=kotlin.String value="b"
FUN name:overloadMethod visibility:public modality:OPEN <> ($this:<root>.KotlinClass, first:kotlin.String, second:kotlin.String, third:kotlin.Int) returnType:kotlin.Unit
annotations:
JvmOverloads
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass
VALUE_PARAMETER name:first index:0 type:kotlin.String
VALUE_PARAMETER name:second index:1 type:kotlin.String
EXPRESSION_BODY
CONST String type=kotlin.String value="text"
VALUE_PARAMETER name:third index:2 type:kotlin.Int
EXPRESSION_BODY
CONST Int type=kotlin.Int value=10
BLOCK_BODY
CLASS INTERFACE name:KotlinInterface modality:ABSTRACT visibility:public superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.KotlinInterface
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:ABSTRACT <> ($this:<root>.KotlinInterface) returnType:kotlin.Unit
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
FUN name:overloadMethod visibility:public modality:ABSTRACT <> ($this:<root>.KotlinInterface, first:kotlin.String) returnType:kotlin.Unit
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
VALUE_PARAMETER name:first index:0 type:kotlin.String
PROPERTY name:a visibility:public modality:ABSTRACT [val]
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-a> visibility:public modality:ABSTRACT <> ($this:<root>.KotlinInterface) returnType:kotlin.String
correspondingProperty: PROPERTY name:a visibility:public modality:ABSTRACT [val]
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
PROPERTY name:b visibility:public modality:ABSTRACT [val]
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-b> visibility:public modality:ABSTRACT <> ($this:<root>.KotlinInterface) returnType:kotlin.String
correspondingProperty: PROPERTY name:b visibility:public modality:ABSTRACT [val]
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
PROPERTY name:c visibility:public modality:ABSTRACT [var]
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-c> visibility:public modality:ABSTRACT <> ($this:<root>.KotlinInterface) returnType:kotlin.String
correspondingProperty: PROPERTY name:c visibility:public modality:ABSTRACT [var]
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
FUN DEFAULT_PROPERTY_ACCESSOR name:<set-c> visibility:public modality:ABSTRACT <> ($this:<root>.KotlinInterface, <set-?>:kotlin.String) returnType:kotlin.Unit
correspondingProperty: PROPERTY name:c visibility:public modality:ABSTRACT [var]
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
VALUE_PARAMETER name:<set-?> index:0 type:kotlin.String
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
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public final fun <get-a> (): kotlin.String declared in <root>.A' type=kotlin.String origin=GET_PROPERTY
$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-c> (): kotlin.String declared in <root>.A' type=kotlin.String origin=GET_PROPERTY
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
CALL 'public final fun <set-c> (<set-?>: kotlin.String): kotlin.Unit declared in <root>.A' type=kotlin.Unit origin=EQ
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
<set-?>: CONST String type=kotlin.String value="2"
CALL 'public open fun overloadMethod (first: kotlin.String, second: kotlin.String, third: kotlin.Int): 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
first: CONST String type=kotlin.String value=""
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public final fun <get-a> (): kotlin.String declared in <root>.B' type=kotlin.String origin=GET_PROPERTY
$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-c> (): kotlin.String declared in <root>.B' type=kotlin.String origin=GET_PROPERTY
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
CALL 'public final fun <set-c> (<set-?>: kotlin.String): 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 String type=kotlin.String value="2"
CALL 'public open fun overloadMethod (first: kotlin.String, second: kotlin.String, third: kotlin.Int): 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
first: CONST String type=kotlin.String value=""
second: CONST String type=kotlin.String value="2"
third: CONST Int type=kotlin.Int value=3
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun <get-a> (): @[EnhancedNullability] kotlin.String declared in <root>.C' type=@[EnhancedNullability] kotlin.String origin=GET_PROPERTY
$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 open fun <get-c> (): @[EnhancedNullability] kotlin.String declared in <root>.C' type=@[EnhancedNullability] kotlin.String origin=GET_PROPERTY
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
CALL 'public open fun <set-c> (<set-?>: @[FlexibleNullability] kotlin.String?): 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 String type=kotlin.String value="2"
CALL 'public open fun overloadMethod (first: @[EnhancedNullability] kotlin.String, second: @[EnhancedNullability] kotlin.String, third: kotlin.Int): 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
first: CONST String type=kotlin.String value=""
CALL 'public open fun overloadMethod (first: @[EnhancedNullability] kotlin.String, second: @[EnhancedNullability] kotlin.String, third: kotlin.Int): 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
first: CONST String type=kotlin.String value=""
second: CONST String type=kotlin.String value=""
third: CONST Int type=kotlin.Int value=1
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun <get-a> (): kotlin.String declared in <root>.D' type=kotlin.String origin=GET_PROPERTY
$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 open fun <get-c> (): @[EnhancedNullability] kotlin.String declared in <root>.D' type=@[EnhancedNullability] kotlin.String origin=GET_PROPERTY
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
CALL 'public open fun <set-c> (<set-?>: @[FlexibleNullability] kotlin.String?): kotlin.Unit declared in <root>.D' type=kotlin.Unit origin=EQ
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
<set-?>: CONST String type=kotlin.String value="2"
CALL 'public open fun overloadMethod (first: kotlin.String, second: kotlin.String, third: kotlin.Int): 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
first: CONST String type=kotlin.String value=""
CALL 'public open fun overloadMethod (first: kotlin.String, second: kotlin.String, third: kotlin.Int): 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
first: CONST String type=kotlin.String value=""
second: CONST String type=kotlin.String value=""
third: CONST Int type=kotlin.Int value=1
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public final fun <get-a> (): kotlin.String declared in <root>.E' type=kotlin.String 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 getB (): kotlin.String declared in <root>.E' type=kotlin.String 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-c> (): kotlin.String declared in <root>.E' type=kotlin.String origin=GET_PROPERTY
$this: GET_VAR 'e: <root>.E declared in <root>.test' type=<root>.E origin=null
CALL 'public final fun <set-c> (<set-?>: kotlin.String): kotlin.Unit declared in <root>.E' type=kotlin.Unit origin=EQ
$this: GET_VAR 'e: <root>.E declared in <root>.test' type=<root>.E origin=null
<set-?>: CONST String type=kotlin.String value="2"
CALL 'public abstract fun setB (text: @[FlexibleNullability] kotlin.String?): kotlin.Unit declared in <root>.E' type=kotlin.Unit origin=EQ
$this: GET_VAR 'e: <root>.E declared in <root>.test' type=<root>.E origin=null
text: CONST String type=kotlin.String value="2"
CALL 'public open fun overloadMethod (first: kotlin.String, second: kotlin.String, third: kotlin.Int): 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
first: CONST String type=kotlin.String value=""
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public final fun <get-a> (): kotlin.String declared in <root>.F' type=kotlin.String 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 'public final fun getB (): kotlin.String declared in <root>.F' type=kotlin.String 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 'public final fun <get-c> (): kotlin.String declared in <root>.F' type=kotlin.String origin=GET_PROPERTY
$this: GET_VAR 'f: <root>.F declared in <root>.test' type=<root>.F origin=null
CALL 'public final fun <set-c> (<set-?>: kotlin.String): kotlin.Unit declared in <root>.F' type=kotlin.Unit origin=EQ
$this: GET_VAR 'f: <root>.F declared in <root>.test' type=<root>.F origin=null
<set-?>: CONST String type=kotlin.String value="2"
CALL 'public open fun setB (text: kotlin.String): kotlin.Unit declared in <root>.F' type=kotlin.Unit origin=EQ
$this: GET_VAR 'f: <root>.F declared in <root>.test' type=<root>.F origin=null
text: CONST String type=kotlin.String value="2"
CALL 'public open fun overloadMethod (first: kotlin.String, second: kotlin.String, third: kotlin.Int): 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
first: CONST String type=kotlin.String value=""
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public final fun <get-a> (): kotlin.String declared in <root>.G' type=kotlin.String 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 'public abstract fun <get-b> (): kotlin.String declared in <root>.G' type=kotlin.String 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 'public final fun <get-c> (): kotlin.String declared in <root>.G' type=kotlin.String origin=GET_PROPERTY
$this: GET_VAR 'g: <root>.G declared in <root>.test' type=<root>.G origin=null
CALL 'public final fun <set-c> (<set-?>: kotlin.String): kotlin.Unit declared in <root>.G' type=kotlin.Unit origin=EQ
$this: GET_VAR 'g: <root>.G declared in <root>.test' type=<root>.G origin=null
<set-?>: CONST String type=kotlin.String value="2"
CALL 'public abstract fun overloadMethod (first: kotlin.String): 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
first: CONST String type=kotlin.String value=""
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public final fun <get-a> (): kotlin.String declared in <root>.H' type=kotlin.String origin=GET_PROPERTY
$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 open fun <get-b> (): kotlin.String declared in <root>.H' type=kotlin.String origin=GET_PROPERTY
$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-c> (): kotlin.String declared in <root>.H' type=kotlin.String origin=GET_PROPERTY
$this: GET_VAR 'h: <root>.H declared in <root>.test' type=<root>.H origin=null
CALL 'public open fun overloadMethod (first: kotlin.String): 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
first: CONST String type=kotlin.String value=""
CALL 'public open fun overloadMethod (first: kotlin.String, second: kotlin.String, third: kotlin.Int): 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
first: CONST String type=kotlin.String value=""
second: CONST String type=kotlin.String value=""
third: CONST Int type=kotlin.Int value=1
@@ -0,0 +1,137 @@
// TARGET_BACKEND: JVM
// WITH_STDLIB
// SEPARATE_SIGNATURE_DUMP_FOR_K2
// ^ ISSUE: KT-66048
// FILE: Java1.java
public class Java1 extends KotlinClass { }
// FILE: Java2.java
public class Java2 extends KotlinClass {
public String getA() {
return "2";
}
public String getB() {
return "2";
}
public void setC(String text) { }
public String getC() {
return "2";
}
public void overloadMethod(String first, String second, int third) { }
}
// FILE: Java3.java
interface Java3 {
String a = "2";
void foo();
String getB();
void setB(String text);
void setC(String text);
String getC();
void overloadMethod(String first, String second, int third);
}
// FILE: 1.kt
open class KotlinClass {
@JvmField
val a = "1"
companion object {
@JvmStatic
fun foo() {}
}
@JvmName("getBJava")
fun getB() : String = "b"
@get:JvmName("getText")
@set:JvmName("setText")
var c = "1"
@JvmOverloads
open fun overloadMethod(first : String, second : String = "text", third : Int = 10) { }
}
class A : Java1() //Kotlin ← Java ← Kotlin
class B : Java1() {
override fun overloadMethod(first: String, second: String, third: Int) { }
}
class C : Java2() // Kotlin ← Java (override) ← Kotlin
class D : Java2() {
override val a: String
get() = "3"
override fun overloadMethod(first: String, second: String, third: Int) { }
}
abstract class E : Java1() , Java3 // Kotlin ← Java1, Java2 ← Kotlin2
class F : Java1() , Java3 {
override fun foo() { }
override fun setB(text: String) { }
override fun setC(text: String) { }
override fun getC(): String {
return "5"
}
}
abstract class G : Java1() , KotlinInterface // Kotlin ← Java, Kotlin2 ← Kotlin3
class H(override val b: String) : Java1() , KotlinInterface {
override fun foo() { }
override fun overloadMethod(first: String) { }
}
interface KotlinInterface{
val a: String
fun foo()
val b : String
var c : String
fun overloadMethod(first : String)
}
fun test(a: A, b: B, c: C, d: D, e: E, f: F, g: G, h: H) {
a.a
a.c
a.c = "2"
a.overloadMethod("")
b.a
b.c
b.c = "2"
b.overloadMethod("", "2", 3)
c.a
c.c
c.c = "2"
c.overloadMethod("")
c.overloadMethod("","",1)
d.a
d.c
d.c = "2"
d.overloadMethod("")
d.overloadMethod("","",1)
e.a
e.b
e.c
e.c = "2"
e.b = "2"
e.overloadMethod("")
f.a
f.b
f.c
f.c = "2"
f.b = "2"
f.overloadMethod("")
g.a
g.b
g.c
g.c = "2"
g.overloadMethod("")
h.a
h.b
h.c
h.overloadMethod("")
h.overloadMethod("", "", 1)
}
@@ -0,0 +1,207 @@
class A : Java1 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
}
class B : Java1 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
override fun overloadMethod(first: String, second: String, third: Int) {
}
}
class C : Java2 {
constructor() /* primary */ {
super/*Java2*/()
/* <init>() */
}
}
class D : Java2 {
constructor() /* primary */ {
super/*Java2*/()
/* <init>() */
}
override fun overloadMethod(first: String, second: String, third: Int) {
}
override val a: String
override get(): String {
return "3"
}
}
abstract class E : Java1, Java3 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
}
class F : Java1, Java3 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
override fun foo() {
}
override fun getC(): String {
return "5"
}
override fun setB(text: String) {
}
override fun setC(text: String) {
}
}
abstract class G : Java1, KotlinInterface {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
}
class H : Java1, KotlinInterface {
override val b: String
field = b
override get
constructor(b: String) /* primary */ {
super/*Java1*/()
/* <init>() */
}
override fun foo() {
}
override fun overloadMethod(first: String) {
}
}
open class KotlinClass {
val a: String
field = "1"
get
var c: String
field = "1"
@JvmName(name = "getText")
get
@JvmName(name = "setText")
set
companion object Companion {
private constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
@JvmStatic
fun foo() {
}
}
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
@JvmName(name = "getBJava")
fun getB(): String {
return "b"
}
@JvmOverloads
open fun overloadMethod(first: String, second: String = "text", third: Int = 10) {
}
}
interface KotlinInterface {
abstract fun foo()
abstract fun overloadMethod(first: String)
abstract val a: String
abstract get
abstract val b: String
abstract get
abstract var c: String
abstract get
abstract set
}
fun test(a: A, b: B, c: C, d: D, e: E, f: F, g: G, h: H) {
a.<get-a>() /*~> Unit */
a.<get-c>() /*~> Unit */
a.<set-c>(<set-?> = "2")
a.overloadMethod(first = "")
b.<get-a>() /*~> Unit */
b.<get-c>() /*~> Unit */
b.<set-c>(<set-?> = "2")
b.overloadMethod(first = "", second = "2", third = 3)
c.<get-a>() /*~> Unit */
c.<get-c>() /*~> Unit */
c.<set-c>(<set-?> = "2")
c.overloadMethod(first = "")
c.overloadMethod(first = "", second = "", third = 1)
d.<get-a>() /*~> Unit */
d.<get-c>() /*~> Unit */
d.<set-c>(<set-?> = "2")
d.overloadMethod(first = "")
d.overloadMethod(first = "", second = "", third = 1)
e.<get-a>() /*~> Unit */
e.getB() /*~> Unit */
e.<get-c>() /*~> Unit */
e.<set-c>(<set-?> = "2")
e.setB(text = "2")
e.overloadMethod(first = "")
f.<get-a>() /*~> Unit */
f.getB() /*~> Unit */
f.<get-c>() /*~> Unit */
f.<set-c>(<set-?> = "2")
f.setB(text = "2")
f.overloadMethod(first = "")
g.<get-a>() /*~> Unit */
g.<get-b>() /*~> Unit */
g.<get-c>() /*~> Unit */
g.<set-c>(<set-?> = "2")
g.overloadMethod(first = "")
h.<get-a>() /*~> Unit */
h.<get-b>() /*~> Unit */
h.<get-c>() /*~> Unit */
h.overloadMethod(first = "")
h.overloadMethod(first = "", second = "", third = 1)
}
@@ -0,0 +1,660 @@
// 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 JVM_IR:
// Mangled name: A#getB(){}kotlin.String
// Public signature: /A.getB|-4761387797922949255[0]
// Public signature debug description: getB(){}kotlin.String
@JvmName(name = "getBJava")
/* fake */ override fun getB(): String
// CHECK:
// Mangled name: A#overloadMethod(kotlin.String;kotlin.String;kotlin.Int){}
// Public signature: /A.overloadMethod|6854898171569188871[0]
// Public signature debug description: overloadMethod(kotlin.String;kotlin.String;kotlin.Int){}
@JvmOverloads
/* fake */ override fun overloadMethod(first: String, second: String, third: Int): Unit
// CHECK:
// Mangled name: A{}a
// Public signature: /A.a|-1200697420457237799[0]
// Public signature debug description: {}a
/* fake */ override val a: String
// CHECK JVM_IR:
// Mangled name: A#<get-a>(){}kotlin.String
// Public signature: /A.a.<get-a>|-6318309956076983327[0]
// Public signature debug description: <get-a>(){}kotlin.String
/* fake */ override get(): String
// CHECK:
// Mangled name: A{}c
// Public signature: /A.c|-4416962153448040627[0]
// Public signature debug description: {}c
/* fake */ override var c: String
// CHECK JVM_IR:
// Mangled name: A#<get-c>(){}kotlin.String
// Public signature: /A.c.<get-c>|-1685601560056418491[0]
// Public signature debug description: <get-c>(){}kotlin.String
@JvmName(name = "getText")
/* fake */ override get(): String
// CHECK:
// Mangled name: A#<set-c>(kotlin.String){}
// Public signature: /A.c.<set-c>|8694985733648793496[0]
// Public signature debug description: <set-c>(kotlin.String){}
@JvmName(name = "setText")
/* fake */ override set(<set-?>: String): 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 JVM_IR:
// Mangled name: B#getB(){}kotlin.String
// Public signature: /B.getB|-4761387797922949255[0]
// Public signature debug description: getB(){}kotlin.String
@JvmName(name = "getBJava")
/* fake */ override fun getB(): String
// CHECK:
// Mangled name: B#overloadMethod(kotlin.String;kotlin.String;kotlin.Int){}
// Public signature: /B.overloadMethod|6854898171569188871[0]
// Public signature debug description: overloadMethod(kotlin.String;kotlin.String;kotlin.Int){}
override fun overloadMethod(first: String, second: String, third: Int): Unit
// CHECK:
// Mangled name: B{}a
// Public signature: /B.a|-1200697420457237799[0]
// Public signature debug description: {}a
/* fake */ override val a: String
// CHECK JVM_IR:
// Mangled name: B#<get-a>(){}kotlin.String
// Public signature: /B.a.<get-a>|-6318309956076983327[0]
// Public signature debug description: <get-a>(){}kotlin.String
/* fake */ override get(): String
// CHECK:
// Mangled name: B{}c
// Public signature: /B.c|-4416962153448040627[0]
// Public signature debug description: {}c
/* fake */ override var c: String
// CHECK JVM_IR:
// Mangled name: B#<get-c>(){}kotlin.String
// Public signature: /B.c.<get-c>|-1685601560056418491[0]
// Public signature debug description: <get-c>(){}kotlin.String
@JvmName(name = "getText")
/* fake */ override get(): String
// CHECK:
// Mangled name: B#<set-c>(kotlin.String){}
// Public signature: /B.c.<set-c>|8694985733648793496[0]
// Public signature debug description: <set-c>(kotlin.String){}
@JvmName(name = "setText")
/* fake */ override set(<set-?>: String): 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 JVM_IR:
// Mangled name: C#getB(){}kotlin.String{EnhancedNullability}
// Public signature: /C.getB|4278170284003720919[0]
// Public signature debug description: getB(){}kotlin.String{EnhancedNullability}
/* fake */ override fun getB(): @EnhancedNullability String
// CHECK:
// Mangled name: C#overloadMethod(kotlin.String{EnhancedNullability};kotlin.String{EnhancedNullability};kotlin.Int){}
// Public signature: /C.overloadMethod|8770045736695034254[0]
// Public signature debug description: overloadMethod(kotlin.String{EnhancedNullability};kotlin.String{EnhancedNullability};kotlin.Int){}
/* fake */ override fun overloadMethod(first: @EnhancedNullability String, second: @EnhancedNullability String, third: Int): Unit
// CHECK:
// Mangled name: C{}a
// Public signature: /C.a|-1200697420457237799[0]
// Public signature debug description: {}a
/* fake */ override val a: @EnhancedNullability String
// CHECK JVM_IR:
// Mangled name: C#<get-a>(){}kotlin.String{EnhancedNullability}
// Public signature: /C.a.<get-a>|-7145393266243152488[0]
// Public signature debug description: <get-a>(){}kotlin.String{EnhancedNullability}
/* fake */ override get(): @EnhancedNullability String
// CHECK:
// Mangled name: C{}c
// Public signature: /C.c|-4416962153448040627[0]
// Public signature debug description: {}c
/* fake */ override var c: @EnhancedNullability String
// CHECK JVM_IR:
// Mangled name: C#<get-c>(){}kotlin.String{EnhancedNullability}
// Public signature: /C.c.<get-c>|-2824529966014301292[0]
// Public signature debug description: <get-c>(){}kotlin.String{EnhancedNullability}
/* fake */ override get(): @EnhancedNullability String
// CHECK:
// Mangled name: C#<set-c>(kotlin.String?){}
// Public signature: /C.c.<set-c>|7821982893837257305[0]
// Public signature debug description: <set-c>(kotlin.String?){}
/* fake */ override set(<set-?>: String?): 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 JVM_IR:
// Mangled name: D#getB(){}kotlin.String{EnhancedNullability}
// Public signature: /D.getB|4278170284003720919[0]
// Public signature debug description: getB(){}kotlin.String{EnhancedNullability}
/* fake */ override fun getB(): @EnhancedNullability String
// CHECK:
// Mangled name: D#overloadMethod(kotlin.String;kotlin.String;kotlin.Int){}
// Public signature: /D.overloadMethod|6854898171569188871[0]
// Public signature debug description: overloadMethod(kotlin.String;kotlin.String;kotlin.Int){}
override fun overloadMethod(first: String, second: String, third: Int): Unit
// CHECK:
// Mangled name: D{}c
// Public signature: /D.c|-4416962153448040627[0]
// Public signature debug description: {}c
/* fake */ override var c: @EnhancedNullability String
// CHECK JVM_IR:
// Mangled name: D#<get-c>(){}kotlin.String{EnhancedNullability}
// Public signature: /D.c.<get-c>|-2824529966014301292[0]
// Public signature debug description: <get-c>(){}kotlin.String{EnhancedNullability}
/* fake */ override get(): @EnhancedNullability String
// CHECK:
// Mangled name: D#<set-c>(kotlin.String?){}
// Public signature: /D.c.<set-c>|7821982893837257305[0]
// Public signature debug description: <set-c>(kotlin.String?){}
/* fake */ override set(<set-?>: String?): Unit
// CHECK:
// Mangled name: D{}a
// Public signature: /D.a|-1200697420457237799[0]
// Public signature debug description: {}a
override val a: String
// CHECK JVM_IR:
// Mangled name: D#<get-a>(){}kotlin.String
// Public signature: /D.a.<get-a>|-6318309956076983327[0]
// Public signature debug description: <get-a>(){}kotlin.String
override get(): String
}
// CHECK:
// Mangled name: E
// Public signature: /E|null[0]
abstract class E : Java1, 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(){}
abstract /* fake */ override fun foo(): Unit
// CHECK JVM_IR:
// Mangled name: E#getB(){}kotlin.String
// Public signature: /E.getB|-4761387797922949255[0]
// Public signature debug description: getB(){}kotlin.String
@JvmName(name = "getBJava")
/* fake */ override fun getB(): String
// CHECK JVM_IR:
// Mangled name: E#getC(){}kotlin.String?
// Public signature: /E.getC|-4926278272686304201[0]
// Public signature debug description: getC(){}kotlin.String?
abstract /* fake */ override fun getC(): String?
// CHECK:
// Mangled name: E#overloadMethod(kotlin.String;kotlin.String;kotlin.Int){}
// Public signature: /E.overloadMethod|6854898171569188871[0]
// Public signature debug description: overloadMethod(kotlin.String;kotlin.String;kotlin.Int){}
@JvmOverloads
/* fake */ override fun overloadMethod(first: String, second: String, third: Int): Unit
// CHECK:
// Mangled name: E#setB(kotlin.String?){}
// Public signature: /E.setB|3235024716846847901[0]
// Public signature debug description: setB(kotlin.String?){}
abstract /* fake */ override fun setB(text: String?): Unit
// CHECK:
// Mangled name: E#setC(kotlin.String?){}
// Public signature: /E.setC|8854730909867222504[0]
// Public signature debug description: setC(kotlin.String?){}
abstract /* fake */ override fun setC(text: String?): Unit
// CHECK:
// Mangled name: E{}a
// Public signature: /E.a|-1200697420457237799[0]
// Public signature debug description: {}a
/* fake */ override val a: String
// CHECK JVM_IR:
// Mangled name: E#<get-a>(){}kotlin.String
// Public signature: /E.a.<get-a>|-6318309956076983327[0]
// Public signature debug description: <get-a>(){}kotlin.String
/* fake */ override get(): String
// CHECK:
// Mangled name: E{}c
// Public signature: /E.c|-4416962153448040627[0]
// Public signature debug description: {}c
/* fake */ override var c: String
// CHECK JVM_IR:
// Mangled name: E#<get-c>(){}kotlin.String
// Public signature: /E.c.<get-c>|-1685601560056418491[0]
// Public signature debug description: <get-c>(){}kotlin.String
@JvmName(name = "getText")
/* fake */ override get(): String
// CHECK:
// Mangled name: E#<set-c>(kotlin.String){}
// Public signature: /E.c.<set-c>|8694985733648793496[0]
// Public signature debug description: <set-c>(kotlin.String){}
@JvmName(name = "setText")
/* fake */ override set(<set-?>: String): Unit
}
// CHECK:
// Mangled name: F
// Public signature: /F|null[0]
class F : Java1, Java3 {
// CHECK:
// Mangled name: F#<init>(){}
// Public signature: /F.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: F#getB(){}kotlin.String
// Public signature: /F.getB|-4761387797922949255[0]
// Public signature debug description: getB(){}kotlin.String
@JvmName(name = "getBJava")
/* fake */ override fun getB(): String
// CHECK:
// Mangled name: F#overloadMethod(kotlin.String;kotlin.String;kotlin.Int){}
// Public signature: /F.overloadMethod|6854898171569188871[0]
// Public signature debug description: overloadMethod(kotlin.String;kotlin.String;kotlin.Int){}
@JvmOverloads
/* fake */ override fun overloadMethod(first: String, second: String, third: Int): Unit
// CHECK:
// Mangled name: F#foo(){}
// Public signature: /F.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
override fun foo(): Unit
// CHECK JVM_IR:
// Mangled name: F#getC(){}kotlin.String
// Public signature: /F.getC|-869268604338261875[0]
// Public signature debug description: getC(){}kotlin.String
override fun getC(): String
// CHECK:
// Mangled name: F#setB(kotlin.String){}
// Public signature: /F.setB|-8766973500211804524[0]
// Public signature debug description: setB(kotlin.String){}
override fun setB(text: String): Unit
// CHECK:
// Mangled name: F#setC(kotlin.String){}
// Public signature: /F.setC|2472800919204397200[0]
// Public signature debug description: setC(kotlin.String){}
override fun setC(text: String): Unit
// CHECK:
// Mangled name: F{}a
// Public signature: /F.a|-1200697420457237799[0]
// Public signature debug description: {}a
/* fake */ override val a: String
// CHECK JVM_IR:
// Mangled name: F#<get-a>(){}kotlin.String
// Public signature: /F.a.<get-a>|-6318309956076983327[0]
// Public signature debug description: <get-a>(){}kotlin.String
/* fake */ override get(): String
// CHECK:
// Mangled name: F{}c
// Public signature: /F.c|-4416962153448040627[0]
// Public signature debug description: {}c
/* fake */ override var c: String
// CHECK JVM_IR:
// Mangled name: F#<get-c>(){}kotlin.String
// Public signature: /F.c.<get-c>|-1685601560056418491[0]
// Public signature debug description: <get-c>(){}kotlin.String
@JvmName(name = "getText")
/* fake */ override get(): String
// CHECK:
// Mangled name: F#<set-c>(kotlin.String){}
// Public signature: /F.c.<set-c>|8694985733648793496[0]
// Public signature debug description: <set-c>(kotlin.String){}
@JvmName(name = "setText")
/* fake */ override set(<set-?>: String): Unit
}
// CHECK:
// Mangled name: G
// Public signature: /G|null[0]
abstract class G : Java1, KotlinInterface {
// 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 JVM_IR:
// Mangled name: G#getB(){}kotlin.String
// Public signature: /G.getB|-4761387797922949255[0]
// Public signature debug description: getB(){}kotlin.String
@JvmName(name = "getBJava")
/* fake */ override fun getB(): String
// CHECK:
// Mangled name: G#overloadMethod(kotlin.String){}
// Public signature: /G.overloadMethod|8031992761249002127[0]
// Public signature debug description: overloadMethod(kotlin.String){}
abstract /* fake */ override fun overloadMethod(first: String): Unit
// CHECK:
// Mangled name: G#overloadMethod(kotlin.String;kotlin.String;kotlin.Int){}
// Public signature: /G.overloadMethod|6854898171569188871[0]
// Public signature debug description: overloadMethod(kotlin.String;kotlin.String;kotlin.Int){}
@JvmOverloads
/* fake */ override fun overloadMethod(first: String, second: String, third: Int): Unit
// CHECK:
// Mangled name: G{}a
// Public signature: /G.a|-1200697420457237799[0]
// Public signature debug description: {}a
/* fake */ override val a: String
// CHECK JVM_IR:
// Mangled name: G#<get-a>(){}kotlin.String
// Public signature: /G.a.<get-a>|-6318309956076983327[0]
// Public signature debug description: <get-a>(){}kotlin.String
/* fake */ override get(): String
// CHECK:
// Mangled name: G{}b
// Public signature: /G.b|772347207915745207[0]
// Public signature debug description: {}b
abstract /* fake */ override val b: String
// CHECK JVM_IR:
// Mangled name: G#<get-b>(){}kotlin.String
// Public signature: /G.b.<get-b>|5457451065030643294[0]
// Public signature debug description: <get-b>(){}kotlin.String
abstract /* fake */ override get(): String
// CHECK:
// Mangled name: G{}c
// Public signature: /G.c|-4416962153448040627[0]
// Public signature debug description: {}c
/* fake */ override var c: String
// CHECK JVM_IR:
// Mangled name: G#<get-c>(){}kotlin.String
// Public signature: /G.c.<get-c>|-1685601560056418491[0]
// Public signature debug description: <get-c>(){}kotlin.String
@JvmName(name = "getText")
/* fake */ override get(): String
// CHECK:
// Mangled name: G#<set-c>(kotlin.String){}
// Public signature: /G.c.<set-c>|8694985733648793496[0]
// Public signature debug description: <set-c>(kotlin.String){}
@JvmName(name = "setText")
/* fake */ override set(<set-?>: String): Unit
}
// CHECK:
// Mangled name: H
// Public signature: /H|null[0]
class H : Java1, KotlinInterface {
// CHECK:
// Mangled name: H{}b
// Public signature: /H.b|772347207915745207[0]
// Public signature debug description: {}b
override val b: String
// CHECK JVM_IR:
// Mangled name: H#<get-b>(){}kotlin.String
// Public signature: /H.b.<get-b>|5457451065030643294[0]
// Public signature debug description: <get-b>(){}kotlin.String
override get
// CHECK:
// Mangled name: H#<init>(kotlin.String){}
// Public signature: /H.<init>|1280618353163213788[0]
// Public signature debug description: <init>(kotlin.String){}
constructor(b: String) /* primary */
// CHECK JVM_IR:
// Mangled name: H#getB(){}kotlin.String
// Public signature: /H.getB|-4761387797922949255[0]
// Public signature debug description: getB(){}kotlin.String
@JvmName(name = "getBJava")
/* fake */ override fun getB(): String
// CHECK:
// Mangled name: H#overloadMethod(kotlin.String;kotlin.String;kotlin.Int){}
// Public signature: /H.overloadMethod|6854898171569188871[0]
// Public signature debug description: overloadMethod(kotlin.String;kotlin.String;kotlin.Int){}
@JvmOverloads
/* fake */ override fun overloadMethod(first: String, second: String, third: Int): Unit
// CHECK:
// Mangled name: H#foo(){}
// Public signature: /H.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
override fun foo(): Unit
// CHECK:
// Mangled name: H#overloadMethod(kotlin.String){}
// Public signature: /H.overloadMethod|8031992761249002127[0]
// Public signature debug description: overloadMethod(kotlin.String){}
override fun overloadMethod(first: String): Unit
// CHECK:
// Mangled name: H{}a
// Public signature: /H.a|-1200697420457237799[0]
// Public signature debug description: {}a
/* fake */ override val a: String
// CHECK JVM_IR:
// Mangled name: H#<get-a>(){}kotlin.String
// Public signature: /H.a.<get-a>|-6318309956076983327[0]
// Public signature debug description: <get-a>(){}kotlin.String
/* fake */ override get(): String
// CHECK:
// Mangled name: H{}c
// Public signature: /H.c|-4416962153448040627[0]
// Public signature debug description: {}c
/* fake */ override var c: String
// CHECK JVM_IR:
// Mangled name: H#<get-c>(){}kotlin.String
// Public signature: /H.c.<get-c>|-1685601560056418491[0]
// Public signature debug description: <get-c>(){}kotlin.String
@JvmName(name = "getText")
/* fake */ override get(): String
// CHECK:
// Mangled name: H#<set-c>(kotlin.String){}
// Public signature: /H.c.<set-c>|8694985733648793496[0]
// Public signature debug description: <set-c>(kotlin.String){}
@JvmName(name = "setText")
/* fake */ override set(<set-?>: String): Unit
}
// CHECK:
// Mangled name: KotlinClass
// Public signature: /KotlinClass|null[0]
open class KotlinClass {
// CHECK:
// Mangled name: KotlinClass{}a
// Public signature: /KotlinClass.a|-1200697420457237799[0]
// Public signature debug description: {}a
val a: String
// CHECK JVM_IR:
// Mangled name: KotlinClass#<get-a>(){}kotlin.String
// Public signature: /KotlinClass.a.<get-a>|-6318309956076983327[0]
// Public signature debug description: <get-a>(){}kotlin.String
get
// CHECK:
// Mangled name: KotlinClass{}c
// Public signature: /KotlinClass.c|-4416962153448040627[0]
// Public signature debug description: {}c
var c: String
// CHECK JVM_IR:
// Mangled name: KotlinClass#<get-c>(){}kotlin.String
// Public signature: /KotlinClass.c.<get-c>|-1685601560056418491[0]
// Public signature debug description: <get-c>(){}kotlin.String
@JvmName(name = "getText")
get
// CHECK:
// Mangled name: KotlinClass#<set-c>(kotlin.String){}
// Public signature: /KotlinClass.c.<set-c>|8694985733648793496[0]
// Public signature debug description: <set-c>(kotlin.String){}
@JvmName(name = "setText")
set
// CHECK:
// Mangled name: KotlinClass.Companion
// Public signature: /KotlinClass.Companion|null[0]
companion object Companion {
// CHECK:
// Mangled name: KotlinClass.Companion#<init>(){}
// Public signature: /KotlinClass.Companion.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
private constructor() /* primary */
// CHECK:
// Mangled name: KotlinClass.Companion#foo(){}
// Public signature: /KotlinClass.Companion.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
@JvmStatic
fun foo(): Unit
}
// CHECK:
// Mangled name: KotlinClass#<init>(){}
// Public signature: /KotlinClass.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: KotlinClass#getB(){}kotlin.String
// Public signature: /KotlinClass.getB|-4761387797922949255[0]
// Public signature debug description: getB(){}kotlin.String
@JvmName(name = "getBJava")
fun getB(): String
// CHECK:
// Mangled name: KotlinClass#overloadMethod(kotlin.String;kotlin.String;kotlin.Int){}
// Public signature: /KotlinClass.overloadMethod|6854898171569188871[0]
// Public signature debug description: overloadMethod(kotlin.String;kotlin.String;kotlin.Int){}
@JvmOverloads
open fun overloadMethod(first: String, second: String, third: Int): Unit
}
// CHECK:
// Mangled name: KotlinInterface
// Public signature: /KotlinInterface|null[0]
interface KotlinInterface {
// CHECK:
// Mangled name: KotlinInterface#foo(){}
// Public signature: /KotlinInterface.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
abstract fun foo(): Unit
// CHECK:
// Mangled name: KotlinInterface#overloadMethod(kotlin.String){}
// Public signature: /KotlinInterface.overloadMethod|8031992761249002127[0]
// Public signature debug description: overloadMethod(kotlin.String){}
abstract fun overloadMethod(first: String): Unit
// CHECK:
// Mangled name: KotlinInterface{}a
// Public signature: /KotlinInterface.a|-1200697420457237799[0]
// Public signature debug description: {}a
abstract val a: String
// CHECK JVM_IR:
// Mangled name: KotlinInterface#<get-a>(){}kotlin.String
// Public signature: /KotlinInterface.a.<get-a>|-6318309956076983327[0]
// Public signature debug description: <get-a>(){}kotlin.String
abstract get
// CHECK:
// Mangled name: KotlinInterface{}b
// Public signature: /KotlinInterface.b|772347207915745207[0]
// Public signature debug description: {}b
abstract val b: String
// CHECK JVM_IR:
// Mangled name: KotlinInterface#<get-b>(){}kotlin.String
// Public signature: /KotlinInterface.b.<get-b>|5457451065030643294[0]
// Public signature debug description: <get-b>(){}kotlin.String
abstract get
// CHECK:
// Mangled name: KotlinInterface{}c
// Public signature: /KotlinInterface.c|-4416962153448040627[0]
// Public signature debug description: {}c
abstract var c: String
// CHECK JVM_IR:
// Mangled name: KotlinInterface#<get-c>(){}kotlin.String
// Public signature: /KotlinInterface.c.<get-c>|-1685601560056418491[0]
// Public signature debug description: <get-c>(){}kotlin.String
abstract get
// CHECK:
// Mangled name: KotlinInterface#<set-c>(kotlin.String){}
// Public signature: /KotlinInterface.c.<set-c>|8694985733648793496[0]
// Public signature debug description: <set-c>(kotlin.String){}
abstract set
}
// 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,229 @@
FILE fqName:<root> fileName:/1.kt
CLASS CLASS name:A modality:OPEN 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: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: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:toSet visibility:public modality:OPEN <> ($this:<root>.Java1, elements:@[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableCollection<@[EnhancedNullability] @[NotNull(value = <null>)] kotlin.String>?) returnType:@[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableSet<@[EnhancedNullability] @[NotNull(value = <null>)] kotlin.String>? [fake_override]
overridden:
public open fun toSet (elements: @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableCollection<@[EnhancedNullability] @[NotNull(value = <null>)] kotlin.String>?): @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableSet<@[EnhancedNullability] @[NotNull(value = <null>)] kotlin.String>? declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:elements index:0 type:@[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableCollection<@[EnhancedNullability] @[NotNull(value = <null>)] kotlin.String>?
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: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:toSet visibility:public modality:OPEN <> ($this:<root>.Java1, elements:@[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableCollection<@[EnhancedNullability] @[NotNull(value = <null>)] kotlin.String>?) returnType:@[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableSet<@[EnhancedNullability] @[NotNull(value = <null>)] kotlin.String>? [fake_override]
overridden:
public open fun toSet (elements: @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableCollection<@[EnhancedNullability] @[NotNull(value = <null>)] kotlin.String>?): @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableSet<@[EnhancedNullability] @[NotNull(value = <null>)] kotlin.String>? declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:elements index:0 type:@[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableCollection<@[EnhancedNullability] @[NotNull(value = <null>)] kotlin.String>?
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>.Java1; <root>.Java3]
$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>.Java1'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:C modality:FINAL visibility:public superTypes:[<root>.Java1; <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>.Java1
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>.Java1
public open fun hashCode (): kotlin.Int declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:toSet visibility:public modality:OPEN <> ($this:<root>.Java1, elements:@[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableCollection<@[EnhancedNullability] @[NotNull(value = <null>)] kotlin.String>?) returnType:@[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableSet<@[EnhancedNullability] @[NotNull(value = <null>)] kotlin.String>? [fake_override]
overridden:
public open fun toSet (elements: @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableCollection<@[EnhancedNullability] @[NotNull(value = <null>)] kotlin.String>?): @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableSet<@[EnhancedNullability] @[NotNull(value = <null>)] kotlin.String>? declared in <root>.Java1
public abstract fun toSet (elements: @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableCollection<@[FlexibleNullability] kotlin.String?>?): @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableSet<@[FlexibleNullability] kotlin.String?>? declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:elements index:0 type:@[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableCollection<@[EnhancedNullability] @[NotNull(value = <null>)] kotlin.String>?
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
public open fun toString (): kotlin.String declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:D modality:FINAL visibility:public superTypes:[<root>.Java1; <root>.KotlinInterface]
$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>.Java1'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:D modality:FINAL visibility:public superTypes:[<root>.Java1; <root>.KotlinInterface]'
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
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.KotlinInterface
$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
public open fun hashCode (): kotlin.Int declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:toSet visibility:public modality:OPEN <> ($this:<root>.Java1, elements:@[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableCollection<@[EnhancedNullability] @[NotNull(value = <null>)] kotlin.String>?) returnType:@[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableSet<@[EnhancedNullability] @[NotNull(value = <null>)] kotlin.String>? [fake_override]
overridden:
public open fun toSet (elements: @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableCollection<@[EnhancedNullability] @[NotNull(value = <null>)] kotlin.String>?): @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableSet<@[EnhancedNullability] @[NotNull(value = <null>)] kotlin.String>? declared in <root>.Java1
public abstract fun toSet (elements: kotlin.collections.Collection<kotlin.String>): kotlin.collections.Set<kotlin.String?> declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:elements index:0 type:@[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableCollection<@[EnhancedNullability] @[NotNull(value = <null>)] kotlin.String>?
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
public open fun toString (): kotlin.String declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:E modality:FINAL visibility:public superTypes:[<root>.Java4]
$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>.Java4'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:E 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:toSet visibility:public modality:OPEN <> ($this:<root>.Java1, elements:@[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableCollection<@[EnhancedNullability] @[NotNull(value = <null>)] kotlin.String>?) returnType:@[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableSet<@[EnhancedNullability] @[NotNull(value = <null>)] kotlin.String>? [fake_override]
overridden:
public open fun toSet (elements: @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableCollection<@[EnhancedNullability] @[NotNull(value = <null>)] kotlin.String>?): @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableSet<@[EnhancedNullability] @[NotNull(value = <null>)] kotlin.String>? declared in <root>.Java4
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:elements index:0 type:@[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableCollection<@[EnhancedNullability] @[NotNull(value = <null>)] kotlin.String>?
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:F modality:FINAL visibility:public superTypes:[<root>.Java5]
$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>.Java5'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:F 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:toSet visibility:public modality:OPEN <> ($this:<root>.Java5, elements:@[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableCollection<@[EnhancedNullability] kotlin.String>?) returnType:@[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableSet<@[EnhancedNullability] kotlin.String>? [fake_override]
annotations:
Override
overridden:
public open fun toSet (elements: @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableCollection<@[EnhancedNullability] kotlin.String>?): @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableSet<@[EnhancedNullability] kotlin.String>? declared in <root>.Java5
$this: VALUE_PARAMETER name:<this> type:<root>.Java5
VALUE_PARAMETER name:elements index:0 type:@[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableCollection<@[EnhancedNullability] kotlin.String>?
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 INTERFACE name:KotlinInterface modality:ABSTRACT visibility:public superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.KotlinInterface
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:toSet visibility:public modality:ABSTRACT <> ($this:<root>.KotlinInterface, elements:kotlin.collections.Collection<kotlin.String>) returnType:kotlin.collections.Set<kotlin.String?>
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
VALUE_PARAMETER name:elements index:0 type:kotlin.collections.Collection<kotlin.String>
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
VAR name:k type:kotlin.collections.Set<kotlin.String> [val]
TYPE_OP type=@[FlexibleMutability] kotlin.collections.MutableSet<@[EnhancedNullability] @[NotNull(value = <null>)] kotlin.String> origin=IMPLICIT_NOTNULL typeOperand=@[FlexibleMutability] kotlin.collections.MutableSet<@[EnhancedNullability] @[NotNull(value = <null>)] kotlin.String>
CALL 'public open fun toSet (elements: @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableCollection<@[EnhancedNullability] @[NotNull(value = <null>)] kotlin.String>?): @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableSet<@[EnhancedNullability] @[NotNull(value = <null>)] kotlin.String>? declared in <root>.A' type=@[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableSet<@[EnhancedNullability] @[NotNull(value = <null>)] kotlin.String>? origin=null
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
elements: CALL 'public final fun mutableListOf <T> (vararg elements: T of kotlin.collections.mutableListOf): kotlin.collections.MutableList<T of kotlin.collections.mutableListOf> declared in kotlin.collections' type=kotlin.collections.MutableList<kotlin.String> origin=null
<T>: kotlin.String
elements: VARARG type=kotlin.Array<out kotlin.String> varargElementType=kotlin.String
CONST String type=kotlin.String value="1"
VAR name:k2 type:kotlin.collections.Set<kotlin.String> [val]
TYPE_OP type=@[FlexibleMutability] kotlin.collections.MutableSet<@[EnhancedNullability] @[NotNull(value = <null>)] kotlin.String> origin=IMPLICIT_NOTNULL typeOperand=@[FlexibleMutability] kotlin.collections.MutableSet<@[EnhancedNullability] @[NotNull(value = <null>)] kotlin.String>
CALL 'public open fun toSet (elements: @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableCollection<@[EnhancedNullability] @[NotNull(value = <null>)] kotlin.String>?): @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableSet<@[EnhancedNullability] @[NotNull(value = <null>)] kotlin.String>? declared in <root>.B' type=@[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableSet<@[EnhancedNullability] @[NotNull(value = <null>)] kotlin.String>? origin=null
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
elements: CALL 'public final fun mutableListOf <T> (vararg elements: T of kotlin.collections.mutableListOf): kotlin.collections.MutableList<T of kotlin.collections.mutableListOf> declared in kotlin.collections' type=kotlin.collections.MutableList<kotlin.String> origin=null
<T>: kotlin.String
elements: VARARG type=kotlin.Array<out kotlin.String> varargElementType=kotlin.String
CONST String type=kotlin.String value="1"
VAR name:k3 type:kotlin.collections.Set<kotlin.String> [val]
TYPE_OP type=@[FlexibleMutability] kotlin.collections.MutableSet<@[EnhancedNullability] @[NotNull(value = <null>)] kotlin.String> origin=IMPLICIT_NOTNULL typeOperand=@[FlexibleMutability] kotlin.collections.MutableSet<@[EnhancedNullability] @[NotNull(value = <null>)] kotlin.String>
CALL 'public open fun toSet (elements: @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableCollection<@[EnhancedNullability] @[NotNull(value = <null>)] kotlin.String>?): @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableSet<@[EnhancedNullability] @[NotNull(value = <null>)] kotlin.String>? declared in <root>.C' type=@[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableSet<@[EnhancedNullability] @[NotNull(value = <null>)] kotlin.String>? origin=null
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
elements: CALL 'public final fun mutableListOf <T> (vararg elements: T of kotlin.collections.mutableListOf): kotlin.collections.MutableList<T of kotlin.collections.mutableListOf> declared in kotlin.collections' type=kotlin.collections.MutableList<kotlin.String> origin=null
<T>: kotlin.String
elements: VARARG type=kotlin.Array<out kotlin.String> varargElementType=kotlin.String
CONST String type=kotlin.String value="1"
VAR name:k4 type:kotlin.collections.Set<kotlin.String> [val]
TYPE_OP type=@[FlexibleMutability] kotlin.collections.MutableSet<@[EnhancedNullability] @[NotNull(value = <null>)] kotlin.String> origin=IMPLICIT_NOTNULL typeOperand=@[FlexibleMutability] kotlin.collections.MutableSet<@[EnhancedNullability] @[NotNull(value = <null>)] kotlin.String>
CALL 'public open fun toSet (elements: @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableCollection<@[EnhancedNullability] @[NotNull(value = <null>)] kotlin.String>?): @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableSet<@[EnhancedNullability] @[NotNull(value = <null>)] kotlin.String>? declared in <root>.D' type=@[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableSet<@[EnhancedNullability] @[NotNull(value = <null>)] kotlin.String>? origin=null
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
elements: CALL 'public final fun mutableListOf <T> (vararg elements: T of kotlin.collections.mutableListOf): kotlin.collections.MutableList<T of kotlin.collections.mutableListOf> declared in kotlin.collections' type=kotlin.collections.MutableList<kotlin.String> origin=null
<T>: kotlin.String
elements: VARARG type=kotlin.Array<out kotlin.String> varargElementType=kotlin.String
CONST String type=kotlin.String value="1"
VAR name:k5 type:kotlin.collections.Set<kotlin.String> [val]
TYPE_OP type=@[FlexibleMutability] kotlin.collections.MutableSet<@[EnhancedNullability] @[NotNull(value = <null>)] kotlin.String> origin=IMPLICIT_NOTNULL typeOperand=@[FlexibleMutability] kotlin.collections.MutableSet<@[EnhancedNullability] @[NotNull(value = <null>)] kotlin.String>
CALL 'public open fun toSet (elements: @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableCollection<@[EnhancedNullability] @[NotNull(value = <null>)] kotlin.String>?): @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableSet<@[EnhancedNullability] @[NotNull(value = <null>)] kotlin.String>? declared in <root>.E' type=@[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableSet<@[EnhancedNullability] @[NotNull(value = <null>)] kotlin.String>? origin=null
$this: GET_VAR 'e: <root>.E declared in <root>.test' type=<root>.E origin=null
elements: CALL 'public final fun mutableListOf <T> (vararg elements: T of kotlin.collections.mutableListOf): kotlin.collections.MutableList<T of kotlin.collections.mutableListOf> declared in kotlin.collections' type=kotlin.collections.MutableList<kotlin.String> origin=null
<T>: kotlin.String
elements: VARARG type=kotlin.Array<out kotlin.String> varargElementType=kotlin.String
CONST String type=kotlin.String value="1"
VAR name:k6 type:kotlin.collections.Set<kotlin.String> [val]
TYPE_OP type=@[FlexibleMutability] kotlin.collections.MutableSet<@[EnhancedNullability] kotlin.String> origin=IMPLICIT_NOTNULL typeOperand=@[FlexibleMutability] kotlin.collections.MutableSet<@[EnhancedNullability] kotlin.String>
CALL 'public open fun toSet (elements: @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableCollection<@[EnhancedNullability] kotlin.String>?): @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableSet<@[EnhancedNullability] kotlin.String>? declared in <root>.F' type=@[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableSet<@[EnhancedNullability] kotlin.String>? origin=null
$this: GET_VAR 'f: <root>.F declared in <root>.test' type=<root>.F origin=null
elements: CALL 'public final fun mutableListOf <T> (vararg elements: T of kotlin.collections.mutableListOf): kotlin.collections.MutableList<T of kotlin.collections.mutableListOf> declared in kotlin.collections' type=kotlin.collections.MutableList<kotlin.String> origin=null
<T>: kotlin.String
elements: VARARG type=kotlin.Array<out kotlin.String> varargElementType=kotlin.String
CONST String type=kotlin.String value="1"
@@ -0,0 +1,67 @@
open class A : Java1 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
}
class B : Java2 {
constructor() /* primary */ {
super/*Java2*/()
/* <init>() */
}
}
class C : Java1, Java3 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
}
class D : Java1, KotlinInterface {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
}
class E : Java4 {
constructor() /* primary */ {
super/*Java4*/()
/* <init>() */
}
}
class F : Java5 {
constructor() /* primary */ {
super/*Java5*/()
/* <init>() */
}
}
interface KotlinInterface {
abstract fun toSet(elements: Collection<String>): Set<String?>
}
fun test(a: A, b: B, c: C, d: D, e: E, f: F) {
val k: Set<String> = a.toSet(elements = mutableListOf<String>(elements = ["1"])) /*!! @FlexibleMutability MutableSet<@EnhancedNullability @NotNull String> */
val k2: Set<String> = b.toSet(elements = mutableListOf<String>(elements = ["1"])) /*!! @FlexibleMutability MutableSet<@EnhancedNullability @NotNull String> */
val k3: Set<String> = c.toSet(elements = mutableListOf<String>(elements = ["1"])) /*!! @FlexibleMutability MutableSet<@EnhancedNullability @NotNull String> */
val k4: Set<String> = d.toSet(elements = mutableListOf<String>(elements = ["1"])) /*!! @FlexibleMutability MutableSet<@EnhancedNullability @NotNull String> */
val k5: Set<String> = e.toSet(elements = mutableListOf<String>(elements = ["1"])) /*!! @FlexibleMutability MutableSet<@EnhancedNullability @NotNull String> */
val k6: Set<String> = f.toSet(elements = mutableListOf<String>(elements = ["1"])) /*!! @FlexibleMutability MutableSet<@EnhancedNullability String> */
}
@@ -0,0 +1,229 @@
FILE fqName:<root> fileName:/1.kt
CLASS CLASS name:A modality:OPEN 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: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: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:toSet visibility:public modality:OPEN <> ($this:<root>.Java1, elements:@[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableCollection<@[NotNull(value = <null>)] @[EnhancedNullability] kotlin.String>?) returnType:@[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableSet<@[NotNull(value = <null>)] @[EnhancedNullability] kotlin.String>? [fake_override]
overridden:
public open fun toSet (elements: @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableCollection<@[NotNull(value = <null>)] @[EnhancedNullability] kotlin.String>?): @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableSet<@[NotNull(value = <null>)] @[EnhancedNullability] kotlin.String>? declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:elements index:0 type:@[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableCollection<@[NotNull(value = <null>)] @[EnhancedNullability] kotlin.String>?
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: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:toSet visibility:public modality:OPEN <> ($this:<root>.Java1, elements:@[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableCollection<@[NotNull(value = <null>)] @[EnhancedNullability] kotlin.String>?) returnType:@[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableSet<@[NotNull(value = <null>)] @[EnhancedNullability] kotlin.String>? [fake_override]
overridden:
public open fun toSet (elements: @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableCollection<@[NotNull(value = <null>)] @[EnhancedNullability] kotlin.String>?): @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableSet<@[NotNull(value = <null>)] @[EnhancedNullability] kotlin.String>? declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:elements index:0 type:@[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableCollection<@[NotNull(value = <null>)] @[EnhancedNullability] kotlin.String>?
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>.Java1; <root>.Java3]
$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>.Java1'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:C modality:FINAL visibility:public superTypes:[<root>.Java1; <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>.Java1
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>.Java1
public open fun hashCode (): kotlin.Int declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:toSet visibility:public modality:OPEN <> ($this:<root>.Java1, elements:@[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableCollection<@[NotNull(value = <null>)] @[EnhancedNullability] kotlin.String>?) returnType:@[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableSet<@[NotNull(value = <null>)] @[EnhancedNullability] kotlin.String>? [fake_override]
overridden:
public open fun toSet (elements: @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableCollection<@[NotNull(value = <null>)] @[EnhancedNullability] kotlin.String>?): @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableSet<@[NotNull(value = <null>)] @[EnhancedNullability] kotlin.String>? declared in <root>.Java1
public abstract fun toSet (elements: @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableCollection<@[FlexibleNullability] kotlin.String?>?): @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableSet<@[FlexibleNullability] kotlin.String?>? declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:elements index:0 type:@[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableCollection<@[NotNull(value = <null>)] @[EnhancedNullability] kotlin.String>?
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
public open fun toString (): kotlin.String declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:D modality:FINAL visibility:public superTypes:[<root>.Java1; <root>.KotlinInterface]
$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>.Java1'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:D modality:FINAL visibility:public superTypes:[<root>.Java1; <root>.KotlinInterface]'
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
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.KotlinInterface
$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
public open fun hashCode (): kotlin.Int declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:toSet visibility:public modality:OPEN <> ($this:<root>.Java1, elements:@[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableCollection<@[NotNull(value = <null>)] @[EnhancedNullability] kotlin.String>?) returnType:@[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableSet<@[NotNull(value = <null>)] @[EnhancedNullability] kotlin.String>? [fake_override]
overridden:
public open fun toSet (elements: @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableCollection<@[NotNull(value = <null>)] @[EnhancedNullability] kotlin.String>?): @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableSet<@[NotNull(value = <null>)] @[EnhancedNullability] kotlin.String>? declared in <root>.Java1
public abstract fun toSet (elements: kotlin.collections.Collection<kotlin.String>): kotlin.collections.Set<kotlin.String?> declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:elements index:0 type:@[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableCollection<@[NotNull(value = <null>)] @[EnhancedNullability] kotlin.String>?
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
public open fun toString (): kotlin.String declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:E modality:FINAL visibility:public superTypes:[<root>.Java4]
$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>.Java4'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:E 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:toSet visibility:public modality:OPEN <> ($this:<root>.Java1, elements:@[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableCollection<@[NotNull(value = <null>)] @[EnhancedNullability] kotlin.String>?) returnType:@[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableSet<@[NotNull(value = <null>)] @[EnhancedNullability] kotlin.String>? [fake_override]
overridden:
public open fun toSet (elements: @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableCollection<@[NotNull(value = <null>)] @[EnhancedNullability] kotlin.String>?): @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableSet<@[NotNull(value = <null>)] @[EnhancedNullability] kotlin.String>? declared in <root>.Java4
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:elements index:0 type:@[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableCollection<@[NotNull(value = <null>)] @[EnhancedNullability] kotlin.String>?
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:F modality:FINAL visibility:public superTypes:[<root>.Java5]
$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>.Java5'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:F 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:toSet visibility:public modality:OPEN <> ($this:<root>.Java5, elements:@[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableCollection<@[EnhancedNullability] kotlin.String>?) returnType:@[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableSet<@[EnhancedNullability] kotlin.String>? [fake_override]
annotations:
Override
overridden:
public open fun toSet (elements: @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableCollection<@[EnhancedNullability] kotlin.String>?): @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableSet<@[EnhancedNullability] kotlin.String>? declared in <root>.Java5
$this: VALUE_PARAMETER name:<this> type:<root>.Java5
VALUE_PARAMETER name:elements index:0 type:@[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableCollection<@[EnhancedNullability] kotlin.String>?
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 INTERFACE name:KotlinInterface modality:ABSTRACT visibility:public superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.KotlinInterface
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:toSet visibility:public modality:ABSTRACT <> ($this:<root>.KotlinInterface, elements:kotlin.collections.Collection<kotlin.String>) returnType:kotlin.collections.Set<kotlin.String?>
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
VALUE_PARAMETER name:elements index:0 type:kotlin.collections.Collection<kotlin.String>
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
VAR name:k type:kotlin.collections.Set<kotlin.String> [val]
TYPE_OP type=kotlin.collections.Set<@[NotNull(value = <null>)] @[EnhancedNullability] kotlin.String> origin=IMPLICIT_NOTNULL typeOperand=kotlin.collections.Set<@[NotNull(value = <null>)] @[EnhancedNullability] kotlin.String>
CALL 'public open fun toSet (elements: @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableCollection<@[NotNull(value = <null>)] @[EnhancedNullability] kotlin.String>?): @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableSet<@[NotNull(value = <null>)] @[EnhancedNullability] kotlin.String>? declared in <root>.A' type=@[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableSet<@[NotNull(value = <null>)] @[EnhancedNullability] kotlin.String>? origin=null
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
elements: CALL 'public final fun mutableListOf <T> (vararg elements: T of kotlin.collections.mutableListOf): kotlin.collections.MutableList<T of kotlin.collections.mutableListOf> declared in kotlin.collections' type=kotlin.collections.MutableList<@[NotNull(value = <null>)] @[EnhancedNullability] kotlin.String> origin=null
<T>: @[NotNull(value = <null>)] @[EnhancedNullability] kotlin.String
elements: VARARG type=kotlin.Array<out @[NotNull(value = <null>)] @[EnhancedNullability] kotlin.String> varargElementType=@[NotNull(value = <null>)] @[EnhancedNullability] kotlin.String
CONST String type=kotlin.String value="1"
VAR name:k2 type:kotlin.collections.Set<kotlin.String> [val]
TYPE_OP type=kotlin.collections.Set<@[NotNull(value = <null>)] @[EnhancedNullability] kotlin.String> origin=IMPLICIT_NOTNULL typeOperand=kotlin.collections.Set<@[NotNull(value = <null>)] @[EnhancedNullability] kotlin.String>
CALL 'public open fun toSet (elements: @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableCollection<@[NotNull(value = <null>)] @[EnhancedNullability] kotlin.String>?): @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableSet<@[NotNull(value = <null>)] @[EnhancedNullability] kotlin.String>? declared in <root>.B' type=@[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableSet<@[NotNull(value = <null>)] @[EnhancedNullability] kotlin.String>? origin=null
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
elements: CALL 'public final fun mutableListOf <T> (vararg elements: T of kotlin.collections.mutableListOf): kotlin.collections.MutableList<T of kotlin.collections.mutableListOf> declared in kotlin.collections' type=kotlin.collections.MutableList<@[NotNull(value = <null>)] @[EnhancedNullability] kotlin.String> origin=null
<T>: @[NotNull(value = <null>)] @[EnhancedNullability] kotlin.String
elements: VARARG type=kotlin.Array<out @[NotNull(value = <null>)] @[EnhancedNullability] kotlin.String> varargElementType=@[NotNull(value = <null>)] @[EnhancedNullability] kotlin.String
CONST String type=kotlin.String value="1"
VAR name:k3 type:kotlin.collections.Set<kotlin.String> [val]
TYPE_OP type=kotlin.collections.Set<@[NotNull(value = <null>)] @[EnhancedNullability] kotlin.String> origin=IMPLICIT_NOTNULL typeOperand=kotlin.collections.Set<@[NotNull(value = <null>)] @[EnhancedNullability] kotlin.String>
CALL 'public open fun toSet (elements: @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableCollection<@[NotNull(value = <null>)] @[EnhancedNullability] kotlin.String>?): @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableSet<@[NotNull(value = <null>)] @[EnhancedNullability] kotlin.String>? declared in <root>.C' type=@[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableSet<@[NotNull(value = <null>)] @[EnhancedNullability] kotlin.String>? origin=null
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
elements: CALL 'public final fun mutableListOf <T> (vararg elements: T of kotlin.collections.mutableListOf): kotlin.collections.MutableList<T of kotlin.collections.mutableListOf> declared in kotlin.collections' type=kotlin.collections.MutableList<@[NotNull(value = <null>)] @[EnhancedNullability] kotlin.String> origin=null
<T>: @[NotNull(value = <null>)] @[EnhancedNullability] kotlin.String
elements: VARARG type=kotlin.Array<out @[NotNull(value = <null>)] @[EnhancedNullability] kotlin.String> varargElementType=@[NotNull(value = <null>)] @[EnhancedNullability] kotlin.String
CONST String type=kotlin.String value="1"
VAR name:k4 type:kotlin.collections.Set<kotlin.String> [val]
TYPE_OP type=kotlin.collections.Set<@[NotNull(value = <null>)] @[EnhancedNullability] kotlin.String> origin=IMPLICIT_NOTNULL typeOperand=kotlin.collections.Set<@[NotNull(value = <null>)] @[EnhancedNullability] kotlin.String>
CALL 'public open fun toSet (elements: @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableCollection<@[NotNull(value = <null>)] @[EnhancedNullability] kotlin.String>?): @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableSet<@[NotNull(value = <null>)] @[EnhancedNullability] kotlin.String>? declared in <root>.D' type=@[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableSet<@[NotNull(value = <null>)] @[EnhancedNullability] kotlin.String>? origin=null
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
elements: CALL 'public final fun mutableListOf <T> (vararg elements: T of kotlin.collections.mutableListOf): kotlin.collections.MutableList<T of kotlin.collections.mutableListOf> declared in kotlin.collections' type=kotlin.collections.MutableList<@[NotNull(value = <null>)] @[EnhancedNullability] kotlin.String> origin=null
<T>: @[NotNull(value = <null>)] @[EnhancedNullability] kotlin.String
elements: VARARG type=kotlin.Array<out @[NotNull(value = <null>)] @[EnhancedNullability] kotlin.String> varargElementType=@[NotNull(value = <null>)] @[EnhancedNullability] kotlin.String
CONST String type=kotlin.String value="1"
VAR name:k5 type:kotlin.collections.Set<kotlin.String> [val]
TYPE_OP type=kotlin.collections.Set<@[NotNull(value = <null>)] @[EnhancedNullability] kotlin.String> origin=IMPLICIT_NOTNULL typeOperand=kotlin.collections.Set<@[NotNull(value = <null>)] @[EnhancedNullability] kotlin.String>
CALL 'public open fun toSet (elements: @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableCollection<@[NotNull(value = <null>)] @[EnhancedNullability] kotlin.String>?): @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableSet<@[NotNull(value = <null>)] @[EnhancedNullability] kotlin.String>? declared in <root>.E' type=@[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableSet<@[NotNull(value = <null>)] @[EnhancedNullability] kotlin.String>? origin=null
$this: GET_VAR 'e: <root>.E declared in <root>.test' type=<root>.E origin=null
elements: CALL 'public final fun mutableListOf <T> (vararg elements: T of kotlin.collections.mutableListOf): kotlin.collections.MutableList<T of kotlin.collections.mutableListOf> declared in kotlin.collections' type=kotlin.collections.MutableList<@[NotNull(value = <null>)] @[EnhancedNullability] kotlin.String> origin=null
<T>: @[NotNull(value = <null>)] @[EnhancedNullability] kotlin.String
elements: VARARG type=kotlin.Array<out @[NotNull(value = <null>)] @[EnhancedNullability] kotlin.String> varargElementType=@[NotNull(value = <null>)] @[EnhancedNullability] kotlin.String
CONST String type=kotlin.String value="1"
VAR name:k6 type:kotlin.collections.Set<kotlin.String> [val]
TYPE_OP type=kotlin.collections.Set<@[EnhancedNullability] kotlin.String> origin=IMPLICIT_NOTNULL typeOperand=kotlin.collections.Set<@[EnhancedNullability] kotlin.String>
CALL 'public open fun toSet (elements: @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableCollection<@[EnhancedNullability] kotlin.String>?): @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableSet<@[EnhancedNullability] kotlin.String>? declared in <root>.F' type=@[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableSet<@[EnhancedNullability] kotlin.String>? origin=null
$this: GET_VAR 'f: <root>.F declared in <root>.test' type=<root>.F origin=null
elements: CALL 'public final fun mutableListOf <T> (vararg elements: T of kotlin.collections.mutableListOf): kotlin.collections.MutableList<T of kotlin.collections.mutableListOf> declared in kotlin.collections' type=kotlin.collections.MutableList<@[EnhancedNullability] kotlin.String> origin=null
<T>: @[EnhancedNullability] kotlin.String
elements: VARARG type=kotlin.Array<out @[EnhancedNullability] kotlin.String> varargElementType=@[EnhancedNullability] kotlin.String
CONST String type=kotlin.String value="1"
@@ -0,0 +1,64 @@
// TARGET_BACKEND: JVM
// WITH_STDLIB
// FILE: Java1.java
import org.jetbrains.annotations.NotNull;
import java.util.Collection;
import java.util.Set;
public class Java1 {
public Set<@NotNull String> toSet(Collection<@NotNull String> elements) {
return null;
}
}
// FILE: Java2.java
public class Java2 extends Java1 { }
// FILE: Java3.java
import java.util.Collection;
import java.util.Set;
interface Java3 {
Set<String> toSet(Collection<String> elements);
}
// FILE: Java4.java
public class Java4 extends A { }
// FILE: Java5.java
import java.util.Collection;
import java.util.Set;
public class Java5 extends A {
@Override
public Set<String> toSet(Collection<String> elements) {
return null;
}
}
// FILE: 1.kt
open class A : Java1()
class B : Java2()
class C : Java1(), Java3
class D : Java1() , KotlinInterface
class E : Java4()
class F : Java5()
interface KotlinInterface{
fun toSet(elements: Collection<String>): Set<String?>
}
fun test(a: A, b: B, c: C, d: D, e: E, f: F) {
val k: Set<String> = a.toSet(mutableListOf("1"))
val k2: Set<String> = b.toSet(mutableListOf("1"))
val k3: Set<String> = c.toSet(mutableListOf("1"))
val k4: Set<String> = d.toSet(mutableListOf("1"))
val k5: Set<String> = e.toSet(mutableListOf("1"))
val k6: Set<String> = f.toSet(mutableListOf("1"))
}
@@ -0,0 +1,67 @@
open class A : Java1 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
}
class B : Java2 {
constructor() /* primary */ {
super/*Java2*/()
/* <init>() */
}
}
class C : Java1, Java3 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
}
class D : Java1, KotlinInterface {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
}
class E : Java4 {
constructor() /* primary */ {
super/*Java4*/()
/* <init>() */
}
}
class F : Java5 {
constructor() /* primary */ {
super/*Java5*/()
/* <init>() */
}
}
interface KotlinInterface {
abstract fun toSet(elements: Collection<String>): Set<String?>
}
fun test(a: A, b: B, c: C, d: D, e: E, f: F) {
val k: Set<String> = a.toSet(elements = mutableListOf<@NotNull @EnhancedNullability String>(elements = ["1"])) /*!! Set<@NotNull @EnhancedNullability String> */
val k2: Set<String> = b.toSet(elements = mutableListOf<@NotNull @EnhancedNullability String>(elements = ["1"])) /*!! Set<@NotNull @EnhancedNullability String> */
val k3: Set<String> = c.toSet(elements = mutableListOf<@NotNull @EnhancedNullability String>(elements = ["1"])) /*!! Set<@NotNull @EnhancedNullability String> */
val k4: Set<String> = d.toSet(elements = mutableListOf<@NotNull @EnhancedNullability String>(elements = ["1"])) /*!! Set<@NotNull @EnhancedNullability String> */
val k5: Set<String> = e.toSet(elements = mutableListOf<@NotNull @EnhancedNullability String>(elements = ["1"])) /*!! Set<@NotNull @EnhancedNullability String> */
val k6: Set<String> = f.toSet(elements = mutableListOf<@EnhancedNullability String>(elements = ["1"])) /*!! Set<@EnhancedNullability String> */
}
@@ -0,0 +1,126 @@
// CHECK:
// Mangled name: A
// Public signature: /A|null[0]
open class A : Java1 {
// CHECK:
// Mangled name: A#<init>(){}
// Public signature: /A.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: A#toSet(kotlin.collections.MutableCollection<kotlin.String{EnhancedNullability}>?){}kotlin.collections.MutableSet<kotlin.String{EnhancedNullability}>?
// Public signature: /A.toSet|-2461674864639155173[0]
// Public signature debug description: toSet(kotlin.collections.MutableCollection<kotlin.String{EnhancedNullability}>?){}kotlin.collections.MutableSet<kotlin.String{EnhancedNullability}>?
/* fake */ override fun toSet(elements: MutableCollection<@EnhancedNullability String>?): MutableSet<@EnhancedNullability String>?
}
// 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 JVM_IR:
// Mangled name: B#toSet(kotlin.collections.MutableCollection<kotlin.String{EnhancedNullability}>?){}kotlin.collections.MutableSet<kotlin.String{EnhancedNullability}>?
// Public signature: /B.toSet|-2461674864639155173[0]
// Public signature debug description: toSet(kotlin.collections.MutableCollection<kotlin.String{EnhancedNullability}>?){}kotlin.collections.MutableSet<kotlin.String{EnhancedNullability}>?
/* fake */ override fun toSet(elements: MutableCollection<@EnhancedNullability String>?): MutableSet<@EnhancedNullability String>?
}
// CHECK:
// Mangled name: C
// Public signature: /C|null[0]
class C : Java1, Java3 {
// CHECK:
// Mangled name: C#<init>(){}
// Public signature: /C.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: C#toSet(kotlin.collections.MutableCollection<kotlin.String{EnhancedNullability}>?){}kotlin.collections.MutableSet<kotlin.String{EnhancedNullability}>?
// Public signature: /C.toSet|-2461674864639155173[0]
// Public signature debug description: toSet(kotlin.collections.MutableCollection<kotlin.String{EnhancedNullability}>?){}kotlin.collections.MutableSet<kotlin.String{EnhancedNullability}>?
/* fake */ override fun toSet(elements: MutableCollection<@EnhancedNullability String>?): MutableSet<@EnhancedNullability String>?
}
// CHECK:
// Mangled name: D
// Public signature: /D|null[0]
class D : Java1, KotlinInterface {
// CHECK:
// Mangled name: D#<init>(){}
// Public signature: /D.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: D#toSet(kotlin.collections.MutableCollection<kotlin.String{EnhancedNullability}>?){}kotlin.collections.MutableSet<kotlin.String{EnhancedNullability}>?
// Public signature: /D.toSet|-2461674864639155173[0]
// Public signature debug description: toSet(kotlin.collections.MutableCollection<kotlin.String{EnhancedNullability}>?){}kotlin.collections.MutableSet<kotlin.String{EnhancedNullability}>?
/* fake */ override fun toSet(elements: MutableCollection<@EnhancedNullability String>?): MutableSet<@EnhancedNullability String>?
}
// CHECK:
// Mangled name: E
// Public signature: /E|null[0]
class E : Java4 {
// CHECK:
// Mangled name: E#<init>(){}
// Public signature: /E.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: E#toSet(kotlin.collections.MutableCollection<kotlin.String{EnhancedNullability}>?){}kotlin.collections.MutableSet<kotlin.String{EnhancedNullability}>?
// Public signature: /E.toSet|-2461674864639155173[0]
// Public signature debug description: toSet(kotlin.collections.MutableCollection<kotlin.String{EnhancedNullability}>?){}kotlin.collections.MutableSet<kotlin.String{EnhancedNullability}>?
/* fake */ override fun toSet(elements: MutableCollection<@EnhancedNullability String>?): MutableSet<@EnhancedNullability String>?
}
// CHECK:
// Mangled name: F
// Public signature: /F|null[0]
class F : Java5 {
// CHECK:
// Mangled name: F#<init>(){}
// Public signature: /F.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: F#toSet(kotlin.collections.MutableCollection<kotlin.String{EnhancedNullability}>?){}kotlin.collections.MutableSet<kotlin.String{EnhancedNullability}>?
// Public signature: /F.toSet|-2461674864639155173[0]
// Public signature debug description: toSet(kotlin.collections.MutableCollection<kotlin.String{EnhancedNullability}>?){}kotlin.collections.MutableSet<kotlin.String{EnhancedNullability}>?
@Override
/* fake */ override fun toSet(elements: MutableCollection<@EnhancedNullability String>?): MutableSet<@EnhancedNullability String>?
}
// CHECK:
// Mangled name: KotlinInterface
// Public signature: /KotlinInterface|null[0]
interface KotlinInterface {
// CHECK JVM_IR:
// Mangled name: KotlinInterface#toSet(kotlin.collections.Collection<kotlin.String>){}kotlin.collections.Set<kotlin.String?>
// Public signature: /KotlinInterface.toSet|6531884437362673162[0]
// Public signature debug description: toSet(kotlin.collections.Collection<kotlin.String>){}kotlin.collections.Set<kotlin.String?>
abstract fun toSet(elements: Collection<String>): Set<String?>
}
// 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,289 @@
FILE fqName:<root> fileName:/1.kt
CLASS CLASS name:A modality:FINAL visibility:public superTypes:[<root>.Java1<kotlin.Int>]
$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'
<T>: kotlin.Int
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:A modality:FINAL visibility:public superTypes:[<root>.Java1<kotlin.Int>]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.Java1<kotlin.Int>) returnType:@[EnhancedNullability] kotlin.Int [fake_override]
overridden:
public open fun bar (): @[EnhancedNullability] T of <root>.Java1 declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.Java1<kotlin.Int>
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<kotlin.Int>, s:@[EnhancedNullability] kotlin.Int) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (s: @[EnhancedNullability] T of <root>.Java1): kotlin.Unit declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.Java1<kotlin.Int>
VALUE_PARAMETER name:s index:0 type:@[EnhancedNullability] kotlin.Int
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<T of <root>.B>]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.B<T of <root>.B>
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any] reified:false
CONSTRUCTOR visibility:public <> () returnType:<root>.B<T of <root>.B> [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java1'
<T>: T of <root>.B
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:B modality:FINAL visibility:public superTypes:[<root>.Java1<T of <root>.B>]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.Java1<T of <root>.B>) returnType:@[EnhancedNullability] T of <root>.B [fake_override]
overridden:
public open fun bar (): @[EnhancedNullability] T of <root>.Java1 declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.Java1<T of <root>.B>
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<T of <root>.B>, s:@[EnhancedNullability] T of <root>.B) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (s: @[EnhancedNullability] T of <root>.Java1): kotlin.Unit declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.Java1<T of <root>.B>
VALUE_PARAMETER name:s index:0 type:@[EnhancedNullability] T of <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>.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: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:bar visibility:public modality:OPEN <> ($this:<root>.Java1<@[EnhancedNullability] kotlin.Int>) returnType:@[EnhancedNullability] kotlin.Int [fake_override]
overridden:
public open fun bar (): @[EnhancedNullability] kotlin.Int declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.Java1<@[EnhancedNullability] kotlin.Int>
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<@[EnhancedNullability] kotlin.Int>, s:@[EnhancedNullability] kotlin.Int) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (s: @[EnhancedNullability] kotlin.Int): kotlin.Unit declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.Java1<@[EnhancedNullability] kotlin.Int>
VALUE_PARAMETER name:s index:0 type:@[EnhancedNullability] kotlin.Int
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>.Java3<kotlin.Int?>]
$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'
<T>: kotlin.Int?
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:D modality:FINAL visibility:public superTypes:[<root>.Java3<kotlin.Int?>]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.Java3<kotlin.Int?>) returnType:@[EnhancedNullability] kotlin.Int? [fake_override]
overridden:
public open fun bar (): @[EnhancedNullability] T of <root>.Java3 declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.Java3<kotlin.Int?>
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:public modality:OPEN <> ($this:<root>.Java3<kotlin.Int?>, s:@[EnhancedNullability] kotlin.Int?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (s: @[EnhancedNullability] T of <root>.Java3): kotlin.Unit declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.Java3<kotlin.Int?>
VALUE_PARAMETER name:s index:0 type:@[EnhancedNullability] kotlin.Int?
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<kotlin.Int>]
$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'
<T>: kotlin.Int
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:E modality:FINAL visibility:public superTypes:[<root>.Java3<kotlin.Int>]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.Java3<kotlin.Int>) returnType:@[EnhancedNullability] kotlin.Int [fake_override]
overridden:
public open fun bar (): @[EnhancedNullability] T of <root>.Java3 declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.Java3<kotlin.Int>
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:public modality:OPEN <> ($this:<root>.Java3<kotlin.Int>, s:@[EnhancedNullability] kotlin.Int) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (s: @[EnhancedNullability] T of <root>.Java3): kotlin.Unit declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.Java3<kotlin.Int>
VALUE_PARAMETER name:s index:0 type:@[EnhancedNullability] kotlin.Int
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<kotlin.Int>]
$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'
<T>: kotlin.Int
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:F modality:FINAL visibility:public superTypes:[<root>.Java4<kotlin.Int>]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.Java4<kotlin.Int>) returnType:@[EnhancedNullability] kotlin.Int [fake_override]
overridden:
public open fun bar (): @[EnhancedNullability] T of <root>.Java4 declared in <root>.Java4
$this: VALUE_PARAMETER name:<this> type:<root>.Java4<kotlin.Int>
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<kotlin.Int>, s:@[EnhancedNullability] kotlin.Int) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (s: @[EnhancedNullability] T of <root>.Java4): kotlin.Unit declared in <root>.Java4
$this: VALUE_PARAMETER name:<this> type:<root>.Java4<kotlin.Int>
VALUE_PARAMETER name:s index:0 type:@[EnhancedNullability] kotlin.Int
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<T of <root>.G>]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.G<T of <root>.G>
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Number] reified:false
CONSTRUCTOR visibility:public <> () returnType:<root>.G<T of <root>.G> [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java4'
<T>: T of <root>.G
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:G modality:FINAL visibility:public superTypes:[<root>.Java4<T of <root>.G>]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.Java4<T of <root>.G>) returnType:@[EnhancedNullability] T of <root>.G [fake_override]
overridden:
public open fun bar (): @[EnhancedNullability] T of <root>.Java4 declared in <root>.Java4
$this: VALUE_PARAMETER name:<this> type:<root>.Java4<T of <root>.G>
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<T of <root>.G>, s:@[EnhancedNullability] T of <root>.G) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (s: @[EnhancedNullability] T of <root>.Java4): kotlin.Unit declared in <root>.Java4
$this: VALUE_PARAMETER name:<this> type:<root>.Java4<T of <root>.G>
VALUE_PARAMETER name:s index:0 type:@[EnhancedNullability] T of <root>.G
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:test visibility:public modality:FINAL <> (a:<root>.A, b:<root>.B<kotlin.String>, c:<root>.C, d:<root>.D, e:<root>.E, f:<root>.F, g:<root>.G<kotlin.Int>) returnType:kotlin.Unit
VALUE_PARAMETER name:a index:0 type:<root>.A
VALUE_PARAMETER name:b index:1 type:<root>.B<kotlin.String>
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<kotlin.Int>
BLOCK_BODY
VAR name:k type:kotlin.Int [val]
TYPE_OP type=kotlin.Int origin=IMPLICIT_NOTNULL typeOperand=kotlin.Int
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:a type:@[EnhancedNullability] T of <root>.Java1 visibility:public' type=@[EnhancedNullability] kotlin.Int origin=null
receiver: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
VAR name:k2 type:kotlin.Int [val]
TYPE_OP type=kotlin.Int origin=IMPLICIT_NOTNULL typeOperand=kotlin.Int
CALL 'public open fun bar (): @[EnhancedNullability] kotlin.Int declared in <root>.A' type=@[EnhancedNullability] kotlin.Int origin=null
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
CALL 'public open fun foo (s: @[EnhancedNullability] kotlin.Int): 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
s: CONST Int type=kotlin.Int value=1
VAR name:k3 type:kotlin.String [val]
TYPE_OP type=kotlin.String origin=IMPLICIT_NOTNULL typeOperand=kotlin.String
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:a type:@[EnhancedNullability] T of <root>.Java1 visibility:public' type=@[EnhancedNullability] kotlin.String origin=null
receiver: GET_VAR 'b: <root>.B<kotlin.String> declared in <root>.test' type=<root>.B<kotlin.String> origin=null
VAR name:k4 type:kotlin.String [val]
TYPE_OP type=kotlin.String origin=IMPLICIT_NOTNULL typeOperand=kotlin.String
CALL 'public open fun bar (): @[EnhancedNullability] T of <root>.B declared in <root>.B' type=@[EnhancedNullability] kotlin.String origin=null
$this: GET_VAR 'b: <root>.B<kotlin.String> declared in <root>.test' type=<root>.B<kotlin.String> origin=null
CALL 'public open fun foo (s: @[EnhancedNullability] T of <root>.B): kotlin.Unit declared in <root>.B' type=kotlin.Unit origin=null
$this: GET_VAR 'b: <root>.B<kotlin.String> declared in <root>.test' type=<root>.B<kotlin.String> origin=null
s: CONST String type=kotlin.String value=""
VAR name:k5 type:kotlin.Int [val]
TYPE_OP type=kotlin.Int origin=IMPLICIT_NOTNULL typeOperand=kotlin.Int
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:a type:@[EnhancedNullability] T of <root>.Java1 visibility:public' type=@[EnhancedNullability] kotlin.Int origin=null
receiver: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
VAR name:k6 type:kotlin.Int [val]
TYPE_OP type=kotlin.Int origin=IMPLICIT_NOTNULL typeOperand=kotlin.Int
CALL 'public open fun bar (): @[EnhancedNullability] kotlin.Int declared in <root>.C' type=@[EnhancedNullability] kotlin.Int origin=null
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
CALL 'public open fun foo (s: @[EnhancedNullability] kotlin.Int): 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
s: CONST Int type=kotlin.Int value=1
VAR name:k7 type:kotlin.Int? [val]
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:a type:@[EnhancedNullability] T of <root>.Java3 visibility:public' type=@[EnhancedNullability] kotlin.Int? origin=null
receiver: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
VAR name:k8 type:kotlin.Int? [val]
CALL 'public open fun bar (): @[EnhancedNullability] kotlin.Int? declared in <root>.D' type=@[EnhancedNullability] kotlin.Int? origin=null
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
CALL 'public open fun foo (s: @[EnhancedNullability] kotlin.Int?): 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
s: CONST Null type=kotlin.Nothing? value=null
VAR name:k9 type:kotlin.Int [val]
TYPE_OP type=kotlin.Int origin=IMPLICIT_NOTNULL typeOperand=kotlin.Int
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:a type:@[EnhancedNullability] T of <root>.Java3 visibility:public' type=@[EnhancedNullability] kotlin.Int origin=null
receiver: GET_VAR 'e: <root>.E declared in <root>.test' type=<root>.E origin=null
VAR name:k10 type:kotlin.Int [val]
TYPE_OP type=kotlin.Int origin=IMPLICIT_NOTNULL typeOperand=kotlin.Int
CALL 'public open fun bar (): @[EnhancedNullability] kotlin.Int declared in <root>.E' type=@[EnhancedNullability] kotlin.Int origin=null
$this: GET_VAR 'e: <root>.E declared in <root>.test' type=<root>.E origin=null
CALL 'public open fun foo (s: @[EnhancedNullability] kotlin.Int): 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
s: CONST Int type=kotlin.Int value=1
VAR name:k11 type:kotlin.Int [val]
TYPE_OP type=kotlin.Int origin=IMPLICIT_NOTNULL typeOperand=kotlin.Int
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:a type:@[EnhancedNullability] T of <root>.Java4 visibility:public' type=@[EnhancedNullability] kotlin.Int origin=null
receiver: GET_VAR 'f: <root>.F declared in <root>.test' type=<root>.F origin=null
VAR name:k12 type:kotlin.Int [val]
TYPE_OP type=kotlin.Int origin=IMPLICIT_NOTNULL typeOperand=kotlin.Int
CALL 'public open fun bar (): @[EnhancedNullability] kotlin.Int declared in <root>.F' type=@[EnhancedNullability] kotlin.Int origin=null
$this: GET_VAR 'f: <root>.F declared in <root>.test' type=<root>.F origin=null
CALL 'public open fun foo (s: @[EnhancedNullability] kotlin.Int): 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
s: CONST Int type=kotlin.Int value=1
VAR name:k13 type:kotlin.Int [val]
TYPE_OP type=kotlin.Int origin=IMPLICIT_NOTNULL typeOperand=kotlin.Int
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:a type:@[EnhancedNullability] T of <root>.Java4 visibility:public' type=@[EnhancedNullability] kotlin.Int origin=null
receiver: GET_VAR 'g: <root>.G<kotlin.Int> declared in <root>.test' type=<root>.G<kotlin.Int> origin=null
VAR name:k14 type:kotlin.Int [val]
TYPE_OP type=kotlin.Int origin=IMPLICIT_NOTNULL typeOperand=kotlin.Int
CALL 'public open fun bar (): @[EnhancedNullability] T of <root>.G declared in <root>.G' type=@[EnhancedNullability] kotlin.Int origin=null
$this: GET_VAR 'g: <root>.G<kotlin.Int> declared in <root>.test' type=<root>.G<kotlin.Int> origin=null
CALL 'public open fun foo (s: @[EnhancedNullability] T of <root>.G): kotlin.Unit declared in <root>.G' type=kotlin.Unit origin=null
$this: GET_VAR 'g: <root>.G<kotlin.Int> declared in <root>.test' type=<root>.G<kotlin.Int> origin=null
s: CONST Int type=kotlin.Int value=1
@@ -0,0 +1,86 @@
class A : Java1<Int> {
constructor() /* primary */ {
super/*Java1*/<Int>()
/* <init>() */
}
}
class B<T : Any> : Java1<T> {
constructor() /* primary */ {
super/*Java1*/<T>()
/* <init>() */
}
}
class C : Java2 {
constructor() /* primary */ {
super/*Java2*/()
/* <init>() */
}
}
class D : Java3<Int?> {
constructor() /* primary */ {
super/*Java3*/<Int?>()
/* <init>() */
}
}
class E : Java3<Int> {
constructor() /* primary */ {
super/*Java3*/<Int>()
/* <init>() */
}
}
class F : Java4<Int> {
constructor() /* primary */ {
super/*Java4*/<Int>()
/* <init>() */
}
}
class G<T : Number> : Java4<T> {
constructor() /* primary */ {
super/*Java4*/<T>()
/* <init>() */
}
}
fun test(a: A, b: B<String>, c: C, d: D, e: E, f: F, g: G<Int>) {
val k: Int = a.#a /*!! Int */
val k2: Int = a.bar() /*!! Int */
a.foo(s = 1)
val k3: String = b.#a /*!! String */
val k4: String = b.bar() /*!! String */
b.foo(s = "")
val k5: Int = c.#a /*!! Int */
val k6: Int = c.bar() /*!! Int */
c.foo(s = 1)
val k7: Int? = d.#a
val k8: Int? = d.bar()
d.foo(s = null)
val k9: Int = e.#a /*!! Int */
val k10: Int = e.bar() /*!! Int */
e.foo(s = 1)
val k11: Int = f.#a /*!! Int */
val k12: Int = f.bar() /*!! Int */
f.foo(s = 1)
val k13: Int = g.#a /*!! Int */
val k14: Int = g.bar() /*!! Int */
g.foo(s = 1)
}
@@ -0,0 +1,310 @@
FILE fqName:<root> fileName:/1.kt
CLASS CLASS name:A modality:FINAL visibility:public superTypes:[<root>.Java1<kotlin.Int>]
$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'
<T>: kotlin.Int
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:A modality:FINAL visibility:public superTypes:[<root>.Java1<kotlin.Int>]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.Java1<kotlin.Int>) returnType:@[EnhancedNullability] kotlin.Int [fake_override]
overridden:
public open fun bar (): @[EnhancedNullability] T of <root>.Java1 declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.Java1<kotlin.Int>
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<kotlin.Int>, s:@[EnhancedNullability] kotlin.Int) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (s: @[EnhancedNullability] T of <root>.Java1): kotlin.Unit declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.Java1<kotlin.Int>
VALUE_PARAMETER name:s index:0 type:@[EnhancedNullability] kotlin.Int
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: @[EnhancedNullability] T of <root>.Java1
CLASS CLASS name:B modality:FINAL visibility:public superTypes:[<root>.Java1<T of <root>.B>]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.B<T of <root>.B>
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any] reified:false
CONSTRUCTOR visibility:public <> () returnType:<root>.B<T of <root>.B> [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java1'
<T>: T of <root>.B
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:B modality:FINAL visibility:public superTypes:[<root>.Java1<T of <root>.B>]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.Java1<T of <root>.B>) returnType:@[EnhancedNullability] T of <root>.B [fake_override]
overridden:
public open fun bar (): @[EnhancedNullability] T of <root>.Java1 declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.Java1<T of <root>.B>
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<T of <root>.B>, s:@[EnhancedNullability] T of <root>.B) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (s: @[EnhancedNullability] T of <root>.Java1): kotlin.Unit declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.Java1<T of <root>.B>
VALUE_PARAMETER name:s index:0 type:@[EnhancedNullability] T of <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>.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: @[EnhancedNullability] T of <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:bar visibility:public modality:OPEN <> ($this:<root>.Java1<@[EnhancedNullability] kotlin.Int>) returnType:@[EnhancedNullability] kotlin.Int [fake_override]
overridden:
public open fun bar (): @[EnhancedNullability] kotlin.Int declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.Java1<@[EnhancedNullability] kotlin.Int>
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<@[EnhancedNullability] kotlin.Int>, s:@[EnhancedNullability] kotlin.Int) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (s: @[EnhancedNullability] kotlin.Int): kotlin.Unit declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.Java1<@[EnhancedNullability] kotlin.Int>
VALUE_PARAMETER name:s index:0 type:@[EnhancedNullability] kotlin.Int
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: @[EnhancedNullability] kotlin.Int
CLASS CLASS name:D modality:FINAL visibility:public superTypes:[<root>.Java3<kotlin.Int?>]
$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'
<T>: kotlin.Int?
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:D modality:FINAL visibility:public superTypes:[<root>.Java3<kotlin.Int?>]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.Java3<kotlin.Int?>) returnType:@[EnhancedNullability] kotlin.Int? [fake_override]
overridden:
public open fun bar (): @[EnhancedNullability] T of <root>.Java3 declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.Java3<kotlin.Int?>
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:public modality:OPEN <> ($this:<root>.Java3<kotlin.Int?>, s:@[EnhancedNullability] kotlin.Int?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (s: @[EnhancedNullability] T of <root>.Java3): kotlin.Unit declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.Java3<kotlin.Int?>
VALUE_PARAMETER name:s index:0 type:@[EnhancedNullability] kotlin.Int?
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:public modality:FINAL [fake_override,var]
overridden:
public final a: @[EnhancedNullability] T of <root>.Java3
CLASS CLASS name:E modality:FINAL visibility:public superTypes:[<root>.Java3<kotlin.Int>]
$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'
<T>: kotlin.Int
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:E modality:FINAL visibility:public superTypes:[<root>.Java3<kotlin.Int>]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.Java3<kotlin.Int>) returnType:@[EnhancedNullability] kotlin.Int [fake_override]
overridden:
public open fun bar (): @[EnhancedNullability] T of <root>.Java3 declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.Java3<kotlin.Int>
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:public modality:OPEN <> ($this:<root>.Java3<kotlin.Int>, s:@[EnhancedNullability] kotlin.Int) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (s: @[EnhancedNullability] T of <root>.Java3): kotlin.Unit declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.Java3<kotlin.Int>
VALUE_PARAMETER name:s index:0 type:@[EnhancedNullability] kotlin.Int
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:public modality:FINAL [fake_override,var]
overridden:
public final a: @[EnhancedNullability] T of <root>.Java3
CLASS CLASS name:F modality:FINAL visibility:public superTypes:[<root>.Java4<kotlin.Int>]
$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'
<T>: kotlin.Int
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:F modality:FINAL visibility:public superTypes:[<root>.Java4<kotlin.Int>]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.Java4<kotlin.Int>) returnType:@[EnhancedNullability] kotlin.Int [fake_override]
overridden:
public open fun bar (): @[EnhancedNullability] T of <root>.Java4 declared in <root>.Java4
$this: VALUE_PARAMETER name:<this> type:<root>.Java4<kotlin.Int>
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<kotlin.Int>, s:@[EnhancedNullability] kotlin.Int) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (s: @[EnhancedNullability] T of <root>.Java4): kotlin.Unit declared in <root>.Java4
$this: VALUE_PARAMETER name:<this> type:<root>.Java4<kotlin.Int>
VALUE_PARAMETER name:s index:0 type:@[EnhancedNullability] kotlin.Int
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:public modality:FINAL [fake_override,var]
overridden:
public final a: @[EnhancedNullability] T of <root>.Java4
CLASS CLASS name:G modality:FINAL visibility:public superTypes:[<root>.Java4<T of <root>.G>]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.G<T of <root>.G>
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Number] reified:false
CONSTRUCTOR visibility:public <> () returnType:<root>.G<T of <root>.G> [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java4'
<T>: T of <root>.G
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:G modality:FINAL visibility:public superTypes:[<root>.Java4<T of <root>.G>]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.Java4<T of <root>.G>) returnType:@[EnhancedNullability] T of <root>.G [fake_override]
overridden:
public open fun bar (): @[EnhancedNullability] T of <root>.Java4 declared in <root>.Java4
$this: VALUE_PARAMETER name:<this> type:<root>.Java4<T of <root>.G>
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<T of <root>.G>, s:@[EnhancedNullability] T of <root>.G) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (s: @[EnhancedNullability] T of <root>.Java4): kotlin.Unit declared in <root>.Java4
$this: VALUE_PARAMETER name:<this> type:<root>.Java4<T of <root>.G>
VALUE_PARAMETER name:s index:0 type:@[EnhancedNullability] T of <root>.G
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:public modality:FINAL [fake_override,var]
overridden:
public final a: @[EnhancedNullability] T of <root>.Java4
FUN name:test visibility:public modality:FINAL <> (a:<root>.A, b:<root>.B<kotlin.String>, c:<root>.C, d:<root>.D, e:<root>.E, f:<root>.F, g:<root>.G<kotlin.Int>) returnType:kotlin.Unit
VALUE_PARAMETER name:a index:0 type:<root>.A
VALUE_PARAMETER name:b index:1 type:<root>.B<kotlin.String>
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<kotlin.Int>
BLOCK_BODY
VAR name:k type:kotlin.Int [val]
TYPE_OP type=kotlin.Int origin=IMPLICIT_NOTNULL typeOperand=kotlin.Int
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:a type:@[EnhancedNullability] T of <root>.Java1 visibility:public' type=@[EnhancedNullability] kotlin.Int origin=null
receiver: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
VAR name:k2 type:kotlin.Int [val]
TYPE_OP type=kotlin.Int origin=IMPLICIT_NOTNULL typeOperand=kotlin.Int
CALL 'public open fun bar (): @[EnhancedNullability] kotlin.Int declared in <root>.A' type=@[EnhancedNullability] kotlin.Int origin=null
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
CALL 'public open fun foo (s: @[EnhancedNullability] kotlin.Int): 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
s: CONST Int type=kotlin.Int value=1
VAR name:k3 type:kotlin.String [val]
TYPE_OP type=kotlin.String origin=IMPLICIT_NOTNULL typeOperand=kotlin.String
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:a type:@[EnhancedNullability] T of <root>.Java1 visibility:public' type=@[EnhancedNullability] kotlin.String origin=null
receiver: GET_VAR 'b: <root>.B<kotlin.String> declared in <root>.test' type=<root>.B<kotlin.String> origin=null
VAR name:k4 type:kotlin.String [val]
TYPE_OP type=kotlin.String origin=IMPLICIT_NOTNULL typeOperand=kotlin.String
CALL 'public open fun bar (): @[EnhancedNullability] T of <root>.B declared in <root>.B' type=@[EnhancedNullability] kotlin.String origin=null
$this: GET_VAR 'b: <root>.B<kotlin.String> declared in <root>.test' type=<root>.B<kotlin.String> origin=null
CALL 'public open fun foo (s: @[EnhancedNullability] T of <root>.B): kotlin.Unit declared in <root>.B' type=kotlin.Unit origin=null
$this: GET_VAR 'b: <root>.B<kotlin.String> declared in <root>.test' type=<root>.B<kotlin.String> origin=null
s: CONST String type=kotlin.String value=""
VAR name:k5 type:kotlin.Int [val]
TYPE_OP type=kotlin.Int origin=IMPLICIT_NOTNULL typeOperand=kotlin.Int
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:a type:@[EnhancedNullability] T of <root>.Java1 visibility:public' type=@[EnhancedNullability] kotlin.Int origin=null
receiver: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
VAR name:k6 type:kotlin.Int [val]
TYPE_OP type=kotlin.Int origin=IMPLICIT_NOTNULL typeOperand=kotlin.Int
CALL 'public open fun bar (): @[EnhancedNullability] kotlin.Int declared in <root>.C' type=@[EnhancedNullability] kotlin.Int origin=null
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
CALL 'public open fun foo (s: @[EnhancedNullability] kotlin.Int): 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
s: CONST Int type=kotlin.Int value=1
VAR name:k7 type:kotlin.Int? [val]
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:a type:@[EnhancedNullability] T of <root>.Java3 visibility:public' type=@[EnhancedNullability] kotlin.Int? origin=null
receiver: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
VAR name:k8 type:kotlin.Int? [val]
CALL 'public open fun bar (): @[EnhancedNullability] kotlin.Int? declared in <root>.D' type=@[EnhancedNullability] kotlin.Int? origin=null
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
CALL 'public open fun foo (s: @[EnhancedNullability] kotlin.Int?): 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
s: CONST Null type=kotlin.Nothing? value=null
VAR name:k9 type:kotlin.Int [val]
TYPE_OP type=kotlin.Int origin=IMPLICIT_NOTNULL typeOperand=kotlin.Int
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:a type:@[EnhancedNullability] T of <root>.Java3 visibility:public' type=@[EnhancedNullability] kotlin.Int origin=null
receiver: GET_VAR 'e: <root>.E declared in <root>.test' type=<root>.E origin=null
VAR name:k10 type:kotlin.Int [val]
TYPE_OP type=kotlin.Int origin=IMPLICIT_NOTNULL typeOperand=kotlin.Int
CALL 'public open fun bar (): @[EnhancedNullability] kotlin.Int declared in <root>.E' type=@[EnhancedNullability] kotlin.Int origin=null
$this: GET_VAR 'e: <root>.E declared in <root>.test' type=<root>.E origin=null
CALL 'public open fun foo (s: @[EnhancedNullability] kotlin.Int): 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
s: CONST Int type=kotlin.Int value=1
VAR name:k11 type:kotlin.Int [val]
TYPE_OP type=kotlin.Int origin=IMPLICIT_NOTNULL typeOperand=kotlin.Int
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:a type:@[EnhancedNullability] T of <root>.Java4 visibility:public' type=@[EnhancedNullability] kotlin.Int origin=null
receiver: GET_VAR 'f: <root>.F declared in <root>.test' type=<root>.F origin=null
VAR name:k12 type:kotlin.Int [val]
TYPE_OP type=kotlin.Int origin=IMPLICIT_NOTNULL typeOperand=kotlin.Int
CALL 'public open fun bar (): @[EnhancedNullability] kotlin.Int declared in <root>.F' type=@[EnhancedNullability] kotlin.Int origin=null
$this: GET_VAR 'f: <root>.F declared in <root>.test' type=<root>.F origin=null
CALL 'public open fun foo (s: @[EnhancedNullability] kotlin.Int): 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
s: CONST Int type=kotlin.Int value=1
VAR name:k13 type:kotlin.Int [val]
TYPE_OP type=kotlin.Int origin=IMPLICIT_NOTNULL typeOperand=kotlin.Int
GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:a type:@[EnhancedNullability] T of <root>.Java4 visibility:public' type=@[EnhancedNullability] kotlin.Int origin=null
receiver: GET_VAR 'g: <root>.G<kotlin.Int> declared in <root>.test' type=<root>.G<kotlin.Int> origin=null
VAR name:k14 type:kotlin.Int [val]
TYPE_OP type=kotlin.Int origin=IMPLICIT_NOTNULL typeOperand=kotlin.Int
CALL 'public open fun bar (): @[EnhancedNullability] T of <root>.G declared in <root>.G' type=@[EnhancedNullability] kotlin.Int origin=null
$this: GET_VAR 'g: <root>.G<kotlin.Int> declared in <root>.test' type=<root>.G<kotlin.Int> origin=null
CALL 'public open fun foo (s: @[EnhancedNullability] T of <root>.G): kotlin.Unit declared in <root>.G' type=kotlin.Unit origin=null
$this: GET_VAR 'g: <root>.G<kotlin.Int> declared in <root>.test' type=<root>.G<kotlin.Int> origin=null
s: CONST Int type=kotlin.Int value=1
@@ -0,0 +1,81 @@
// TARGET_BACKEND: JVM
// FILE: Java1.java
import org.jetbrains.annotations.NotNull;
public class Java1<@NotNull T> {
public T a;
public T bar() {
return a;
}
public void foo(T s) {}
}
// FILE: Java2.java
public class Java2 extends Java1<Integer> { }
// FILE: Java3.java
import org.jetbrains.annotations.Nullable;
public class Java3<@Nullable T> {
public T a;
public T bar() {
return a;
}
public void foo(T s) {}
}
// FILE: Java4.java
import org.jetbrains.annotations.NotNull;
public class Java4<T extends @NotNull Number> {
public T a;
public T bar() {
return a;
}
public void foo(T s) {}
}
// FILE: 1.kt
class A : Java1<Int>()
class B<T : Any> : Java1<T>()
class C : Java2()
class D : Java3<Int?>()
class E : Java3<Int>()
class F : Java4<Int>()
class G<T: Number> : Java4<T>()
fun test(a: A, b: B<String>, c: C, d: D, e: E, f: F, g: G<Int>) {
val k: Int = a.a
val k2: Int = a.bar()
a.foo(1)
val k3: String = b.a
val k4: String = b.bar()
b.foo("")
val k5: Int = c.a
val k6: Int = c.bar()
c.foo(1)
val k7: Int? = d.a
val k8: Int? = d.bar()
d.foo(null)
val k9: Int = e.a
val k10: Int = e.bar()
e.foo(1)
val k11: Int = f.a
val k12: Int = f.bar()
f.foo(1)
val k13: Int = g.a
val k14: Int = g.bar()
g.foo(1)
}
@@ -0,0 +1,86 @@
class A : Java1<Int> {
constructor() /* primary */ {
super/*Java1*/<Int>()
/* <init>() */
}
}
class B<T : Any> : Java1<T> {
constructor() /* primary */ {
super/*Java1*/<T>()
/* <init>() */
}
}
class C : Java2 {
constructor() /* primary */ {
super/*Java2*/()
/* <init>() */
}
}
class D : Java3<Int?> {
constructor() /* primary */ {
super/*Java3*/<Int?>()
/* <init>() */
}
}
class E : Java3<Int> {
constructor() /* primary */ {
super/*Java3*/<Int>()
/* <init>() */
}
}
class F : Java4<Int> {
constructor() /* primary */ {
super/*Java4*/<Int>()
/* <init>() */
}
}
class G<T : Number> : Java4<T> {
constructor() /* primary */ {
super/*Java4*/<T>()
/* <init>() */
}
}
fun test(a: A, b: B<String>, c: C, d: D, e: E, f: F, g: G<Int>) {
val k: Int = a(super<A>).#a /*!! Int */
val k2: Int = a.bar() /*!! Int */
a.foo(s = 1)
val k3: String = b(super<B>).#a /*!! String */
val k4: String = b.bar() /*!! String */
b.foo(s = "")
val k5: Int = c(super<C>).#a /*!! Int */
val k6: Int = c.bar() /*!! Int */
c.foo(s = 1)
val k7: Int? = d(super<D>).#a
val k8: Int? = d.bar()
d.foo(s = null)
val k9: Int = e(super<E>).#a /*!! Int */
val k10: Int = e.bar() /*!! Int */
e.foo(s = 1)
val k11: Int = f(super<F>).#a /*!! Int */
val k12: Int = f.bar() /*!! Int */
f.foo(s = 1)
val k13: Int = g(super<G>).#a /*!! Int */
val k14: Int = g.bar() /*!! Int */
g.foo(s = 1)
}
@@ -0,0 +1,173 @@
// CHECK:
// Mangled name: A
// Public signature: /A|null[0]
class A : Java1<Int> {
// CHECK:
// Mangled name: A#<init>(){}
// Public signature: /A.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: A#bar(){}kotlin.Int{EnhancedNullability}
// Public signature: /A.bar|-8608075298013083950[0]
// Public signature debug description: bar(){}kotlin.Int{EnhancedNullability}
/* fake */ override fun bar(): @EnhancedNullability Int
// CHECK:
// Mangled name: A#foo(kotlin.Int{EnhancedNullability}){}
// Public signature: /A.foo|6054053236451526699[0]
// Public signature debug description: foo(kotlin.Int{EnhancedNullability}){}
/* fake */ override fun foo(s: @EnhancedNullability Int): Unit
}
// CHECK:
// Mangled name: B
// Public signature: /B|null[0]
class B<T : Any> : Java1<T> {
// CHECK:
// Mangled name: B#<init>(){}
// Public signature: /B.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: B#bar(){}1:0{EnhancedNullability}
// Public signature: /B.bar|582597716914558172[0]
// Public signature debug description: bar(){}1:0{EnhancedNullability}
/* fake */ override fun bar(): @EnhancedNullability T
// CHECK:
// Mangled name: B#foo(1:0{EnhancedNullability}){}
// Public signature: /B.foo|-5059967198211209740[0]
// Public signature debug description: foo(1:0{EnhancedNullability}){}
/* fake */ override fun foo(s: @EnhancedNullability T): 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 JVM_IR:
// Mangled name: C#bar(){}kotlin.Int{EnhancedNullability}
// Public signature: /C.bar|-8608075298013083950[0]
// Public signature debug description: bar(){}kotlin.Int{EnhancedNullability}
/* fake */ override fun bar(): @EnhancedNullability Int
// CHECK:
// Mangled name: C#foo(kotlin.Int{EnhancedNullability}){}
// Public signature: /C.foo|6054053236451526699[0]
// Public signature debug description: foo(kotlin.Int{EnhancedNullability}){}
/* fake */ override fun foo(s: @EnhancedNullability Int): Unit
}
// CHECK:
// Mangled name: D
// Public signature: /D|null[0]
class D : Java3<Int?> {
// CHECK:
// Mangled name: D#<init>(){}
// Public signature: /D.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: D#bar(){}kotlin.Int?{EnhancedNullability}
// Public signature: /D.bar|2978979494349169063[0]
// Public signature debug description: bar(){}kotlin.Int?{EnhancedNullability}
/* fake */ override fun bar(): @EnhancedNullability Int?
// CHECK:
// Mangled name: D#foo(kotlin.Int?{EnhancedNullability}){}
// Public signature: /D.foo|-4427753872183235141[0]
// Public signature debug description: foo(kotlin.Int?{EnhancedNullability}){}
/* fake */ override fun foo(s: @EnhancedNullability Int?): Unit
}
// CHECK:
// Mangled name: E
// Public signature: /E|null[0]
class E : Java3<Int> {
// CHECK:
// Mangled name: E#<init>(){}
// Public signature: /E.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: E#bar(){}kotlin.Int{EnhancedNullability}
// Public signature: /E.bar|-8608075298013083950[0]
// Public signature debug description: bar(){}kotlin.Int{EnhancedNullability}
/* fake */ override fun bar(): @EnhancedNullability Int
// CHECK:
// Mangled name: E#foo(kotlin.Int{EnhancedNullability}){}
// Public signature: /E.foo|6054053236451526699[0]
// Public signature debug description: foo(kotlin.Int{EnhancedNullability}){}
/* fake */ override fun foo(s: @EnhancedNullability Int): Unit
}
// CHECK:
// Mangled name: F
// Public signature: /F|null[0]
class F : Java4<Int> {
// CHECK:
// Mangled name: F#<init>(){}
// Public signature: /F.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: F#bar(){}kotlin.Int{EnhancedNullability}
// Public signature: /F.bar|-8608075298013083950[0]
// Public signature debug description: bar(){}kotlin.Int{EnhancedNullability}
/* fake */ override fun bar(): @EnhancedNullability Int
// CHECK:
// Mangled name: F#foo(kotlin.Int{EnhancedNullability}){}
// Public signature: /F.foo|6054053236451526699[0]
// Public signature debug description: foo(kotlin.Int{EnhancedNullability}){}
/* fake */ override fun foo(s: @EnhancedNullability Int): Unit
}
// CHECK:
// Mangled name: G
// Public signature: /G|null[0]
class G<T : Number> : Java4<T> {
// CHECK:
// Mangled name: G#<init>(){}
// Public signature: /G.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: G#bar(){}1:0{EnhancedNullability}
// Public signature: /G.bar|582597716914558172[0]
// Public signature debug description: bar(){}1:0{EnhancedNullability}
/* fake */ override fun bar(): @EnhancedNullability T
// CHECK:
// Mangled name: G#foo(1:0{EnhancedNullability}){}
// Public signature: /G.foo|-5059967198211209740[0]
// Public signature debug description: foo(1:0{EnhancedNullability}){}
/* fake */ override fun foo(s: @EnhancedNullability T): Unit
}
// CHECK:
// Mangled name: #test(A;B<kotlin.String>;C;D;E;F;G<kotlin.Int>){}
// Public signature: /test|-5249852593213170382[0]
// Public signature debug description: test(A;B<kotlin.String>;C;D;E;F;G<kotlin.Int>){}
fun test(a: A, b: B<String>, c: C, d: D, e: E, f: F, g: G<Int>): Unit