[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:
committed by
Space Team
parent
30aae741a6
commit
82255d5ee8
+157
@@ -0,0 +1,157 @@
|
||||
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:get visibility:public modality:OPEN <> ($this:<root>.Java1, i:@[FlexibleNullability] kotlin.Int?) returnType:@[FlexibleNullability] kotlin.Int? [fake_override,operator]
|
||||
overridden:
|
||||
public open fun get (i: @[FlexibleNullability] kotlin.Int?): @[FlexibleNullability] kotlin.Int? declared in <root>.Java1
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
|
||||
VALUE_PARAMETER name:i index:0 type:@[FlexibleNullability] 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:invoke visibility:public modality:OPEN <> ($this:<root>.Java1) returnType:kotlin.Unit [fake_override,operator]
|
||||
overridden:
|
||||
public open fun invoke (): kotlin.Unit declared in <root>.Java1
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
|
||||
FUN FAKE_OVERRIDE name:plus visibility:public modality:OPEN <> ($this:<root>.Java1, i:@[FlexibleNullability] kotlin.Int?) returnType:@[FlexibleNullability] <root>.Java1? [fake_override,operator]
|
||||
overridden:
|
||||
public open fun plus (i: @[FlexibleNullability] kotlin.Int?): @[FlexibleNullability] <root>.Java1? declared in <root>.Java1
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
|
||||
VALUE_PARAMETER name:i index:0 type:@[FlexibleNullability] 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
|
||||
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:get visibility:public modality:OPEN <> ($this:<root>.B, i:kotlin.Int?) returnType:kotlin.Int [operator]
|
||||
overridden:
|
||||
public open fun get (i: @[FlexibleNullability] kotlin.Int?): @[FlexibleNullability] kotlin.Int? declared in <root>.Java1
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.B
|
||||
VALUE_PARAMETER name:i index:0 type:kotlin.Int?
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public open fun get (i: kotlin.Int?): kotlin.Int declared in <root>.B'
|
||||
CONST Int type=kotlin.Int value=2
|
||||
FUN name:invoke visibility:public modality:OPEN <> ($this:<root>.B) returnType:kotlin.Unit [operator]
|
||||
overridden:
|
||||
public open fun invoke (): kotlin.Unit declared in <root>.Java1
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.B
|
||||
BLOCK_BODY
|
||||
FUN name:plus visibility:public modality:OPEN <> ($this:<root>.B, i:kotlin.Int?) returnType:<root>.Java1 [operator]
|
||||
overridden:
|
||||
public open fun plus (i: @[FlexibleNullability] kotlin.Int?): @[FlexibleNullability] <root>.Java1? declared in <root>.Java1
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.B
|
||||
VALUE_PARAMETER name:i index:0 type:kotlin.Int?
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public open fun plus (i: kotlin.Int?): <root>.Java1 declared in <root>.B'
|
||||
CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java1' type=<root>.Java1 origin=null
|
||||
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> () declared in <root>.Java1'
|
||||
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:get visibility:public modality:OPEN <> ($this:<root>.C, i:kotlin.Int?) returnType:kotlin.Int [operator]
|
||||
overridden:
|
||||
public open fun get (i: @[FlexibleNullability] kotlin.Int?): @[FlexibleNullability] kotlin.Int? declared in <root>.Java1
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.C
|
||||
VALUE_PARAMETER name:i index:0 type:kotlin.Int?
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public open fun get (i: kotlin.Int?): kotlin.Int declared in <root>.C'
|
||||
CONST Int type=kotlin.Int value=2
|
||||
FUN name:invoke visibility:public modality:OPEN <> ($this:<root>.C) returnType:kotlin.Unit [operator]
|
||||
overridden:
|
||||
public open fun invoke (): kotlin.Unit declared in <root>.Java1
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.C
|
||||
BLOCK_BODY
|
||||
FUN name:plus visibility:public modality:OPEN <> ($this:<root>.C, i:kotlin.Int?) returnType:<root>.Java1 [operator]
|
||||
overridden:
|
||||
public open fun plus (i: @[FlexibleNullability] kotlin.Int?): @[FlexibleNullability] <root>.Java1? declared in <root>.Java1
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.C
|
||||
VALUE_PARAMETER name:i index:0 type:kotlin.Int?
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public open fun plus (i: kotlin.Int?): <root>.Java1 declared in <root>.C'
|
||||
CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java1' type=<root>.Java1 origin=null
|
||||
FUN name:test visibility:public modality:FINAL <> () returnType:kotlin.Unit
|
||||
BLOCK_BODY
|
||||
VAR name:a type:<root>.A [val]
|
||||
CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.A' type=<root>.A origin=null
|
||||
VAR name:k type:kotlin.Unit [val]
|
||||
CALL 'public open fun invoke (): kotlin.Unit declared in <root>.A' type=kotlin.Unit origin=null
|
||||
$this: GET_VAR 'val a: <root>.A declared in <root>.test' type=<root>.A origin=VARIABLE_AS_FUNCTION
|
||||
VAR name:k1 type:<root>.Java1 [val]
|
||||
TYPE_OP type=<root>.Java1 origin=IMPLICIT_NOTNULL typeOperand=<root>.Java1
|
||||
CALL 'public open fun plus (i: @[FlexibleNullability] kotlin.Int?): @[FlexibleNullability] <root>.Java1? declared in <root>.A' type=@[FlexibleNullability] <root>.Java1? origin=PLUS
|
||||
$this: GET_VAR 'val a: <root>.A declared in <root>.test' type=<root>.A origin=null
|
||||
i: CONST Int type=kotlin.Int value=1
|
||||
VAR name:k2 type:kotlin.Int [val]
|
||||
TYPE_OP type=kotlin.Int origin=IMPLICIT_NOTNULL typeOperand=kotlin.Int
|
||||
CALL 'public open fun get (i: @[FlexibleNullability] kotlin.Int?): @[FlexibleNullability] kotlin.Int? declared in <root>.A' type=@[FlexibleNullability] kotlin.Int? origin=GET_ARRAY_ELEMENT
|
||||
$this: GET_VAR 'val a: <root>.A declared in <root>.test' type=<root>.A origin=null
|
||||
i: CONST Int type=kotlin.Int value=1
|
||||
VAR name:b type:<root>.B [val]
|
||||
CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.B' type=<root>.B origin=null
|
||||
VAR name:k3 type:kotlin.Unit [val]
|
||||
CALL 'public open fun invoke (): kotlin.Unit declared in <root>.B' type=kotlin.Unit origin=null
|
||||
$this: GET_VAR 'val b: <root>.B declared in <root>.test' type=<root>.B origin=VARIABLE_AS_FUNCTION
|
||||
VAR name:k4 type:<root>.Java1 [val]
|
||||
CALL 'public open fun plus (i: kotlin.Int?): <root>.Java1 declared in <root>.B' type=<root>.Java1 origin=PLUS
|
||||
$this: GET_VAR 'val b: <root>.B declared in <root>.test' type=<root>.B origin=null
|
||||
i: CONST Int type=kotlin.Int value=1
|
||||
VAR name:k5 type:kotlin.Int [val]
|
||||
CALL 'public open fun get (i: kotlin.Int?): kotlin.Int declared in <root>.B' type=kotlin.Int origin=GET_ARRAY_ELEMENT
|
||||
$this: GET_VAR 'val b: <root>.B declared in <root>.test' type=<root>.B origin=null
|
||||
i: CONST Int type=kotlin.Int value=1
|
||||
VAR name:c type:<root>.C [val]
|
||||
CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.C' type=<root>.C origin=null
|
||||
VAR name:k6 type:kotlin.Unit [val]
|
||||
CALL 'public open fun invoke (): kotlin.Unit declared in <root>.C' type=kotlin.Unit origin=null
|
||||
$this: GET_VAR 'val c: <root>.C declared in <root>.test' type=<root>.C origin=VARIABLE_AS_FUNCTION
|
||||
VAR name:k7 type:<root>.Java1 [val]
|
||||
CALL 'public open fun plus (i: kotlin.Int?): <root>.Java1 declared in <root>.C' type=<root>.Java1 origin=PLUS
|
||||
$this: GET_VAR 'val c: <root>.C declared in <root>.test' type=<root>.C origin=null
|
||||
i: CONST Int type=kotlin.Int value=1
|
||||
VAR name:k8 type:kotlin.Int [val]
|
||||
CALL 'public open fun get (i: kotlin.Int?): kotlin.Int declared in <root>.C' type=kotlin.Int origin=GET_ARRAY_ELEMENT
|
||||
$this: GET_VAR 'val c: <root>.C declared in <root>.test' type=<root>.C origin=null
|
||||
i: CONST Int type=kotlin.Int value=1
|
||||
+63
@@ -0,0 +1,63 @@
|
||||
class A : Java1 {
|
||||
constructor() /* primary */ {
|
||||
super/*Java1*/()
|
||||
/* <init>() */
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class B : Java1 {
|
||||
constructor() /* primary */ {
|
||||
super/*Java1*/()
|
||||
/* <init>() */
|
||||
|
||||
}
|
||||
|
||||
override operator fun get(i: Int?): Int {
|
||||
return 2
|
||||
}
|
||||
|
||||
override operator fun invoke() {
|
||||
}
|
||||
|
||||
override operator fun plus(i: Int?): Java1 {
|
||||
return Java1()
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class C : Java1 {
|
||||
constructor() /* primary */ {
|
||||
super/*Java1*/()
|
||||
/* <init>() */
|
||||
|
||||
}
|
||||
|
||||
override operator fun get(i: Int?): Int {
|
||||
return 2
|
||||
}
|
||||
|
||||
override operator fun invoke() {
|
||||
}
|
||||
|
||||
override operator fun plus(i: Int?): Java1 {
|
||||
return Java1()
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
fun test() {
|
||||
val a: A = A()
|
||||
val k: Unit = a.invoke()
|
||||
val k1: Java1 = a.plus(i = 1) /*!! Java1 */
|
||||
val k2: Int = a.get(i = 1) /*!! Int */
|
||||
val b: B = B()
|
||||
val k3: Unit = b.invoke()
|
||||
val k4: Java1 = b.plus(i = 1)
|
||||
val k5: Int = b.get(i = 1)
|
||||
val c: C = C()
|
||||
val k6: Unit = c.invoke()
|
||||
val k7: Java1 = c.plus(i = 1)
|
||||
val k8: Int = c.get(i = 1)
|
||||
}
|
||||
+157
@@ -0,0 +1,157 @@
|
||||
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:get visibility:public modality:OPEN <> ($this:<root>.Java1, i:@[FlexibleNullability] kotlin.Int?) returnType:@[FlexibleNullability] kotlin.Int? [fake_override,operator]
|
||||
overridden:
|
||||
public open fun get (i: @[FlexibleNullability] kotlin.Int?): @[FlexibleNullability] kotlin.Int? declared in <root>.Java1
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
|
||||
VALUE_PARAMETER name:i index:0 type:@[FlexibleNullability] 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:invoke visibility:public modality:OPEN <> ($this:<root>.Java1) returnType:kotlin.Unit [fake_override,operator]
|
||||
overridden:
|
||||
public open fun invoke (): kotlin.Unit declared in <root>.Java1
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
|
||||
FUN FAKE_OVERRIDE name:plus visibility:public modality:OPEN <> ($this:<root>.Java1, i:@[FlexibleNullability] kotlin.Int?) returnType:@[FlexibleNullability] <root>.Java1? [fake_override,operator]
|
||||
overridden:
|
||||
public open fun plus (i: @[FlexibleNullability] kotlin.Int?): @[FlexibleNullability] <root>.Java1? declared in <root>.Java1
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
|
||||
VALUE_PARAMETER name:i index:0 type:@[FlexibleNullability] 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
|
||||
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:get visibility:public modality:OPEN <> ($this:<root>.B, i:kotlin.Int?) returnType:kotlin.Int [operator]
|
||||
overridden:
|
||||
public open fun get (i: @[FlexibleNullability] kotlin.Int?): @[FlexibleNullability] kotlin.Int? declared in <root>.Java1
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.B
|
||||
VALUE_PARAMETER name:i index:0 type:kotlin.Int?
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public open fun get (i: kotlin.Int?): kotlin.Int declared in <root>.B'
|
||||
CONST Int type=kotlin.Int value=2
|
||||
FUN name:invoke visibility:public modality:OPEN <> ($this:<root>.B) returnType:kotlin.Unit [operator]
|
||||
overridden:
|
||||
public open fun invoke (): kotlin.Unit declared in <root>.Java1
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.B
|
||||
BLOCK_BODY
|
||||
FUN name:plus visibility:public modality:OPEN <> ($this:<root>.B, i:kotlin.Int?) returnType:<root>.Java1 [operator]
|
||||
overridden:
|
||||
public open fun plus (i: @[FlexibleNullability] kotlin.Int?): @[FlexibleNullability] <root>.Java1? declared in <root>.Java1
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.B
|
||||
VALUE_PARAMETER name:i index:0 type:kotlin.Int?
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public open fun plus (i: kotlin.Int?): <root>.Java1 declared in <root>.B'
|
||||
CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java1' type=<root>.Java1 origin=null
|
||||
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> () declared in <root>.Java1'
|
||||
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:get visibility:public modality:OPEN <> ($this:<root>.C, i:kotlin.Int?) returnType:kotlin.Int [operator]
|
||||
overridden:
|
||||
public open fun get (i: @[FlexibleNullability] kotlin.Int?): @[FlexibleNullability] kotlin.Int? declared in <root>.Java1
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.C
|
||||
VALUE_PARAMETER name:i index:0 type:kotlin.Int?
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public open fun get (i: kotlin.Int?): kotlin.Int declared in <root>.C'
|
||||
CONST Int type=kotlin.Int value=2
|
||||
FUN name:invoke visibility:public modality:OPEN <> ($this:<root>.C) returnType:kotlin.Unit [operator]
|
||||
overridden:
|
||||
public open fun invoke (): kotlin.Unit declared in <root>.Java1
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.C
|
||||
BLOCK_BODY
|
||||
FUN name:plus visibility:public modality:OPEN <> ($this:<root>.C, i:kotlin.Int?) returnType:<root>.Java1 [operator]
|
||||
overridden:
|
||||
public open fun plus (i: @[FlexibleNullability] kotlin.Int?): @[FlexibleNullability] <root>.Java1? declared in <root>.Java1
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.C
|
||||
VALUE_PARAMETER name:i index:0 type:kotlin.Int?
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public open fun plus (i: kotlin.Int?): <root>.Java1 declared in <root>.C'
|
||||
CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java1' type=<root>.Java1 origin=null
|
||||
FUN name:test visibility:public modality:FINAL <> () returnType:kotlin.Unit
|
||||
BLOCK_BODY
|
||||
VAR name:a type:<root>.A [val]
|
||||
CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.A' type=<root>.A origin=null
|
||||
VAR name:k type:kotlin.Unit [val]
|
||||
CALL 'public open fun invoke (): kotlin.Unit declared in <root>.A' type=kotlin.Unit origin=INVOKE
|
||||
$this: GET_VAR 'val a: <root>.A declared in <root>.test' type=<root>.A origin=VARIABLE_AS_FUNCTION
|
||||
VAR name:k1 type:<root>.Java1 [val]
|
||||
TYPE_OP type=<root>.Java1 origin=IMPLICIT_NOTNULL typeOperand=<root>.Java1
|
||||
CALL 'public open fun plus (i: @[FlexibleNullability] kotlin.Int?): @[FlexibleNullability] <root>.Java1? declared in <root>.A' type=@[FlexibleNullability] <root>.Java1? origin=PLUS
|
||||
$this: GET_VAR 'val a: <root>.A declared in <root>.test' type=<root>.A origin=null
|
||||
i: CONST Int type=kotlin.Int value=1
|
||||
VAR name:k2 type:kotlin.Int [val]
|
||||
TYPE_OP type=kotlin.Int origin=IMPLICIT_NOTNULL typeOperand=kotlin.Int
|
||||
CALL 'public open fun get (i: @[FlexibleNullability] kotlin.Int?): @[FlexibleNullability] kotlin.Int? declared in <root>.A' type=@[FlexibleNullability] kotlin.Int? origin=GET_ARRAY_ELEMENT
|
||||
$this: GET_VAR 'val a: <root>.A declared in <root>.test' type=<root>.A origin=null
|
||||
i: CONST Int type=kotlin.Int value=1
|
||||
VAR name:b type:<root>.B [val]
|
||||
CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.B' type=<root>.B origin=null
|
||||
VAR name:k3 type:kotlin.Unit [val]
|
||||
CALL 'public open fun invoke (): kotlin.Unit declared in <root>.B' type=kotlin.Unit origin=INVOKE
|
||||
$this: GET_VAR 'val b: <root>.B declared in <root>.test' type=<root>.B origin=VARIABLE_AS_FUNCTION
|
||||
VAR name:k4 type:<root>.Java1 [val]
|
||||
CALL 'public open fun plus (i: kotlin.Int?): <root>.Java1 declared in <root>.B' type=<root>.Java1 origin=PLUS
|
||||
$this: GET_VAR 'val b: <root>.B declared in <root>.test' type=<root>.B origin=null
|
||||
i: CONST Int type=kotlin.Int value=1
|
||||
VAR name:k5 type:kotlin.Int [val]
|
||||
CALL 'public open fun get (i: kotlin.Int?): kotlin.Int declared in <root>.B' type=kotlin.Int origin=GET_ARRAY_ELEMENT
|
||||
$this: GET_VAR 'val b: <root>.B declared in <root>.test' type=<root>.B origin=null
|
||||
i: CONST Int type=kotlin.Int value=1
|
||||
VAR name:c type:<root>.C [val]
|
||||
CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.C' type=<root>.C origin=null
|
||||
VAR name:k6 type:kotlin.Unit [val]
|
||||
CALL 'public open fun invoke (): kotlin.Unit declared in <root>.C' type=kotlin.Unit origin=INVOKE
|
||||
$this: GET_VAR 'val c: <root>.C declared in <root>.test' type=<root>.C origin=VARIABLE_AS_FUNCTION
|
||||
VAR name:k7 type:<root>.Java1 [val]
|
||||
CALL 'public open fun plus (i: kotlin.Int?): <root>.Java1 declared in <root>.C' type=<root>.Java1 origin=PLUS
|
||||
$this: GET_VAR 'val c: <root>.C declared in <root>.test' type=<root>.C origin=null
|
||||
i: CONST Int type=kotlin.Int value=1
|
||||
VAR name:k8 type:kotlin.Int [val]
|
||||
CALL 'public open fun get (i: kotlin.Int?): kotlin.Int declared in <root>.C' type=kotlin.Int origin=GET_ARRAY_ELEMENT
|
||||
$this: GET_VAR 'val c: <root>.C declared in <root>.test' type=<root>.C origin=null
|
||||
i: CONST Int type=kotlin.Int value=1
|
||||
+47
@@ -0,0 +1,47 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
|
||||
// FILE: Java1.java
|
||||
|
||||
public class Java1 {
|
||||
public void invoke(){};
|
||||
public Java1 plus(Integer i){ return this;};
|
||||
public Integer get(Integer i){ return 1; }
|
||||
}
|
||||
|
||||
// FILE: 1.kt
|
||||
|
||||
class A : Java1()
|
||||
|
||||
class B : Java1() {
|
||||
override fun invoke() {}
|
||||
override fun get(i: Int?): Int {
|
||||
return 2
|
||||
}
|
||||
override fun plus(i: Int?): Java1 {
|
||||
return Java1()
|
||||
}
|
||||
}
|
||||
|
||||
class C : Java1() {
|
||||
override operator fun invoke() {}
|
||||
override operator fun get(i: Int?): Int {
|
||||
return 2
|
||||
}
|
||||
override operator fun plus(i: Int?): Java1 {
|
||||
return Java1()
|
||||
}
|
||||
}
|
||||
fun test() {
|
||||
val a = A()
|
||||
val k: Unit = a()
|
||||
val k1: Java1 = a + 1
|
||||
val k2: Int = a[1]
|
||||
val b = B()
|
||||
val k3: Unit = b()
|
||||
val k4: Java1 = b + 1
|
||||
val k5: Int = b[1]
|
||||
val c = C()
|
||||
val k6: Unit = c()
|
||||
val k7: Java1 = c + 1
|
||||
val k8: Int = c[1]
|
||||
}
|
||||
+63
@@ -0,0 +1,63 @@
|
||||
class A : Java1 {
|
||||
constructor() /* primary */ {
|
||||
super/*Java1*/()
|
||||
/* <init>() */
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class B : Java1 {
|
||||
constructor() /* primary */ {
|
||||
super/*Java1*/()
|
||||
/* <init>() */
|
||||
|
||||
}
|
||||
|
||||
override operator fun get(i: Int?): Int {
|
||||
return 2
|
||||
}
|
||||
|
||||
override operator fun invoke() {
|
||||
}
|
||||
|
||||
override operator fun plus(i: Int?): Java1 {
|
||||
return Java1()
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class C : Java1 {
|
||||
constructor() /* primary */ {
|
||||
super/*Java1*/()
|
||||
/* <init>() */
|
||||
|
||||
}
|
||||
|
||||
override operator fun get(i: Int?): Int {
|
||||
return 2
|
||||
}
|
||||
|
||||
override operator fun invoke() {
|
||||
}
|
||||
|
||||
override operator fun plus(i: Int?): Java1 {
|
||||
return Java1()
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
fun test() {
|
||||
val a: A = A()
|
||||
val k: Unit = a.invoke()
|
||||
val k1: Java1 = a.plus(i = 1) /*!! Java1 */
|
||||
val k2: Int = a.get(i = 1) /*!! Int */
|
||||
val b: B = B()
|
||||
val k3: Unit = b.invoke()
|
||||
val k4: Java1 = b.plus(i = 1)
|
||||
val k5: Int = b.get(i = 1)
|
||||
val c: C = C()
|
||||
val k6: Unit = c.invoke()
|
||||
val k7: Java1 = c.plus(i = 1)
|
||||
val k8: Int = c.get(i = 1)
|
||||
}
|
||||
+95
@@ -0,0 +1,95 @@
|
||||
// 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#get(kotlin.Int?){}kotlin.Int?
|
||||
// Public signature: /A.get|7040689195092882450[0]
|
||||
// Public signature debug description: get(kotlin.Int?){}kotlin.Int?
|
||||
/* fake */ override operator fun get(i: Int?): Int?
|
||||
|
||||
// CHECK:
|
||||
// Mangled name: A#invoke(){}
|
||||
// Public signature: /A.invoke|-4663091332620260873[0]
|
||||
// Public signature debug description: invoke(){}
|
||||
/* fake */ override operator fun invoke(): Unit
|
||||
|
||||
// CHECK JVM_IR:
|
||||
// Mangled name: A#plus(kotlin.Int?){}Java1?
|
||||
// Public signature: /A.plus|-7032856236956634841[0]
|
||||
// Public signature debug description: plus(kotlin.Int?){}Java1?
|
||||
/* fake */ override operator fun plus(i: Int?): Java1?
|
||||
|
||||
}
|
||||
|
||||
// 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#get(kotlin.Int?){}kotlin.Int
|
||||
// Public signature: /B.get|6449384512088502848[0]
|
||||
// Public signature debug description: get(kotlin.Int?){}kotlin.Int
|
||||
override operator fun get(i: Int?): Int
|
||||
|
||||
// CHECK:
|
||||
// Mangled name: B#invoke(){}
|
||||
// Public signature: /B.invoke|-4663091332620260873[0]
|
||||
// Public signature debug description: invoke(){}
|
||||
override operator fun invoke(): Unit
|
||||
|
||||
// CHECK JVM_IR:
|
||||
// Mangled name: B#plus(kotlin.Int?){}Java1
|
||||
// Public signature: /B.plus|5151435286051456288[0]
|
||||
// Public signature debug description: plus(kotlin.Int?){}Java1
|
||||
override operator fun plus(i: Int?): Java1
|
||||
|
||||
}
|
||||
|
||||
// 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 JVM_IR:
|
||||
// Mangled name: C#get(kotlin.Int?){}kotlin.Int
|
||||
// Public signature: /C.get|6449384512088502848[0]
|
||||
// Public signature debug description: get(kotlin.Int?){}kotlin.Int
|
||||
override operator fun get(i: Int?): Int
|
||||
|
||||
// CHECK:
|
||||
// Mangled name: C#invoke(){}
|
||||
// Public signature: /C.invoke|-4663091332620260873[0]
|
||||
// Public signature debug description: invoke(){}
|
||||
override operator fun invoke(): Unit
|
||||
|
||||
// CHECK JVM_IR:
|
||||
// Mangled name: C#plus(kotlin.Int?){}Java1
|
||||
// Public signature: /C.plus|5151435286051456288[0]
|
||||
// Public signature debug description: plus(kotlin.Int?){}Java1
|
||||
override operator fun plus(i: Int?): Java1
|
||||
|
||||
}
|
||||
|
||||
// CHECK:
|
||||
// Mangled name: #test(){}
|
||||
// Public signature: /test|6620506149988718649[0]
|
||||
// Public signature debug description: test(){}
|
||||
fun test(): Unit
|
||||
Vendored
+309
@@ -0,0 +1,309 @@
|
||||
FILE fqName:<root> fileName:/1.kt
|
||||
CLASS CLASS name:A modality:OPEN visibility:public superTypes:[kotlin.Any]
|
||||
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.A
|
||||
CONSTRUCTOR visibility:public <> () returnType:<root>.A [primary]
|
||||
BLOCK_BODY
|
||||
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in kotlin.Any'
|
||||
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:A modality: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:get visibility:public modality:OPEN <> ($this:<root>.A, i:kotlin.Int?) returnType:kotlin.Int [operator]
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.A
|
||||
VALUE_PARAMETER name:i index:0 type:kotlin.Int?
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public open fun get (i: kotlin.Int?): kotlin.Int declared in <root>.A'
|
||||
CONST Int type=kotlin.Int value=2
|
||||
FUN name:invoke visibility:public modality:OPEN <> ($this:<root>.A) returnType:kotlin.Unit [operator]
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.A
|
||||
BLOCK_BODY
|
||||
FUN name:plus visibility:public modality:OPEN <> ($this:<root>.A, i:kotlin.Int?) returnType:<root>.A [operator]
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.A
|
||||
VALUE_PARAMETER name:i index:0 type:kotlin.Int?
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public open fun plus (i: kotlin.Int?): <root>.A declared in <root>.A'
|
||||
CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.A' type=<root>.A origin=null
|
||||
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:get visibility:public modality:OPEN <> ($this:<root>.A, i:kotlin.Int?) returnType:kotlin.Int [fake_override,operator]
|
||||
overridden:
|
||||
public open fun get (i: kotlin.Int?): kotlin.Int declared in <root>.Java1
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.A
|
||||
VALUE_PARAMETER name:i 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>.Java1
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
FUN FAKE_OVERRIDE name:invoke visibility:public modality:OPEN <> ($this:<root>.A) returnType:kotlin.Unit [fake_override,operator]
|
||||
overridden:
|
||||
public open fun invoke (): kotlin.Unit declared in <root>.Java1
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.A
|
||||
FUN FAKE_OVERRIDE name:plus visibility:public modality:OPEN <> ($this:<root>.A, i:kotlin.Int?) returnType:<root>.A [fake_override,operator]
|
||||
overridden:
|
||||
public open fun plus (i: kotlin.Int?): <root>.A declared in <root>.Java1
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.A
|
||||
VALUE_PARAMETER name:i 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
|
||||
$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:equals visibility:public modality:OPEN <> ($this: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:get visibility:public modality:OPEN <> ($this:<root>.A, i:kotlin.Int?) returnType:kotlin.Int [fake_override,operator]
|
||||
overridden:
|
||||
public open fun get (i: kotlin.Int?): kotlin.Int declared in <root>.Java2
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.A
|
||||
VALUE_PARAMETER name:i 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:invoke visibility:public modality:OPEN <> ($this:<root>.Java2) returnType:kotlin.Unit [fake_override,operator]
|
||||
overridden:
|
||||
public open fun invoke (): kotlin.Unit declared in <root>.Java2
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.Java2
|
||||
FUN FAKE_OVERRIDE name:plus visibility:public modality:OPEN <> ($this:<root>.A, i:kotlin.Int?) returnType:<root>.A [fake_override,operator]
|
||||
overridden:
|
||||
public open fun plus (i: kotlin.Int?): <root>.A declared in <root>.Java2
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.A
|
||||
VALUE_PARAMETER name:i 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>.Java2
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
CLASS CLASS name:D modality:FINAL visibility:public superTypes:[<root>.Java1]
|
||||
$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]'
|
||||
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this: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:get visibility:public modality:OPEN <> ($this:<root>.D, i:kotlin.Int?) returnType:kotlin.Int [operator]
|
||||
overridden:
|
||||
public open fun get (i: kotlin.Int?): kotlin.Int declared in <root>.Java1
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.D
|
||||
VALUE_PARAMETER name:i index:0 type:kotlin.Int?
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public open fun get (i: kotlin.Int?): kotlin.Int declared in <root>.D'
|
||||
CONST Int type=kotlin.Int value=3
|
||||
FUN name:invoke visibility:public modality:OPEN <> ($this:<root>.D) returnType:kotlin.Unit [operator]
|
||||
overridden:
|
||||
public open fun invoke (): kotlin.Unit declared in <root>.Java1
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.D
|
||||
BLOCK_BODY
|
||||
FUN name:plus visibility:public modality:OPEN <> ($this:<root>.D, i:kotlin.Int?) returnType:<root>.A [operator]
|
||||
overridden:
|
||||
public open fun plus (i: kotlin.Int?): <root>.A declared in <root>.Java1
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.D
|
||||
VALUE_PARAMETER name:i index:0 type:kotlin.Int?
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public open fun plus (i: kotlin.Int?): <root>.A declared in <root>.D'
|
||||
CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.A' type=<root>.A origin=null
|
||||
CLASS CLASS name:E modality:ABSTRACT 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 kotlin.Any'
|
||||
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:E modality:ABSTRACT 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:get visibility:public modality:ABSTRACT <> ($this:<root>.Java3, i:@[FlexibleNullability] kotlin.Int?) returnType:@[FlexibleNullability] kotlin.Int? [fake_override,operator]
|
||||
overridden:
|
||||
public abstract fun get (i: @[FlexibleNullability] kotlin.Int?): @[FlexibleNullability] kotlin.Int? declared in <root>.Java4
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.Java3
|
||||
VALUE_PARAMETER name:i index:0 type:@[FlexibleNullability] 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:invoke visibility:public modality:ABSTRACT <> ($this:<root>.Java3) returnType:kotlin.Unit [fake_override,operator]
|
||||
overridden:
|
||||
public abstract fun invoke (): kotlin.Unit declared in <root>.Java4
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.Java3
|
||||
FUN FAKE_OVERRIDE name:plus visibility:public modality:ABSTRACT <> ($this:<root>.Java3, i:@[FlexibleNullability] kotlin.Int?) returnType:@[FlexibleNullability] <root>.Java3? [fake_override,operator]
|
||||
overridden:
|
||||
public abstract fun plus (i: @[FlexibleNullability] kotlin.Int?): @[FlexibleNullability] <root>.Java3? declared in <root>.Java4
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.Java3
|
||||
VALUE_PARAMETER name:i index:0 type:@[FlexibleNullability] 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>.Java4
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
CLASS CLASS name:F modality:FINAL visibility:public superTypes:[<root>.Java4]
|
||||
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.F
|
||||
CONSTRUCTOR visibility:public <> () returnType:<root>.F [primary]
|
||||
BLOCK_BODY
|
||||
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in kotlin.Any'
|
||||
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:F modality:FINAL visibility:public superTypes:[<root>.Java4]'
|
||||
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
|
||||
overridden:
|
||||
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java4
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
|
||||
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
|
||||
overridden:
|
||||
public open fun hashCode (): kotlin.Int declared in <root>.Java4
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
|
||||
overridden:
|
||||
public open fun toString (): kotlin.String declared in <root>.Java4
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
FUN name:get visibility:public modality:OPEN <> ($this:<root>.F, i:kotlin.Int?) returnType:kotlin.Int [operator]
|
||||
overridden:
|
||||
public abstract fun get (i: @[FlexibleNullability] kotlin.Int?): @[FlexibleNullability] kotlin.Int? declared in <root>.Java4
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.F
|
||||
VALUE_PARAMETER name:i index:0 type:kotlin.Int?
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public open fun get (i: kotlin.Int?): kotlin.Int declared in <root>.F'
|
||||
CONST Int type=kotlin.Int value=4
|
||||
FUN name:invoke visibility:public modality:OPEN <> ($this:<root>.F) returnType:kotlin.Unit [operator]
|
||||
overridden:
|
||||
public abstract fun invoke (): kotlin.Unit declared in <root>.Java4
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.F
|
||||
BLOCK_BODY
|
||||
FUN name:plus visibility:public modality:OPEN <> ($this:<root>.F, i:kotlin.Int?) returnType:<root>.Java3 [operator]
|
||||
overridden:
|
||||
public abstract fun plus (i: @[FlexibleNullability] kotlin.Int?): @[FlexibleNullability] <root>.Java3? declared in <root>.Java4
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.F
|
||||
VALUE_PARAMETER name:i index:0 type:kotlin.Int?
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public open fun plus (i: kotlin.Int?): <root>.Java3 declared in <root>.F'
|
||||
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
|
||||
CLASS INTERFACE name:KotlinInterface modality:ABSTRACT visibility:public superTypes:[<root>.Java3]
|
||||
$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 <root>.Java3
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
|
||||
FUN FAKE_OVERRIDE name:get visibility:public modality:ABSTRACT <> ($this:<root>.Java3, i:@[FlexibleNullability] kotlin.Int?) returnType:@[FlexibleNullability] kotlin.Int? [fake_override,operator]
|
||||
overridden:
|
||||
public abstract fun get (i: @[FlexibleNullability] kotlin.Int?): @[FlexibleNullability] kotlin.Int? declared in <root>.Java3
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.Java3
|
||||
VALUE_PARAMETER name:i index:0 type:@[FlexibleNullability] 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:invoke visibility:public modality:ABSTRACT <> ($this:<root>.Java3) returnType:kotlin.Unit [fake_override,operator]
|
||||
overridden:
|
||||
public abstract fun invoke (): kotlin.Unit declared in <root>.Java3
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.Java3
|
||||
FUN FAKE_OVERRIDE name:plus visibility:public modality:ABSTRACT <> ($this:<root>.Java3, i:@[FlexibleNullability] kotlin.Int?) returnType:@[FlexibleNullability] <root>.Java3? [fake_override,operator]
|
||||
overridden:
|
||||
public abstract fun plus (i: @[FlexibleNullability] kotlin.Int?): @[FlexibleNullability] <root>.Java3? declared in <root>.Java3
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.Java3
|
||||
VALUE_PARAMETER name:i index:0 type:@[FlexibleNullability] 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>.Java3
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
FUN name:test visibility:public modality:FINAL <> (b:<root>.B, c:<root>.C, d:<root>.D, e:<root>.E, f:<root>.F) 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
|
||||
BLOCK_BODY
|
||||
VAR name:k type:kotlin.Unit [val]
|
||||
CALL 'public open fun invoke (): 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=VARIABLE_AS_FUNCTION
|
||||
VAR name:k1 type:<root>.A [val]
|
||||
CALL 'public open fun plus (i: kotlin.Int?): <root>.A declared in <root>.B' type=<root>.A origin=PLUS
|
||||
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
|
||||
i: CONST Int type=kotlin.Int value=1
|
||||
VAR name:k2 type:kotlin.Int [val]
|
||||
CALL 'public open fun get (i: kotlin.Int?): kotlin.Int declared in <root>.B' type=kotlin.Int origin=GET_ARRAY_ELEMENT
|
||||
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
|
||||
i: CONST Int type=kotlin.Int value=1
|
||||
VAR name:k3 type:kotlin.Unit [val]
|
||||
CALL 'public open fun invoke (): 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=VARIABLE_AS_FUNCTION
|
||||
VAR name:k4 type:<root>.A [val]
|
||||
CALL 'public open fun plus (i: kotlin.Int?): <root>.A declared in <root>.C' type=<root>.A origin=PLUS
|
||||
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
|
||||
i: CONST Int type=kotlin.Int value=1
|
||||
VAR name:k5 type:kotlin.Int [val]
|
||||
CALL 'public open fun get (i: kotlin.Int?): kotlin.Int declared in <root>.C' type=kotlin.Int origin=GET_ARRAY_ELEMENT
|
||||
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
|
||||
i: CONST Int type=kotlin.Int value=1
|
||||
VAR name:k6 type:kotlin.Unit [val]
|
||||
CALL 'public open fun invoke (): 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=VARIABLE_AS_FUNCTION
|
||||
VAR name:k7 type:<root>.A [val]
|
||||
CALL 'public open fun plus (i: kotlin.Int?): <root>.A declared in <root>.D' type=<root>.A origin=PLUS
|
||||
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
|
||||
i: CONST Int type=kotlin.Int value=1
|
||||
VAR name:k8 type:kotlin.Int [val]
|
||||
CALL 'public open fun get (i: kotlin.Int?): kotlin.Int declared in <root>.D' type=kotlin.Int origin=GET_ARRAY_ELEMENT
|
||||
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
|
||||
i: CONST Int type=kotlin.Int value=1
|
||||
VAR name:k9 type:kotlin.Unit [val]
|
||||
CALL 'public abstract fun invoke (): 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=VARIABLE_AS_FUNCTION
|
||||
VAR name:k10 type:<root>.Java3 [val]
|
||||
TYPE_OP type=<root>.Java3 origin=IMPLICIT_NOTNULL typeOperand=<root>.Java3
|
||||
CALL 'public abstract fun plus (i: @[FlexibleNullability] kotlin.Int?): @[FlexibleNullability] <root>.Java3? declared in <root>.E' type=@[FlexibleNullability] <root>.Java3? origin=PLUS
|
||||
$this: GET_VAR 'e: <root>.E declared in <root>.test' type=<root>.E origin=null
|
||||
i: 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
|
||||
CALL 'public abstract fun get (i: @[FlexibleNullability] kotlin.Int?): @[FlexibleNullability] kotlin.Int? declared in <root>.E' type=@[FlexibleNullability] kotlin.Int? origin=GET_ARRAY_ELEMENT
|
||||
$this: GET_VAR 'e: <root>.E declared in <root>.test' type=<root>.E origin=null
|
||||
i: CONST Int type=kotlin.Int value=1
|
||||
VAR name:k12 type:kotlin.Unit [val]
|
||||
CALL 'public open fun invoke (): 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=VARIABLE_AS_FUNCTION
|
||||
VAR name:k13 type:<root>.Java3 [val]
|
||||
CALL 'public open fun plus (i: kotlin.Int?): <root>.Java3 declared in <root>.F' type=<root>.Java3 origin=PLUS
|
||||
$this: GET_VAR 'f: <root>.F declared in <root>.test' type=<root>.F origin=null
|
||||
i: CONST Int type=kotlin.Int value=1
|
||||
VAR name:k14 type:kotlin.Int [val]
|
||||
CALL 'public open fun get (i: kotlin.Int?): kotlin.Int declared in <root>.F' type=kotlin.Int origin=GET_ARRAY_ELEMENT
|
||||
$this: GET_VAR 'f: <root>.F declared in <root>.test' type=<root>.F origin=null
|
||||
i: CONST Int type=kotlin.Int value=1
|
||||
Vendored
+107
@@ -0,0 +1,107 @@
|
||||
open class A {
|
||||
constructor() /* primary */ {
|
||||
super/*Any*/()
|
||||
/* <init>() */
|
||||
|
||||
}
|
||||
|
||||
open operator fun get(i: Int?): Int {
|
||||
return 2
|
||||
}
|
||||
|
||||
open operator fun invoke() {
|
||||
}
|
||||
|
||||
open operator fun plus(i: Int?): A {
|
||||
return A()
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class B : Java1 {
|
||||
constructor() /* primary */ {
|
||||
super/*Java1*/()
|
||||
/* <init>() */
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class C : Java2 {
|
||||
constructor() /* primary */ {
|
||||
super/*Java2*/()
|
||||
/* <init>() */
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class D : Java1 {
|
||||
constructor() /* primary */ {
|
||||
super/*Java1*/()
|
||||
/* <init>() */
|
||||
|
||||
}
|
||||
|
||||
override operator fun get(i: Int?): Int {
|
||||
return 3
|
||||
}
|
||||
|
||||
override operator fun invoke() {
|
||||
}
|
||||
|
||||
override operator fun plus(i: Int?): A {
|
||||
return A()
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
abstract class E : Java4 {
|
||||
constructor() /* primary */ {
|
||||
super/*Any*/()
|
||||
/* <init>() */
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class F : Java4 {
|
||||
constructor() /* primary */ {
|
||||
super/*Any*/()
|
||||
/* <init>() */
|
||||
|
||||
}
|
||||
|
||||
override operator fun get(i: Int?): Int {
|
||||
return 4
|
||||
}
|
||||
|
||||
override operator fun invoke() {
|
||||
}
|
||||
|
||||
override operator fun plus(i: Int?): Java3 {
|
||||
return CHECK_NOT_NULL<Nothing>(arg0 = null)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
interface KotlinInterface : Java3 {
|
||||
}
|
||||
|
||||
fun test(b: B, c: C, d: D, e: E, f: F) {
|
||||
val k: Unit = b.invoke()
|
||||
val k1: A = b.plus(i = 1)
|
||||
val k2: Int = b.get(i = 1)
|
||||
val k3: Unit = c.invoke()
|
||||
val k4: A = c.plus(i = 1)
|
||||
val k5: Int = c.get(i = 1)
|
||||
val k6: Unit = d.invoke()
|
||||
val k7: A = d.plus(i = 1)
|
||||
val k8: Int = d.get(i = 1)
|
||||
val k9: Unit = e.invoke()
|
||||
val k10: Java3 = e.plus(i = 1) /*!! Java3 */
|
||||
val k11: Int = e.get(i = 1) /*!! Int */
|
||||
val k12: Unit = f.invoke()
|
||||
val k13: Java3 = f.plus(i = 1)
|
||||
val k14: Int = f.get(i = 1)
|
||||
}
|
||||
+309
@@ -0,0 +1,309 @@
|
||||
FILE fqName:<root> fileName:/1.kt
|
||||
CLASS CLASS name:A modality:OPEN visibility:public superTypes:[kotlin.Any]
|
||||
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.A
|
||||
CONSTRUCTOR visibility:public <> () returnType:<root>.A [primary]
|
||||
BLOCK_BODY
|
||||
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in kotlin.Any'
|
||||
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:A modality: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:get visibility:public modality:OPEN <> ($this:<root>.A, i:kotlin.Int?) returnType:kotlin.Int [operator]
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.A
|
||||
VALUE_PARAMETER name:i index:0 type:kotlin.Int?
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public open fun get (i: kotlin.Int?): kotlin.Int declared in <root>.A'
|
||||
CONST Int type=kotlin.Int value=2
|
||||
FUN name:invoke visibility:public modality:OPEN <> ($this:<root>.A) returnType:kotlin.Unit [operator]
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.A
|
||||
BLOCK_BODY
|
||||
FUN name:plus visibility:public modality:OPEN <> ($this:<root>.A, i:kotlin.Int?) returnType:<root>.A [operator]
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.A
|
||||
VALUE_PARAMETER name:i index:0 type:kotlin.Int?
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public open fun plus (i: kotlin.Int?): <root>.A declared in <root>.A'
|
||||
CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.A' type=<root>.A origin=null
|
||||
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:get visibility:public modality:OPEN <> ($this:<root>.A, i:kotlin.Int?) returnType:kotlin.Int [fake_override,operator]
|
||||
overridden:
|
||||
public open fun get (i: kotlin.Int?): kotlin.Int declared in <root>.Java1
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.A
|
||||
VALUE_PARAMETER name:i 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>.Java1
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
FUN FAKE_OVERRIDE name:invoke visibility:public modality:OPEN <> ($this:<root>.A) returnType:kotlin.Unit [fake_override,operator]
|
||||
overridden:
|
||||
public open fun invoke (): kotlin.Unit declared in <root>.Java1
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.A
|
||||
FUN FAKE_OVERRIDE name:plus visibility:public modality:OPEN <> ($this:<root>.A, i:kotlin.Int?) returnType:<root>.A [fake_override,operator]
|
||||
overridden:
|
||||
public open fun plus (i: kotlin.Int?): <root>.A declared in <root>.Java1
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.A
|
||||
VALUE_PARAMETER name:i 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
|
||||
$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:equals visibility:public modality:OPEN <> ($this: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:get visibility:public modality:OPEN <> ($this:<root>.A, i:kotlin.Int?) returnType:kotlin.Int [fake_override,operator]
|
||||
overridden:
|
||||
public open fun get (i: kotlin.Int?): kotlin.Int declared in <root>.Java2
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.A
|
||||
VALUE_PARAMETER name:i 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:invoke visibility:public modality:OPEN <> ($this:<root>.Java2) returnType:kotlin.Unit [fake_override,operator]
|
||||
overridden:
|
||||
public open fun invoke (): kotlin.Unit declared in <root>.Java2
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.Java2
|
||||
FUN FAKE_OVERRIDE name:plus visibility:public modality:OPEN <> ($this:<root>.A, i:kotlin.Int?) returnType:<root>.A [fake_override,operator]
|
||||
overridden:
|
||||
public open fun plus (i: kotlin.Int?): <root>.A declared in <root>.Java2
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.A
|
||||
VALUE_PARAMETER name:i 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>.Java2
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
CLASS CLASS name:D modality:FINAL visibility:public superTypes:[<root>.Java1]
|
||||
$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]'
|
||||
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this: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:get visibility:public modality:OPEN <> ($this:<root>.D, i:kotlin.Int?) returnType:kotlin.Int [operator]
|
||||
overridden:
|
||||
public open fun get (i: kotlin.Int?): kotlin.Int declared in <root>.Java1
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.D
|
||||
VALUE_PARAMETER name:i index:0 type:kotlin.Int?
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public open fun get (i: kotlin.Int?): kotlin.Int declared in <root>.D'
|
||||
CONST Int type=kotlin.Int value=3
|
||||
FUN name:invoke visibility:public modality:OPEN <> ($this:<root>.D) returnType:kotlin.Unit [operator]
|
||||
overridden:
|
||||
public open fun invoke (): kotlin.Unit declared in <root>.Java1
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.D
|
||||
BLOCK_BODY
|
||||
FUN name:plus visibility:public modality:OPEN <> ($this:<root>.D, i:kotlin.Int?) returnType:<root>.A [operator]
|
||||
overridden:
|
||||
public open fun plus (i: kotlin.Int?): <root>.A declared in <root>.Java1
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.D
|
||||
VALUE_PARAMETER name:i index:0 type:kotlin.Int?
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public open fun plus (i: kotlin.Int?): <root>.A declared in <root>.D'
|
||||
CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.A' type=<root>.A origin=null
|
||||
CLASS CLASS name:E modality:ABSTRACT 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 kotlin.Any'
|
||||
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:E modality:ABSTRACT 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:get visibility:public modality:ABSTRACT <> ($this:<root>.Java3, i:@[FlexibleNullability] kotlin.Int?) returnType:@[FlexibleNullability] kotlin.Int? [fake_override,operator]
|
||||
overridden:
|
||||
public abstract fun get (i: @[FlexibleNullability] kotlin.Int?): @[FlexibleNullability] kotlin.Int? declared in <root>.Java4
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.Java3
|
||||
VALUE_PARAMETER name:i index:0 type:@[FlexibleNullability] 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:invoke visibility:public modality:ABSTRACT <> ($this:<root>.Java3) returnType:kotlin.Unit [fake_override,operator]
|
||||
overridden:
|
||||
public abstract fun invoke (): kotlin.Unit declared in <root>.Java4
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.Java3
|
||||
FUN FAKE_OVERRIDE name:plus visibility:public modality:ABSTRACT <> ($this:<root>.Java3, i:@[FlexibleNullability] kotlin.Int?) returnType:@[FlexibleNullability] <root>.Java3? [fake_override,operator]
|
||||
overridden:
|
||||
public abstract fun plus (i: @[FlexibleNullability] kotlin.Int?): @[FlexibleNullability] <root>.Java3? declared in <root>.Java4
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.Java3
|
||||
VALUE_PARAMETER name:i index:0 type:@[FlexibleNullability] 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>.Java4
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
CLASS CLASS name:F modality:FINAL visibility:public superTypes:[<root>.Java4]
|
||||
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.F
|
||||
CONSTRUCTOR visibility:public <> () returnType:<root>.F [primary]
|
||||
BLOCK_BODY
|
||||
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in kotlin.Any'
|
||||
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:F modality:FINAL visibility:public superTypes:[<root>.Java4]'
|
||||
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
|
||||
overridden:
|
||||
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java4
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
|
||||
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
|
||||
overridden:
|
||||
public open fun hashCode (): kotlin.Int declared in <root>.Java4
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
|
||||
overridden:
|
||||
public open fun toString (): kotlin.String declared in <root>.Java4
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
FUN name:get visibility:public modality:OPEN <> ($this:<root>.F, i:kotlin.Int?) returnType:kotlin.Int [operator]
|
||||
overridden:
|
||||
public abstract fun get (i: @[FlexibleNullability] kotlin.Int?): @[FlexibleNullability] kotlin.Int? declared in <root>.Java4
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.F
|
||||
VALUE_PARAMETER name:i index:0 type:kotlin.Int?
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public open fun get (i: kotlin.Int?): kotlin.Int declared in <root>.F'
|
||||
CONST Int type=kotlin.Int value=4
|
||||
FUN name:invoke visibility:public modality:OPEN <> ($this:<root>.F) returnType:kotlin.Unit [operator]
|
||||
overridden:
|
||||
public abstract fun invoke (): kotlin.Unit declared in <root>.Java4
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.F
|
||||
BLOCK_BODY
|
||||
FUN name:plus visibility:public modality:OPEN <> ($this:<root>.F, i:kotlin.Int?) returnType:<root>.Java3 [operator]
|
||||
overridden:
|
||||
public abstract fun plus (i: @[FlexibleNullability] kotlin.Int?): @[FlexibleNullability] <root>.Java3? declared in <root>.Java4
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.F
|
||||
VALUE_PARAMETER name:i index:0 type:kotlin.Int?
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public open fun plus (i: kotlin.Int?): <root>.Java3 declared in <root>.F'
|
||||
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
|
||||
CLASS INTERFACE name:KotlinInterface modality:ABSTRACT visibility:public superTypes:[<root>.Java3]
|
||||
$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 <root>.Java3
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
|
||||
FUN FAKE_OVERRIDE name:get visibility:public modality:ABSTRACT <> ($this:<root>.Java3, i:@[FlexibleNullability] kotlin.Int?) returnType:@[FlexibleNullability] kotlin.Int? [fake_override,operator]
|
||||
overridden:
|
||||
public abstract fun get (i: @[FlexibleNullability] kotlin.Int?): @[FlexibleNullability] kotlin.Int? declared in <root>.Java3
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.Java3
|
||||
VALUE_PARAMETER name:i index:0 type:@[FlexibleNullability] 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:invoke visibility:public modality:ABSTRACT <> ($this:<root>.Java3) returnType:kotlin.Unit [fake_override,operator]
|
||||
overridden:
|
||||
public abstract fun invoke (): kotlin.Unit declared in <root>.Java3
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.Java3
|
||||
FUN FAKE_OVERRIDE name:plus visibility:public modality:ABSTRACT <> ($this:<root>.Java3, i:@[FlexibleNullability] kotlin.Int?) returnType:@[FlexibleNullability] <root>.Java3? [fake_override,operator]
|
||||
overridden:
|
||||
public abstract fun plus (i: @[FlexibleNullability] kotlin.Int?): @[FlexibleNullability] <root>.Java3? declared in <root>.Java3
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.Java3
|
||||
VALUE_PARAMETER name:i index:0 type:@[FlexibleNullability] 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>.Java3
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
FUN name:test visibility:public modality:FINAL <> (b:<root>.B, c:<root>.C, d:<root>.D, e:<root>.E, f:<root>.F) 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
|
||||
BLOCK_BODY
|
||||
VAR name:k type:kotlin.Unit [val]
|
||||
CALL 'public open fun invoke (): kotlin.Unit declared in <root>.B' type=kotlin.Unit origin=INVOKE
|
||||
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=VARIABLE_AS_FUNCTION
|
||||
VAR name:k1 type:<root>.A [val]
|
||||
CALL 'public open fun plus (i: kotlin.Int?): <root>.A declared in <root>.B' type=<root>.A origin=PLUS
|
||||
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
|
||||
i: CONST Int type=kotlin.Int value=1
|
||||
VAR name:k2 type:kotlin.Int [val]
|
||||
CALL 'public open fun get (i: kotlin.Int?): kotlin.Int declared in <root>.B' type=kotlin.Int origin=GET_ARRAY_ELEMENT
|
||||
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
|
||||
i: CONST Int type=kotlin.Int value=1
|
||||
VAR name:k3 type:kotlin.Unit [val]
|
||||
CALL 'public open fun invoke (): kotlin.Unit declared in <root>.C' type=kotlin.Unit origin=INVOKE
|
||||
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=VARIABLE_AS_FUNCTION
|
||||
VAR name:k4 type:<root>.A [val]
|
||||
CALL 'public open fun plus (i: kotlin.Int?): <root>.A declared in <root>.C' type=<root>.A origin=PLUS
|
||||
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
|
||||
i: CONST Int type=kotlin.Int value=1
|
||||
VAR name:k5 type:kotlin.Int [val]
|
||||
CALL 'public open fun get (i: kotlin.Int?): kotlin.Int declared in <root>.C' type=kotlin.Int origin=GET_ARRAY_ELEMENT
|
||||
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
|
||||
i: CONST Int type=kotlin.Int value=1
|
||||
VAR name:k6 type:kotlin.Unit [val]
|
||||
CALL 'public open fun invoke (): kotlin.Unit declared in <root>.D' type=kotlin.Unit origin=INVOKE
|
||||
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=VARIABLE_AS_FUNCTION
|
||||
VAR name:k7 type:<root>.A [val]
|
||||
CALL 'public open fun plus (i: kotlin.Int?): <root>.A declared in <root>.D' type=<root>.A origin=PLUS
|
||||
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
|
||||
i: CONST Int type=kotlin.Int value=1
|
||||
VAR name:k8 type:kotlin.Int [val]
|
||||
CALL 'public open fun get (i: kotlin.Int?): kotlin.Int declared in <root>.D' type=kotlin.Int origin=GET_ARRAY_ELEMENT
|
||||
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
|
||||
i: CONST Int type=kotlin.Int value=1
|
||||
VAR name:k9 type:kotlin.Unit [val]
|
||||
CALL 'public abstract fun invoke (): kotlin.Unit declared in <root>.E' type=kotlin.Unit origin=INVOKE
|
||||
$this: GET_VAR 'e: <root>.E declared in <root>.test' type=<root>.E origin=VARIABLE_AS_FUNCTION
|
||||
VAR name:k10 type:<root>.Java3 [val]
|
||||
TYPE_OP type=<root>.Java3 origin=IMPLICIT_NOTNULL typeOperand=<root>.Java3
|
||||
CALL 'public abstract fun plus (i: @[FlexibleNullability] kotlin.Int?): @[FlexibleNullability] <root>.Java3? declared in <root>.E' type=@[FlexibleNullability] <root>.Java3? origin=PLUS
|
||||
$this: GET_VAR 'e: <root>.E declared in <root>.test' type=<root>.E origin=null
|
||||
i: 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
|
||||
CALL 'public abstract fun get (i: @[FlexibleNullability] kotlin.Int?): @[FlexibleNullability] kotlin.Int? declared in <root>.E' type=@[FlexibleNullability] kotlin.Int? origin=GET_ARRAY_ELEMENT
|
||||
$this: GET_VAR 'e: <root>.E declared in <root>.test' type=<root>.E origin=null
|
||||
i: CONST Int type=kotlin.Int value=1
|
||||
VAR name:k12 type:kotlin.Unit [val]
|
||||
CALL 'public open fun invoke (): kotlin.Unit declared in <root>.F' type=kotlin.Unit origin=INVOKE
|
||||
$this: GET_VAR 'f: <root>.F declared in <root>.test' type=<root>.F origin=VARIABLE_AS_FUNCTION
|
||||
VAR name:k13 type:<root>.Java3 [val]
|
||||
CALL 'public open fun plus (i: kotlin.Int?): <root>.Java3 declared in <root>.F' type=<root>.Java3 origin=PLUS
|
||||
$this: GET_VAR 'f: <root>.F declared in <root>.test' type=<root>.F origin=null
|
||||
i: CONST Int type=kotlin.Int value=1
|
||||
VAR name:k14 type:kotlin.Int [val]
|
||||
CALL 'public open fun get (i: kotlin.Int?): kotlin.Int declared in <root>.F' type=kotlin.Int origin=GET_ARRAY_ELEMENT
|
||||
$this: GET_VAR 'f: <root>.F declared in <root>.test' type=<root>.F origin=null
|
||||
i: CONST Int type=kotlin.Int value=1
|
||||
+76
@@ -0,0 +1,76 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
|
||||
// FILE: Java1.java
|
||||
public class Java1 extends A { }
|
||||
|
||||
// FILE: Java2.java
|
||||
public class Java2 extends A {
|
||||
public void invoke(){};
|
||||
}
|
||||
|
||||
// FILE: Java3.java
|
||||
public interface Java3 {
|
||||
public void invoke();
|
||||
public Java3 plus(Integer i);
|
||||
public Integer get(Integer i);
|
||||
}
|
||||
|
||||
// FILE: Java4.java
|
||||
public interface Java4 extends KotlinInterface{ }
|
||||
|
||||
// FILE: 1.kt
|
||||
|
||||
open class A {
|
||||
open operator fun invoke() {}
|
||||
open operator fun get(i: Int?): Int {
|
||||
return 2
|
||||
}
|
||||
open operator fun plus(i: Int?): A {
|
||||
return A()
|
||||
}
|
||||
}
|
||||
class B : Java1() //Kotlin ← Java ← Kotlin
|
||||
|
||||
class C : Java2() //Kotlin ← Java ← Kotlin with explicit override in java
|
||||
|
||||
class D: Java1() { //Kotlin ← Java ← Kotlin with explicit override
|
||||
override fun invoke() { }
|
||||
override fun get(i: Int?): Int {
|
||||
return 3
|
||||
}
|
||||
override fun plus(i: Int?): A {
|
||||
return A()
|
||||
}
|
||||
}
|
||||
|
||||
abstract class E : Java4 //Kotlin ← Java ← Kotlin ← Java
|
||||
|
||||
class F: Java4 { //Kotlin ← Java ← Kotlin ← Java with explicit override
|
||||
override fun invoke() { }
|
||||
override fun plus(i: Int?): Java3 {
|
||||
return null!!
|
||||
}
|
||||
override fun get(i: Int?): Int {
|
||||
return 4
|
||||
}
|
||||
}
|
||||
|
||||
interface KotlinInterface : Java3
|
||||
|
||||
fun test(b: B, c: C, d: D, e: E, f: F) {
|
||||
val k: Unit = b()
|
||||
val k1: A = b + 1
|
||||
val k2: Int = b[1]
|
||||
val k3: Unit = c()
|
||||
val k4: A = c + 1
|
||||
val k5: Int = c[1]
|
||||
val k6: Unit = d()
|
||||
val k7: A = d + 1
|
||||
val k8: Int = d[1]
|
||||
val k9: Unit = e()
|
||||
val k10: Java3 = e + 1
|
||||
val k11: Int = e[1]
|
||||
val k12: Unit = f()
|
||||
val k13: Java3 = f + 1
|
||||
val k14: Int = f[1]
|
||||
}
|
||||
+107
@@ -0,0 +1,107 @@
|
||||
open class A {
|
||||
constructor() /* primary */ {
|
||||
super/*Any*/()
|
||||
/* <init>() */
|
||||
|
||||
}
|
||||
|
||||
open operator fun get(i: Int?): Int {
|
||||
return 2
|
||||
}
|
||||
|
||||
open operator fun invoke() {
|
||||
}
|
||||
|
||||
open operator fun plus(i: Int?): A {
|
||||
return A()
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class B : Java1 {
|
||||
constructor() /* primary */ {
|
||||
super/*Java1*/()
|
||||
/* <init>() */
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class C : Java2 {
|
||||
constructor() /* primary */ {
|
||||
super/*Java2*/()
|
||||
/* <init>() */
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class D : Java1 {
|
||||
constructor() /* primary */ {
|
||||
super/*Java1*/()
|
||||
/* <init>() */
|
||||
|
||||
}
|
||||
|
||||
override operator fun get(i: Int?): Int {
|
||||
return 3
|
||||
}
|
||||
|
||||
override operator fun invoke() {
|
||||
}
|
||||
|
||||
override operator fun plus(i: Int?): A {
|
||||
return A()
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
abstract class E : Java4 {
|
||||
constructor() /* primary */ {
|
||||
super/*Any*/()
|
||||
/* <init>() */
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class F : Java4 {
|
||||
constructor() /* primary */ {
|
||||
super/*Any*/()
|
||||
/* <init>() */
|
||||
|
||||
}
|
||||
|
||||
override operator fun get(i: Int?): Int {
|
||||
return 4
|
||||
}
|
||||
|
||||
override operator fun invoke() {
|
||||
}
|
||||
|
||||
override operator fun plus(i: Int?): Java3 {
|
||||
return CHECK_NOT_NULL<Nothing>(arg0 = null)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
interface KotlinInterface : Java3 {
|
||||
}
|
||||
|
||||
fun test(b: B, c: C, d: D, e: E, f: F) {
|
||||
val k: Unit = b.invoke()
|
||||
val k1: A = b.plus(i = 1)
|
||||
val k2: Int = b.get(i = 1)
|
||||
val k3: Unit = c.invoke()
|
||||
val k4: A = c.plus(i = 1)
|
||||
val k5: Int = c.get(i = 1)
|
||||
val k6: Unit = d.invoke()
|
||||
val k7: A = d.plus(i = 1)
|
||||
val k8: Int = d.get(i = 1)
|
||||
val k9: Unit = e.invoke()
|
||||
val k10: Java3 = e.plus(i = 1) /*!! Java3 */
|
||||
val k11: Int = e.get(i = 1) /*!! Int */
|
||||
val k12: Unit = f.invoke()
|
||||
val k13: Java3 = f.plus(i = 1)
|
||||
val k14: Int = f.get(i = 1)
|
||||
}
|
||||
Vendored
+209
@@ -0,0 +1,209 @@
|
||||
// CHECK:
|
||||
// Mangled name: A
|
||||
// Public signature: /A|null[0]
|
||||
open class A {
|
||||
// CHECK:
|
||||
// Mangled name: A#<init>(){}
|
||||
// Public signature: /A.<init>|-5645683436151566731[0]
|
||||
// Public signature debug description: <init>(){}
|
||||
constructor() /* primary */
|
||||
|
||||
// CHECK JVM_IR:
|
||||
// Mangled name: A#get(kotlin.Int?){}kotlin.Int
|
||||
// Public signature: /A.get|6449384512088502848[0]
|
||||
// Public signature debug description: get(kotlin.Int?){}kotlin.Int
|
||||
open operator fun get(i: Int?): Int
|
||||
|
||||
// CHECK:
|
||||
// Mangled name: A#invoke(){}
|
||||
// Public signature: /A.invoke|-4663091332620260873[0]
|
||||
// Public signature debug description: invoke(){}
|
||||
open operator fun invoke(): Unit
|
||||
|
||||
// CHECK JVM_IR:
|
||||
// Mangled name: A#plus(kotlin.Int?){}A
|
||||
// Public signature: /A.plus|-1795499796367270285[0]
|
||||
// Public signature debug description: plus(kotlin.Int?){}A
|
||||
open operator fun plus(i: Int?): A
|
||||
|
||||
}
|
||||
|
||||
// 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#get(kotlin.Int?){}kotlin.Int
|
||||
// Public signature: /B.get|6449384512088502848[0]
|
||||
// Public signature debug description: get(kotlin.Int?){}kotlin.Int
|
||||
/* fake */ override operator fun get(i: Int?): Int
|
||||
|
||||
// CHECK:
|
||||
// Mangled name: B#invoke(){}
|
||||
// Public signature: /B.invoke|-4663091332620260873[0]
|
||||
// Public signature debug description: invoke(){}
|
||||
/* fake */ override operator fun invoke(): Unit
|
||||
|
||||
// CHECK JVM_IR:
|
||||
// Mangled name: B#plus(kotlin.Int?){}A
|
||||
// Public signature: /B.plus|-1795499796367270285[0]
|
||||
// Public signature debug description: plus(kotlin.Int?){}A
|
||||
/* fake */ override operator fun plus(i: Int?): A
|
||||
|
||||
}
|
||||
|
||||
// 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#get(kotlin.Int?){}kotlin.Int
|
||||
// Public signature: /C.get|6449384512088502848[0]
|
||||
// Public signature debug description: get(kotlin.Int?){}kotlin.Int
|
||||
/* fake */ override operator fun get(i: Int?): Int
|
||||
|
||||
// CHECK:
|
||||
// Mangled name: C#invoke(){}
|
||||
// Public signature: /C.invoke|-4663091332620260873[0]
|
||||
// Public signature debug description: invoke(){}
|
||||
/* fake */ override operator fun invoke(): Unit
|
||||
|
||||
// CHECK JVM_IR:
|
||||
// Mangled name: C#plus(kotlin.Int?){}A
|
||||
// Public signature: /C.plus|-1795499796367270285[0]
|
||||
// Public signature debug description: plus(kotlin.Int?){}A
|
||||
/* fake */ override operator fun plus(i: Int?): A
|
||||
|
||||
}
|
||||
|
||||
// CHECK:
|
||||
// Mangled name: D
|
||||
// Public signature: /D|null[0]
|
||||
class D : Java1 {
|
||||
// CHECK:
|
||||
// Mangled name: D#<init>(){}
|
||||
// Public signature: /D.<init>|-5645683436151566731[0]
|
||||
// Public signature debug description: <init>(){}
|
||||
constructor() /* primary */
|
||||
|
||||
// CHECK JVM_IR:
|
||||
// Mangled name: D#get(kotlin.Int?){}kotlin.Int
|
||||
// Public signature: /D.get|6449384512088502848[0]
|
||||
// Public signature debug description: get(kotlin.Int?){}kotlin.Int
|
||||
override operator fun get(i: Int?): Int
|
||||
|
||||
// CHECK:
|
||||
// Mangled name: D#invoke(){}
|
||||
// Public signature: /D.invoke|-4663091332620260873[0]
|
||||
// Public signature debug description: invoke(){}
|
||||
override operator fun invoke(): Unit
|
||||
|
||||
// CHECK JVM_IR:
|
||||
// Mangled name: D#plus(kotlin.Int?){}A
|
||||
// Public signature: /D.plus|-1795499796367270285[0]
|
||||
// Public signature debug description: plus(kotlin.Int?){}A
|
||||
override operator fun plus(i: Int?): A
|
||||
|
||||
}
|
||||
|
||||
// CHECK:
|
||||
// Mangled name: E
|
||||
// Public signature: /E|null[0]
|
||||
abstract 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#get(kotlin.Int?){}kotlin.Int?
|
||||
// Public signature: /E.get|7040689195092882450[0]
|
||||
// Public signature debug description: get(kotlin.Int?){}kotlin.Int?
|
||||
abstract /* fake */ override operator fun get(i: Int?): Int?
|
||||
|
||||
// CHECK:
|
||||
// Mangled name: E#invoke(){}
|
||||
// Public signature: /E.invoke|-4663091332620260873[0]
|
||||
// Public signature debug description: invoke(){}
|
||||
abstract /* fake */ override operator fun invoke(): Unit
|
||||
|
||||
// CHECK JVM_IR:
|
||||
// Mangled name: E#plus(kotlin.Int?){}Java3?
|
||||
// Public signature: /E.plus|-4867345056319774975[0]
|
||||
// Public signature debug description: plus(kotlin.Int?){}Java3?
|
||||
abstract /* fake */ override operator fun plus(i: Int?): Java3?
|
||||
|
||||
}
|
||||
|
||||
// CHECK:
|
||||
// Mangled name: F
|
||||
// Public signature: /F|null[0]
|
||||
class F : Java4 {
|
||||
// CHECK:
|
||||
// Mangled name: F#<init>(){}
|
||||
// Public signature: /F.<init>|-5645683436151566731[0]
|
||||
// Public signature debug description: <init>(){}
|
||||
constructor() /* primary */
|
||||
|
||||
// CHECK JVM_IR:
|
||||
// Mangled name: F#get(kotlin.Int?){}kotlin.Int
|
||||
// Public signature: /F.get|6449384512088502848[0]
|
||||
// Public signature debug description: get(kotlin.Int?){}kotlin.Int
|
||||
override operator fun get(i: Int?): Int
|
||||
|
||||
// CHECK:
|
||||
// Mangled name: F#invoke(){}
|
||||
// Public signature: /F.invoke|-4663091332620260873[0]
|
||||
// Public signature debug description: invoke(){}
|
||||
override operator fun invoke(): Unit
|
||||
|
||||
// CHECK JVM_IR:
|
||||
// Mangled name: F#plus(kotlin.Int?){}Java3
|
||||
// Public signature: /F.plus|-1134082592939971042[0]
|
||||
// Public signature debug description: plus(kotlin.Int?){}Java3
|
||||
override operator fun plus(i: Int?): Java3
|
||||
|
||||
}
|
||||
|
||||
// CHECK:
|
||||
// Mangled name: KotlinInterface
|
||||
// Public signature: /KotlinInterface|null[0]
|
||||
interface KotlinInterface : Java3 {
|
||||
// CHECK JVM_IR:
|
||||
// Mangled name: KotlinInterface#get(kotlin.Int?){}kotlin.Int?
|
||||
// Public signature: /KotlinInterface.get|7040689195092882450[0]
|
||||
// Public signature debug description: get(kotlin.Int?){}kotlin.Int?
|
||||
abstract /* fake */ override operator fun get(i: Int?): Int?
|
||||
|
||||
// CHECK:
|
||||
// Mangled name: KotlinInterface#invoke(){}
|
||||
// Public signature: /KotlinInterface.invoke|-4663091332620260873[0]
|
||||
// Public signature debug description: invoke(){}
|
||||
abstract /* fake */ override operator fun invoke(): Unit
|
||||
|
||||
// CHECK JVM_IR:
|
||||
// Mangled name: KotlinInterface#plus(kotlin.Int?){}Java3?
|
||||
// Public signature: /KotlinInterface.plus|-4867345056319774975[0]
|
||||
// Public signature debug description: plus(kotlin.Int?){}Java3?
|
||||
abstract /* fake */ override operator fun plus(i: Int?): Java3?
|
||||
|
||||
}
|
||||
|
||||
// CHECK:
|
||||
// Mangled name: #test(B;C;D;E;F){}
|
||||
// Public signature: /test|-7946478318145452671[0]
|
||||
// Public signature debug description: test(B;C;D;E;F){}
|
||||
fun test(b: B, c: C, d: D, e: E, f: F): Unit
|
||||
Vendored
+293
@@ -0,0 +1,293 @@
|
||||
FILE fqName:<root> fileName:/1.kt
|
||||
CLASS CLASS name:A modality:ABSTRACT 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 kotlin.Any'
|
||||
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:A modality:ABSTRACT 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:get visibility:public modality:ABSTRACT <> ($this:<root>.Java1, i:@[FlexibleNullability] kotlin.Int?) returnType:@[FlexibleNullability] kotlin.Int? [fake_override,operator]
|
||||
overridden:
|
||||
public abstract fun get (i: @[FlexibleNullability] kotlin.Int?): @[FlexibleNullability] kotlin.Int? declared in <root>.Java1
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
|
||||
VALUE_PARAMETER name:i index:0 type:@[FlexibleNullability] kotlin.Int?
|
||||
FUN FAKE_OVERRIDE name:get visibility:public modality:ABSTRACT <> ($this:<root>.Java2, i:@[FlexibleNullability] kotlin.Any?) returnType:@[FlexibleNullability] kotlin.Any? [fake_override,operator]
|
||||
overridden:
|
||||
public abstract fun get (i: @[FlexibleNullability] kotlin.Any?): @[FlexibleNullability] kotlin.Any? declared in <root>.Java2
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.Java2
|
||||
VALUE_PARAMETER name:i index:0 type:@[FlexibleNullability] 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:invoke visibility:public modality:ABSTRACT <> ($this:<root>.Java1) returnType:kotlin.Unit [fake_override,operator]
|
||||
overridden:
|
||||
public abstract fun invoke (): kotlin.Unit declared in <root>.Java1
|
||||
public abstract fun invoke (): kotlin.Unit declared in <root>.Java2
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
|
||||
FUN FAKE_OVERRIDE name:plus visibility:public modality:ABSTRACT <> ($this:<root>.Java1, i:@[FlexibleNullability] kotlin.Int?) returnType:@[FlexibleNullability] <root>.Java1? [fake_override,operator]
|
||||
overridden:
|
||||
public abstract fun plus (i: @[FlexibleNullability] kotlin.Int?): @[FlexibleNullability] <root>.Java1? declared in <root>.Java1
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
|
||||
VALUE_PARAMETER name:i index:0 type:@[FlexibleNullability] kotlin.Int?
|
||||
FUN FAKE_OVERRIDE name:plus visibility:public modality:ABSTRACT <> ($this:<root>.Java2, i:@[FlexibleNullability] kotlin.Any?) returnType:@[FlexibleNullability] <root>.Java2? [fake_override,operator]
|
||||
overridden:
|
||||
public abstract fun plus (i: @[FlexibleNullability] kotlin.Any?): @[FlexibleNullability] <root>.Java2? declared in <root>.Java2
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.Java2
|
||||
VALUE_PARAMETER name:i index:0 type:@[FlexibleNullability] kotlin.Any?
|
||||
FUN FAKE_OVERRIDE 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: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 kotlin.Any'
|
||||
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:B 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:get visibility:public modality:OPEN <> ($this:<root>.B, i:kotlin.Any?) returnType:kotlin.Any [operator]
|
||||
overridden:
|
||||
public abstract fun get (i: @[FlexibleNullability] kotlin.Any?): @[FlexibleNullability] kotlin.Any? declared in <root>.Java2
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.B
|
||||
VALUE_PARAMETER name:i index:0 type:kotlin.Any?
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public open fun get (i: kotlin.Any?): kotlin.Any declared in <root>.B'
|
||||
CONST Int type=kotlin.Int value=2
|
||||
FUN name:get visibility:public modality:OPEN <> ($this:<root>.B, i:kotlin.Int?) returnType:kotlin.Int [operator]
|
||||
overridden:
|
||||
public abstract fun get (i: @[FlexibleNullability] kotlin.Int?): @[FlexibleNullability] kotlin.Int? declared in <root>.Java1
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.B
|
||||
VALUE_PARAMETER name:i index:0 type:kotlin.Int?
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public open fun get (i: kotlin.Int?): kotlin.Int declared in <root>.B'
|
||||
CONST Int type=kotlin.Int value=3
|
||||
FUN name:invoke visibility:public modality:OPEN <> ($this:<root>.B) returnType:kotlin.Unit [operator]
|
||||
overridden:
|
||||
public abstract fun invoke (): kotlin.Unit declared in <root>.Java1
|
||||
public abstract fun invoke (): kotlin.Unit declared in <root>.Java2
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.B
|
||||
BLOCK_BODY
|
||||
FUN name:plus visibility:public modality:OPEN <> ($this:<root>.B, i:kotlin.Any?) returnType:<root>.Java2 [operator]
|
||||
overridden:
|
||||
public abstract fun plus (i: @[FlexibleNullability] kotlin.Any?): @[FlexibleNullability] <root>.Java2? declared in <root>.Java2
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.B
|
||||
VALUE_PARAMETER name:i index:0 type:kotlin.Any?
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public open fun plus (i: kotlin.Any?): <root>.Java2 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:plus visibility:public modality:OPEN <> ($this:<root>.B, i:kotlin.Int?) returnType:<root>.Java1 [operator]
|
||||
overridden:
|
||||
public abstract fun plus (i: @[FlexibleNullability] kotlin.Int?): @[FlexibleNullability] <root>.Java1? declared in <root>.Java1
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.B
|
||||
VALUE_PARAMETER name:i index:0 type:kotlin.Int?
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public open fun plus (i: kotlin.Int?): <root>.Java1 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
|
||||
CLASS CLASS name:C modality:ABSTRACT visibility:public superTypes:[<root>.KotlinInterface; <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> () declared in kotlin.Any'
|
||||
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:C modality:ABSTRACT visibility:public superTypes:[<root>.KotlinInterface; <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>.KotlinInterface
|
||||
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:get visibility:public modality:ABSTRACT <> ($this:<root>.KotlinInterface, i:kotlin.Int?) returnType:kotlin.Int [fake_override,operator]
|
||||
overridden:
|
||||
public abstract fun get (i: kotlin.Int?): kotlin.Int declared in <root>.KotlinInterface
|
||||
public abstract fun get (i: @[FlexibleNullability] kotlin.Int?): @[FlexibleNullability] kotlin.Int? declared in <root>.Java1
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
|
||||
VALUE_PARAMETER name:i 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>.KotlinInterface
|
||||
public open fun hashCode (): kotlin.Int declared in <root>.Java1
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
FUN FAKE_OVERRIDE name:invoke visibility:public modality:ABSTRACT <> ($this:<root>.KotlinInterface) returnType:kotlin.Unit [fake_override,operator]
|
||||
overridden:
|
||||
public abstract fun invoke (): kotlin.Unit declared in <root>.KotlinInterface
|
||||
public abstract fun invoke (): kotlin.Unit declared in <root>.Java1
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
|
||||
FUN FAKE_OVERRIDE name:plus visibility:public modality:ABSTRACT <> ($this:<root>.Java1, i:@[FlexibleNullability] kotlin.Int?) returnType:@[FlexibleNullability] <root>.Java1? [fake_override,operator]
|
||||
overridden:
|
||||
public abstract fun plus (i: @[FlexibleNullability] kotlin.Int?): @[FlexibleNullability] <root>.Java1? declared in <root>.Java1
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
|
||||
VALUE_PARAMETER name:i index:0 type:@[FlexibleNullability] 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>.KotlinInterface
|
||||
public open fun toString (): kotlin.String declared in <root>.Java1
|
||||
$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 kotlin.Any'
|
||||
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: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:get visibility:public modality:OPEN <> ($this:<root>.D, i:kotlin.Int?) returnType:kotlin.Int [operator]
|
||||
overridden:
|
||||
public abstract fun get (i: @[FlexibleNullability] kotlin.Int?): @[FlexibleNullability] kotlin.Int? declared in <root>.Java1
|
||||
public abstract fun get (i: kotlin.Int?): kotlin.Int declared in <root>.KotlinInterface
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.D
|
||||
VALUE_PARAMETER name:i index:0 type:kotlin.Int?
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public open fun get (i: kotlin.Int?): kotlin.Int declared in <root>.D'
|
||||
CONST Int type=kotlin.Int value=4
|
||||
FUN name:invoke visibility:public modality:OPEN <> ($this:<root>.D) returnType:kotlin.Unit [operator]
|
||||
overridden:
|
||||
public abstract fun invoke (): kotlin.Unit declared in <root>.Java1
|
||||
public abstract fun invoke (): kotlin.Unit declared in <root>.KotlinInterface
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.D
|
||||
BLOCK_BODY
|
||||
FUN name:plus visibility:public modality:OPEN <> ($this:<root>.D, i:kotlin.Int?) returnType:<root>.Java1 [operator]
|
||||
overridden:
|
||||
public abstract fun plus (i: @[FlexibleNullability] kotlin.Int?): @[FlexibleNullability] <root>.Java1? declared in <root>.Java1
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.D
|
||||
VALUE_PARAMETER name:i index:0 type:kotlin.Int?
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public open fun plus (i: kotlin.Int?): <root>.Java1 declared in <root>.D'
|
||||
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
|
||||
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:get visibility:public modality:ABSTRACT <> ($this:<root>.KotlinInterface, i:kotlin.Int?) returnType:kotlin.Int [operator]
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
|
||||
VALUE_PARAMETER name:i index:0 type:kotlin.Int?
|
||||
FUN name:invoke visibility:public modality:ABSTRACT <> ($this:<root>.KotlinInterface) returnType:kotlin.Unit [operator]
|
||||
$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) 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.Unit [val]
|
||||
CALL 'public abstract fun invoke (): 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=VARIABLE_AS_FUNCTION
|
||||
VAR name:k1 type:<root>.Java1 [val]
|
||||
TYPE_OP type=<root>.Java1 origin=IMPLICIT_NOTNULL typeOperand=<root>.Java1
|
||||
CALL 'public abstract fun plus (i: @[FlexibleNullability] kotlin.Int?): @[FlexibleNullability] <root>.Java1? declared in <root>.A' type=@[FlexibleNullability] <root>.Java1? origin=PLUS
|
||||
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
|
||||
i: CONST Int type=kotlin.Int value=1
|
||||
VAR name:k2 type:kotlin.Int? [val]
|
||||
CALL 'public abstract fun get (i: @[FlexibleNullability] kotlin.Int?): @[FlexibleNullability] kotlin.Int? declared in <root>.A' type=@[FlexibleNullability] kotlin.Int? origin=GET_ARRAY_ELEMENT
|
||||
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
|
||||
i: CONST Int type=kotlin.Int value=1
|
||||
VAR name:k3 type:kotlin.Unit [val]
|
||||
CALL 'public open fun invoke (): 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=VARIABLE_AS_FUNCTION
|
||||
VAR name:k4 type:<root>.Java1 [val]
|
||||
CALL 'public open fun plus (i: kotlin.Int?): <root>.Java1 declared in <root>.B' type=<root>.Java1 origin=PLUS
|
||||
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
|
||||
i: CONST Int type=kotlin.Int value=1
|
||||
VAR name:k5 type:<root>.Java1 [val]
|
||||
CALL 'public open fun plus (i: kotlin.Int?): <root>.Java1 declared in <root>.B' type=<root>.Java1 origin=PLUS
|
||||
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
|
||||
i: CONST Null type=kotlin.Nothing? value=null
|
||||
VAR name:k6 type:<root>.Java2 [val]
|
||||
CALL 'public open fun plus (i: kotlin.Any?): <root>.Java2 declared in <root>.B' type=<root>.Java2 origin=PLUS
|
||||
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
|
||||
i: CONST String type=kotlin.String value=""
|
||||
VAR name:k7 type:kotlin.Int [val]
|
||||
CALL 'public open fun get (i: kotlin.Int?): kotlin.Int declared in <root>.B' type=kotlin.Int origin=GET_ARRAY_ELEMENT
|
||||
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
|
||||
i: CONST Int type=kotlin.Int value=1
|
||||
VAR name:k8 type:kotlin.Int [val]
|
||||
CALL 'public open fun get (i: kotlin.Int?): kotlin.Int declared in <root>.B' type=kotlin.Int origin=GET_ARRAY_ELEMENT
|
||||
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
|
||||
i: CONST Null type=kotlin.Nothing? value=null
|
||||
VAR name:k9 type:kotlin.Any [val]
|
||||
CALL 'public open fun get (i: kotlin.Any?): kotlin.Any declared in <root>.B' type=kotlin.Any origin=GET_ARRAY_ELEMENT
|
||||
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
|
||||
i: CONST String type=kotlin.String value=""
|
||||
VAR name:k10 type:kotlin.Unit [val]
|
||||
CALL 'public abstract fun invoke (): 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=VARIABLE_AS_FUNCTION
|
||||
VAR name:k11 type:kotlin.Int [val]
|
||||
CALL 'public abstract fun get (i: kotlin.Int?): kotlin.Int declared in <root>.C' type=kotlin.Int origin=GET_ARRAY_ELEMENT
|
||||
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
|
||||
i: CONST Int type=kotlin.Int value=1
|
||||
VAR name:k12 type:kotlin.Int [val]
|
||||
CALL 'public abstract fun get (i: kotlin.Int?): kotlin.Int declared in <root>.C' type=kotlin.Int origin=GET_ARRAY_ELEMENT
|
||||
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
|
||||
i: CONST Null type=kotlin.Nothing? value=null
|
||||
VAR name:k13 type:<root>.Java1 [val]
|
||||
TYPE_OP type=<root>.Java1 origin=IMPLICIT_NOTNULL typeOperand=<root>.Java1
|
||||
CALL 'public abstract fun plus (i: @[FlexibleNullability] kotlin.Int?): @[FlexibleNullability] <root>.Java1? declared in <root>.C' type=@[FlexibleNullability] <root>.Java1? origin=PLUS
|
||||
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
|
||||
i: CONST Int type=kotlin.Int value=1
|
||||
VAR name:k14 type:kotlin.Unit [val]
|
||||
CALL 'public open fun invoke (): 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=VARIABLE_AS_FUNCTION
|
||||
VAR name:k15 type:kotlin.Int [val]
|
||||
CALL 'public open fun get (i: kotlin.Int?): kotlin.Int declared in <root>.D' type=kotlin.Int origin=GET_ARRAY_ELEMENT
|
||||
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
|
||||
i: CONST Int type=kotlin.Int value=1
|
||||
VAR name:k16 type:kotlin.Int [val]
|
||||
CALL 'public open fun get (i: kotlin.Int?): kotlin.Int declared in <root>.D' type=kotlin.Int origin=GET_ARRAY_ELEMENT
|
||||
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
|
||||
i: CONST Null type=kotlin.Nothing? value=null
|
||||
VAR name:k17 type:<root>.Java1 [val]
|
||||
CALL 'public open fun plus (i: kotlin.Int?): <root>.Java1 declared in <root>.D' type=<root>.Java1 origin=PLUS
|
||||
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
|
||||
i: CONST Int type=kotlin.Int value=1
|
||||
Vendored
+93
@@ -0,0 +1,93 @@
|
||||
abstract class A : Java1, Java2 {
|
||||
constructor() /* primary */ {
|
||||
super/*Any*/()
|
||||
/* <init>() */
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class B : Java1, Java2 {
|
||||
constructor() /* primary */ {
|
||||
super/*Any*/()
|
||||
/* <init>() */
|
||||
|
||||
}
|
||||
|
||||
override operator fun get(i: Any?): Any {
|
||||
return 2
|
||||
}
|
||||
|
||||
override operator fun get(i: Int?): Int {
|
||||
return 3
|
||||
}
|
||||
|
||||
override operator fun invoke() {
|
||||
}
|
||||
|
||||
override operator fun plus(i: Any?): Java2 {
|
||||
return CHECK_NOT_NULL<Nothing>(arg0 = null)
|
||||
}
|
||||
|
||||
override operator fun plus(i: Int?): Java1 {
|
||||
return CHECK_NOT_NULL<Nothing>(arg0 = null)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
abstract class C : Java1, KotlinInterface {
|
||||
constructor() /* primary */ {
|
||||
super/*Any*/()
|
||||
/* <init>() */
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class D : Java1, KotlinInterface {
|
||||
constructor() /* primary */ {
|
||||
super/*Any*/()
|
||||
/* <init>() */
|
||||
|
||||
}
|
||||
|
||||
override operator fun get(i: Int?): Int {
|
||||
return 4
|
||||
}
|
||||
|
||||
override operator fun invoke() {
|
||||
}
|
||||
|
||||
override operator fun plus(i: Int?): Java1 {
|
||||
return CHECK_NOT_NULL<Nothing>(arg0 = null)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
interface KotlinInterface {
|
||||
abstract operator fun get(i: Int?): Int
|
||||
|
||||
abstract operator fun invoke()
|
||||
|
||||
}
|
||||
|
||||
fun test(a: A, b: B, c: C, d: D) {
|
||||
val k: Unit = a.invoke()
|
||||
val k1: Java1 = a.plus(i = 1) /*!! Java1 */
|
||||
val k2: Int? = a.get(i = 1)
|
||||
val k3: Unit = b.invoke()
|
||||
val k4: Java1 = b.plus(i = 1)
|
||||
val k5: Java1 = b.plus(i = null)
|
||||
val k6: Java2 = b.plus(i = "")
|
||||
val k7: Int = b.get(i = 1)
|
||||
val k8: Int = b.get(i = null)
|
||||
val k9: Any = b.get(i = "")
|
||||
val k10: Unit = c.invoke()
|
||||
val k11: Int = c.get(i = 1)
|
||||
val k12: Int = c.get(i = null)
|
||||
val k13: Java1 = c.plus(i = 1) /*!! Java1 */
|
||||
val k14: Unit = d.invoke()
|
||||
val k15: Int = d.get(i = 1)
|
||||
val k16: Int = d.get(i = null)
|
||||
val k17: Java1 = d.plus(i = 1)
|
||||
}
|
||||
+293
@@ -0,0 +1,293 @@
|
||||
FILE fqName:<root> fileName:/1.kt
|
||||
CLASS CLASS name:A modality:ABSTRACT 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 kotlin.Any'
|
||||
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:A modality:ABSTRACT 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:get visibility:public modality:ABSTRACT <> ($this:<root>.Java1, i:@[FlexibleNullability] kotlin.Int?) returnType:@[FlexibleNullability] kotlin.Int? [fake_override,operator]
|
||||
overridden:
|
||||
public abstract fun get (i: @[FlexibleNullability] kotlin.Int?): @[FlexibleNullability] kotlin.Int? declared in <root>.Java1
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
|
||||
VALUE_PARAMETER name:i index:0 type:@[FlexibleNullability] kotlin.Int?
|
||||
FUN FAKE_OVERRIDE name:get visibility:public modality:ABSTRACT <> ($this:<root>.Java2, i:@[FlexibleNullability] kotlin.Any?) returnType:@[FlexibleNullability] kotlin.Any? [fake_override,operator]
|
||||
overridden:
|
||||
public abstract fun get (i: @[FlexibleNullability] kotlin.Any?): @[FlexibleNullability] kotlin.Any? declared in <root>.Java2
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.Java2
|
||||
VALUE_PARAMETER name:i index:0 type:@[FlexibleNullability] 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:invoke visibility:public modality:ABSTRACT <> ($this:<root>.Java1) returnType:kotlin.Unit [fake_override,operator]
|
||||
overridden:
|
||||
public abstract fun invoke (): kotlin.Unit declared in <root>.Java1
|
||||
public abstract fun invoke (): kotlin.Unit declared in <root>.Java2
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
|
||||
FUN FAKE_OVERRIDE name:plus visibility:public modality:ABSTRACT <> ($this:<root>.Java1, i:@[FlexibleNullability] kotlin.Int?) returnType:@[FlexibleNullability] <root>.Java1? [fake_override,operator]
|
||||
overridden:
|
||||
public abstract fun plus (i: @[FlexibleNullability] kotlin.Int?): @[FlexibleNullability] <root>.Java1? declared in <root>.Java1
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
|
||||
VALUE_PARAMETER name:i index:0 type:@[FlexibleNullability] kotlin.Int?
|
||||
FUN FAKE_OVERRIDE name:plus visibility:public modality:ABSTRACT <> ($this:<root>.Java2, i:@[FlexibleNullability] kotlin.Any?) returnType:@[FlexibleNullability] <root>.Java2? [fake_override,operator]
|
||||
overridden:
|
||||
public abstract fun plus (i: @[FlexibleNullability] kotlin.Any?): @[FlexibleNullability] <root>.Java2? declared in <root>.Java2
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.Java2
|
||||
VALUE_PARAMETER name:i index:0 type:@[FlexibleNullability] kotlin.Any?
|
||||
FUN FAKE_OVERRIDE 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: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 kotlin.Any'
|
||||
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:B 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:get visibility:public modality:OPEN <> ($this:<root>.B, i:kotlin.Any?) returnType:kotlin.Any [operator]
|
||||
overridden:
|
||||
public abstract fun get (i: @[FlexibleNullability] kotlin.Any?): @[FlexibleNullability] kotlin.Any? declared in <root>.Java2
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.B
|
||||
VALUE_PARAMETER name:i index:0 type:kotlin.Any?
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public open fun get (i: kotlin.Any?): kotlin.Any declared in <root>.B'
|
||||
CONST Int type=kotlin.Int value=2
|
||||
FUN name:get visibility:public modality:OPEN <> ($this:<root>.B, i:kotlin.Int?) returnType:kotlin.Int [operator]
|
||||
overridden:
|
||||
public abstract fun get (i: @[FlexibleNullability] kotlin.Int?): @[FlexibleNullability] kotlin.Int? declared in <root>.Java1
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.B
|
||||
VALUE_PARAMETER name:i index:0 type:kotlin.Int?
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public open fun get (i: kotlin.Int?): kotlin.Int declared in <root>.B'
|
||||
CONST Int type=kotlin.Int value=3
|
||||
FUN name:invoke visibility:public modality:OPEN <> ($this:<root>.B) returnType:kotlin.Unit [operator]
|
||||
overridden:
|
||||
public abstract fun invoke (): kotlin.Unit declared in <root>.Java1
|
||||
public abstract fun invoke (): kotlin.Unit declared in <root>.Java2
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.B
|
||||
BLOCK_BODY
|
||||
FUN name:plus visibility:public modality:OPEN <> ($this:<root>.B, i:kotlin.Any?) returnType:<root>.Java2 [operator]
|
||||
overridden:
|
||||
public abstract fun plus (i: @[FlexibleNullability] kotlin.Any?): @[FlexibleNullability] <root>.Java2? declared in <root>.Java2
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.B
|
||||
VALUE_PARAMETER name:i index:0 type:kotlin.Any?
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public open fun plus (i: kotlin.Any?): <root>.Java2 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:plus visibility:public modality:OPEN <> ($this:<root>.B, i:kotlin.Int?) returnType:<root>.Java1 [operator]
|
||||
overridden:
|
||||
public abstract fun plus (i: @[FlexibleNullability] kotlin.Int?): @[FlexibleNullability] <root>.Java1? declared in <root>.Java1
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.B
|
||||
VALUE_PARAMETER name:i index:0 type:kotlin.Int?
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public open fun plus (i: kotlin.Int?): <root>.Java1 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
|
||||
CLASS CLASS name:C modality:ABSTRACT visibility:public superTypes:[<root>.KotlinInterface; <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> () declared in kotlin.Any'
|
||||
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:C modality:ABSTRACT visibility:public superTypes:[<root>.KotlinInterface; <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>.KotlinInterface
|
||||
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:get visibility:public modality:ABSTRACT <> ($this:<root>.KotlinInterface, i:kotlin.Int?) returnType:kotlin.Int [fake_override,operator]
|
||||
overridden:
|
||||
public abstract fun get (i: kotlin.Int?): kotlin.Int declared in <root>.KotlinInterface
|
||||
public abstract fun get (i: @[FlexibleNullability] kotlin.Int?): @[FlexibleNullability] kotlin.Int? declared in <root>.Java1
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
|
||||
VALUE_PARAMETER name:i 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>.KotlinInterface
|
||||
public open fun hashCode (): kotlin.Int declared in <root>.Java1
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
FUN FAKE_OVERRIDE name:invoke visibility:public modality:ABSTRACT <> ($this:<root>.KotlinInterface) returnType:kotlin.Unit [fake_override,operator]
|
||||
overridden:
|
||||
public abstract fun invoke (): kotlin.Unit declared in <root>.KotlinInterface
|
||||
public abstract fun invoke (): kotlin.Unit declared in <root>.Java1
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
|
||||
FUN FAKE_OVERRIDE name:plus visibility:public modality:ABSTRACT <> ($this:<root>.Java1, i:@[FlexibleNullability] kotlin.Int?) returnType:@[FlexibleNullability] <root>.Java1? [fake_override,operator]
|
||||
overridden:
|
||||
public abstract fun plus (i: @[FlexibleNullability] kotlin.Int?): @[FlexibleNullability] <root>.Java1? declared in <root>.Java1
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
|
||||
VALUE_PARAMETER name:i index:0 type:@[FlexibleNullability] 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>.KotlinInterface
|
||||
public open fun toString (): kotlin.String declared in <root>.Java1
|
||||
$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 kotlin.Any'
|
||||
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: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:get visibility:public modality:OPEN <> ($this:<root>.D, i:kotlin.Int?) returnType:kotlin.Int [operator]
|
||||
overridden:
|
||||
public abstract fun get (i: @[FlexibleNullability] kotlin.Int?): @[FlexibleNullability] kotlin.Int? declared in <root>.Java1
|
||||
public abstract fun get (i: kotlin.Int?): kotlin.Int declared in <root>.KotlinInterface
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.D
|
||||
VALUE_PARAMETER name:i index:0 type:kotlin.Int?
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public open fun get (i: kotlin.Int?): kotlin.Int declared in <root>.D'
|
||||
CONST Int type=kotlin.Int value=4
|
||||
FUN name:invoke visibility:public modality:OPEN <> ($this:<root>.D) returnType:kotlin.Unit [operator]
|
||||
overridden:
|
||||
public abstract fun invoke (): kotlin.Unit declared in <root>.Java1
|
||||
public abstract fun invoke (): kotlin.Unit declared in <root>.KotlinInterface
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.D
|
||||
BLOCK_BODY
|
||||
FUN name:plus visibility:public modality:OPEN <> ($this:<root>.D, i:kotlin.Int?) returnType:<root>.Java1 [operator]
|
||||
overridden:
|
||||
public abstract fun plus (i: @[FlexibleNullability] kotlin.Int?): @[FlexibleNullability] <root>.Java1? declared in <root>.Java1
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.D
|
||||
VALUE_PARAMETER name:i index:0 type:kotlin.Int?
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public open fun plus (i: kotlin.Int?): <root>.Java1 declared in <root>.D'
|
||||
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
|
||||
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:get visibility:public modality:ABSTRACT <> ($this:<root>.KotlinInterface, i:kotlin.Int?) returnType:kotlin.Int [operator]
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
|
||||
VALUE_PARAMETER name:i index:0 type:kotlin.Int?
|
||||
FUN name:invoke visibility:public modality:ABSTRACT <> ($this:<root>.KotlinInterface) returnType:kotlin.Unit [operator]
|
||||
$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) 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.Unit [val]
|
||||
CALL 'public abstract fun invoke (): kotlin.Unit declared in <root>.A' type=kotlin.Unit origin=INVOKE
|
||||
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=VARIABLE_AS_FUNCTION
|
||||
VAR name:k1 type:<root>.Java1 [val]
|
||||
TYPE_OP type=<root>.Java1 origin=IMPLICIT_NOTNULL typeOperand=<root>.Java1
|
||||
CALL 'public abstract fun plus (i: @[FlexibleNullability] kotlin.Int?): @[FlexibleNullability] <root>.Java1? declared in <root>.A' type=@[FlexibleNullability] <root>.Java1? origin=PLUS
|
||||
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
|
||||
i: CONST Int type=kotlin.Int value=1
|
||||
VAR name:k2 type:kotlin.Int? [val]
|
||||
CALL 'public abstract fun get (i: @[FlexibleNullability] kotlin.Int?): @[FlexibleNullability] kotlin.Int? declared in <root>.A' type=@[FlexibleNullability] kotlin.Int? origin=GET_ARRAY_ELEMENT
|
||||
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
|
||||
i: CONST Int type=kotlin.Int value=1
|
||||
VAR name:k3 type:kotlin.Unit [val]
|
||||
CALL 'public open fun invoke (): kotlin.Unit declared in <root>.B' type=kotlin.Unit origin=INVOKE
|
||||
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=VARIABLE_AS_FUNCTION
|
||||
VAR name:k4 type:<root>.Java1 [val]
|
||||
CALL 'public open fun plus (i: kotlin.Int?): <root>.Java1 declared in <root>.B' type=<root>.Java1 origin=PLUS
|
||||
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
|
||||
i: CONST Int type=kotlin.Int value=1
|
||||
VAR name:k5 type:<root>.Java1 [val]
|
||||
CALL 'public open fun plus (i: kotlin.Int?): <root>.Java1 declared in <root>.B' type=<root>.Java1 origin=PLUS
|
||||
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
|
||||
i: CONST Null type=kotlin.Nothing? value=null
|
||||
VAR name:k6 type:<root>.Java2 [val]
|
||||
CALL 'public open fun plus (i: kotlin.Any?): <root>.Java2 declared in <root>.B' type=<root>.Java2 origin=PLUS
|
||||
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
|
||||
i: CONST String type=kotlin.String value=""
|
||||
VAR name:k7 type:kotlin.Int [val]
|
||||
CALL 'public open fun get (i: kotlin.Int?): kotlin.Int declared in <root>.B' type=kotlin.Int origin=GET_ARRAY_ELEMENT
|
||||
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
|
||||
i: CONST Int type=kotlin.Int value=1
|
||||
VAR name:k8 type:kotlin.Int [val]
|
||||
CALL 'public open fun get (i: kotlin.Int?): kotlin.Int declared in <root>.B' type=kotlin.Int origin=GET_ARRAY_ELEMENT
|
||||
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
|
||||
i: CONST Null type=kotlin.Nothing? value=null
|
||||
VAR name:k9 type:kotlin.Any [val]
|
||||
CALL 'public open fun get (i: kotlin.Any?): kotlin.Any declared in <root>.B' type=kotlin.Any origin=GET_ARRAY_ELEMENT
|
||||
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
|
||||
i: CONST String type=kotlin.String value=""
|
||||
VAR name:k10 type:kotlin.Unit [val]
|
||||
CALL 'public abstract fun invoke (): kotlin.Unit declared in <root>.C' type=kotlin.Unit origin=INVOKE
|
||||
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=VARIABLE_AS_FUNCTION
|
||||
VAR name:k11 type:kotlin.Int [val]
|
||||
CALL 'public abstract fun get (i: kotlin.Int?): kotlin.Int declared in <root>.C' type=kotlin.Int origin=GET_ARRAY_ELEMENT
|
||||
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
|
||||
i: CONST Int type=kotlin.Int value=1
|
||||
VAR name:k12 type:kotlin.Int [val]
|
||||
CALL 'public abstract fun get (i: kotlin.Int?): kotlin.Int declared in <root>.C' type=kotlin.Int origin=GET_ARRAY_ELEMENT
|
||||
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
|
||||
i: CONST Null type=kotlin.Nothing? value=null
|
||||
VAR name:k13 type:<root>.Java1 [val]
|
||||
TYPE_OP type=<root>.Java1 origin=IMPLICIT_NOTNULL typeOperand=<root>.Java1
|
||||
CALL 'public abstract fun plus (i: @[FlexibleNullability] kotlin.Int?): @[FlexibleNullability] <root>.Java1? declared in <root>.C' type=@[FlexibleNullability] <root>.Java1? origin=PLUS
|
||||
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
|
||||
i: CONST Int type=kotlin.Int value=1
|
||||
VAR name:k14 type:kotlin.Unit [val]
|
||||
CALL 'public open fun invoke (): kotlin.Unit declared in <root>.D' type=kotlin.Unit origin=INVOKE
|
||||
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=VARIABLE_AS_FUNCTION
|
||||
VAR name:k15 type:kotlin.Int [val]
|
||||
CALL 'public open fun get (i: kotlin.Int?): kotlin.Int declared in <root>.D' type=kotlin.Int origin=GET_ARRAY_ELEMENT
|
||||
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
|
||||
i: CONST Int type=kotlin.Int value=1
|
||||
VAR name:k16 type:kotlin.Int [val]
|
||||
CALL 'public open fun get (i: kotlin.Int?): kotlin.Int declared in <root>.D' type=kotlin.Int origin=GET_ARRAY_ELEMENT
|
||||
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
|
||||
i: CONST Null type=kotlin.Nothing? value=null
|
||||
VAR name:k17 type:<root>.Java1 [val]
|
||||
CALL 'public open fun plus (i: kotlin.Int?): <root>.Java1 declared in <root>.D' type=<root>.Java1 origin=PLUS
|
||||
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
|
||||
i: CONST Int type=kotlin.Int value=1
|
||||
+73
@@ -0,0 +1,73 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
|
||||
// FILE: Java1.java
|
||||
public interface Java1 {
|
||||
public void invoke();
|
||||
public Java1 plus(Integer i);
|
||||
public Integer get(Integer i);
|
||||
}
|
||||
|
||||
// FILE: Java2.java
|
||||
public interface Java2 {
|
||||
public void invoke();
|
||||
public Java2 plus(Object i);
|
||||
public Object get(Object i);
|
||||
}
|
||||
|
||||
// FILE: 1.kt
|
||||
abstract class A : Java1, Java2 //Kotlin ← Java1, Java2
|
||||
|
||||
class B : Java1, Java2 { //Kotlin ← Java1, Java2 with explicit override
|
||||
override fun invoke() { }
|
||||
|
||||
override fun plus(i: Any?): Java2 {
|
||||
return null!!
|
||||
}
|
||||
override fun get(i: Any?): Any {
|
||||
return 2
|
||||
}
|
||||
override fun plus(i: Int?): Java1 {
|
||||
return null!!
|
||||
}
|
||||
override fun get(i: Int?): Int {
|
||||
return 3
|
||||
}
|
||||
}
|
||||
|
||||
abstract class C : KotlinInterface, Java1 //Kotlin ← Java, Kotlin2
|
||||
|
||||
class D: Java1, KotlinInterface { //Kotlin ← Java, Kotlin2 with explicit override
|
||||
override fun invoke() { }
|
||||
override fun plus(i: Int?): Java1 {
|
||||
return null!!
|
||||
}
|
||||
override fun get(i: Int?): Int {
|
||||
return 4
|
||||
}
|
||||
}
|
||||
|
||||
interface KotlinInterface {
|
||||
operator fun invoke()
|
||||
operator fun get(i: Int?): Int
|
||||
}
|
||||
|
||||
fun test(a: A, b: B, c: C, d: D) {
|
||||
val k: Unit = a()
|
||||
val k1: Java1 = a + 1
|
||||
val k2: Int? = a[1]
|
||||
val k3: Unit = b()
|
||||
val k4: Java1 = b + 1
|
||||
val k5: Java1 = b + null
|
||||
val k6: Java2 = b + ""
|
||||
val k7: Int = b[1]
|
||||
val k8: Int = b[null]
|
||||
val k9: Any = b[""]
|
||||
val k10: Unit = c()
|
||||
val k11: Int = c[1]
|
||||
val k12: Int = c[null]
|
||||
val k13: Java1 = c + 1
|
||||
val k14: Unit = d()
|
||||
val k15: Int = d[1]
|
||||
val k16: Int = d[null]
|
||||
val k17: Java1 = d + 1
|
||||
}
|
||||
+93
@@ -0,0 +1,93 @@
|
||||
abstract class A : Java1, Java2 {
|
||||
constructor() /* primary */ {
|
||||
super/*Any*/()
|
||||
/* <init>() */
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class B : Java1, Java2 {
|
||||
constructor() /* primary */ {
|
||||
super/*Any*/()
|
||||
/* <init>() */
|
||||
|
||||
}
|
||||
|
||||
override operator fun get(i: Any?): Any {
|
||||
return 2
|
||||
}
|
||||
|
||||
override operator fun get(i: Int?): Int {
|
||||
return 3
|
||||
}
|
||||
|
||||
override operator fun invoke() {
|
||||
}
|
||||
|
||||
override operator fun plus(i: Any?): Java2 {
|
||||
return CHECK_NOT_NULL<Nothing>(arg0 = null)
|
||||
}
|
||||
|
||||
override operator fun plus(i: Int?): Java1 {
|
||||
return CHECK_NOT_NULL<Nothing>(arg0 = null)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
abstract class C : Java1, KotlinInterface {
|
||||
constructor() /* primary */ {
|
||||
super/*Any*/()
|
||||
/* <init>() */
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class D : Java1, KotlinInterface {
|
||||
constructor() /* primary */ {
|
||||
super/*Any*/()
|
||||
/* <init>() */
|
||||
|
||||
}
|
||||
|
||||
override operator fun get(i: Int?): Int {
|
||||
return 4
|
||||
}
|
||||
|
||||
override operator fun invoke() {
|
||||
}
|
||||
|
||||
override operator fun plus(i: Int?): Java1 {
|
||||
return CHECK_NOT_NULL<Nothing>(arg0 = null)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
interface KotlinInterface {
|
||||
abstract operator fun get(i: Int?): Int
|
||||
|
||||
abstract operator fun invoke()
|
||||
|
||||
}
|
||||
|
||||
fun test(a: A, b: B, c: C, d: D) {
|
||||
val k: Unit = a.invoke()
|
||||
val k1: Java1 = a.plus(i = 1) /*!! Java1 */
|
||||
val k2: Int? = a.get(i = 1)
|
||||
val k3: Unit = b.invoke()
|
||||
val k4: Java1 = b.plus(i = 1)
|
||||
val k5: Java1 = b.plus(i = null)
|
||||
val k6: Java2 = b.plus(i = "")
|
||||
val k7: Int = b.get(i = 1)
|
||||
val k8: Int = b.get(i = null)
|
||||
val k9: Any = b.get(i = "")
|
||||
val k10: Unit = c.invoke()
|
||||
val k11: Int = c.get(i = 1)
|
||||
val k12: Int = c.get(i = null)
|
||||
val k13: Java1 = c.plus(i = 1) /*!! Java1 */
|
||||
val k14: Unit = d.invoke()
|
||||
val k15: Int = d.get(i = 1)
|
||||
val k16: Int = d.get(i = null)
|
||||
val k17: Java1 = d.plus(i = 1)
|
||||
}
|
||||
Vendored
+167
@@ -0,0 +1,167 @@
|
||||
// CHECK:
|
||||
// Mangled name: A
|
||||
// Public signature: /A|null[0]
|
||||
abstract 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#get(kotlin.Int?){}kotlin.Int?
|
||||
// Public signature: /A.get|7040689195092882450[0]
|
||||
// Public signature debug description: get(kotlin.Int?){}kotlin.Int?
|
||||
abstract /* fake */ override operator fun get(i: Int?): Int?
|
||||
|
||||
// CHECK JVM_IR:
|
||||
// Mangled name: A#get(kotlin.Any?){}kotlin.Any?
|
||||
// Public signature: /A.get|8710632129153264173[0]
|
||||
// Public signature debug description: get(kotlin.Any?){}kotlin.Any?
|
||||
abstract /* fake */ override operator fun get(i: Any?): Any?
|
||||
|
||||
// CHECK:
|
||||
// Mangled name: A#invoke(){}
|
||||
// Public signature: /A.invoke|-4663091332620260873[0]
|
||||
// Public signature debug description: invoke(){}
|
||||
abstract /* fake */ override operator fun invoke(): Unit
|
||||
|
||||
// CHECK JVM_IR:
|
||||
// Mangled name: A#plus(kotlin.Int?){}Java1?
|
||||
// Public signature: /A.plus|-7032856236956634841[0]
|
||||
// Public signature debug description: plus(kotlin.Int?){}Java1?
|
||||
abstract /* fake */ override operator fun plus(i: Int?): Java1?
|
||||
|
||||
// CHECK JVM_IR:
|
||||
// Mangled name: A#plus(kotlin.Any?){}Java2?
|
||||
// Public signature: /A.plus|-7463288905288082942[0]
|
||||
// Public signature debug description: plus(kotlin.Any?){}Java2?
|
||||
abstract /* fake */ override operator fun plus(i: Any?): Java2?
|
||||
|
||||
}
|
||||
|
||||
// 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#get(kotlin.Any?){}kotlin.Any
|
||||
// Public signature: /B.get|-2113546338636552698[0]
|
||||
// Public signature debug description: get(kotlin.Any?){}kotlin.Any
|
||||
override operator fun get(i: Any?): Any
|
||||
|
||||
// CHECK JVM_IR:
|
||||
// Mangled name: B#get(kotlin.Int?){}kotlin.Int
|
||||
// Public signature: /B.get|6449384512088502848[0]
|
||||
// Public signature debug description: get(kotlin.Int?){}kotlin.Int
|
||||
override operator fun get(i: Int?): Int
|
||||
|
||||
// CHECK:
|
||||
// Mangled name: B#invoke(){}
|
||||
// Public signature: /B.invoke|-4663091332620260873[0]
|
||||
// Public signature debug description: invoke(){}
|
||||
override operator fun invoke(): Unit
|
||||
|
||||
// CHECK JVM_IR:
|
||||
// Mangled name: B#plus(kotlin.Any?){}Java2
|
||||
// Public signature: /B.plus|7623942856736290743[0]
|
||||
// Public signature debug description: plus(kotlin.Any?){}Java2
|
||||
override operator fun plus(i: Any?): Java2
|
||||
|
||||
// CHECK JVM_IR:
|
||||
// Mangled name: B#plus(kotlin.Int?){}Java1
|
||||
// Public signature: /B.plus|5151435286051456288[0]
|
||||
// Public signature debug description: plus(kotlin.Int?){}Java1
|
||||
override operator fun plus(i: Int?): Java1
|
||||
|
||||
}
|
||||
|
||||
// CHECK:
|
||||
// Mangled name: C
|
||||
// Public signature: /C|null[0]
|
||||
abstract class C : Java1, KotlinInterface {
|
||||
// CHECK:
|
||||
// Mangled name: C#<init>(){}
|
||||
// Public signature: /C.<init>|-5645683436151566731[0]
|
||||
// Public signature debug description: <init>(){}
|
||||
constructor() /* primary */
|
||||
|
||||
// CHECK JVM_IR:
|
||||
// Mangled name: C#get(kotlin.Int?){}kotlin.Int
|
||||
// Public signature: /C.get|6449384512088502848[0]
|
||||
// Public signature debug description: get(kotlin.Int?){}kotlin.Int
|
||||
abstract /* fake */ override operator fun get(i: Int?): Int
|
||||
|
||||
// CHECK:
|
||||
// Mangled name: C#invoke(){}
|
||||
// Public signature: /C.invoke|-4663091332620260873[0]
|
||||
// Public signature debug description: invoke(){}
|
||||
abstract /* fake */ override operator fun invoke(): Unit
|
||||
|
||||
// CHECK JVM_IR:
|
||||
// Mangled name: C#plus(kotlin.Int?){}Java1?
|
||||
// Public signature: /C.plus|-7032856236956634841[0]
|
||||
// Public signature debug description: plus(kotlin.Int?){}Java1?
|
||||
abstract /* fake */ override operator fun plus(i: Int?): Java1?
|
||||
|
||||
}
|
||||
|
||||
// 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#get(kotlin.Int?){}kotlin.Int
|
||||
// Public signature: /D.get|6449384512088502848[0]
|
||||
// Public signature debug description: get(kotlin.Int?){}kotlin.Int
|
||||
override operator fun get(i: Int?): Int
|
||||
|
||||
// CHECK:
|
||||
// Mangled name: D#invoke(){}
|
||||
// Public signature: /D.invoke|-4663091332620260873[0]
|
||||
// Public signature debug description: invoke(){}
|
||||
override operator fun invoke(): Unit
|
||||
|
||||
// CHECK JVM_IR:
|
||||
// Mangled name: D#plus(kotlin.Int?){}Java1
|
||||
// Public signature: /D.plus|5151435286051456288[0]
|
||||
// Public signature debug description: plus(kotlin.Int?){}Java1
|
||||
override operator fun plus(i: Int?): Java1
|
||||
|
||||
}
|
||||
|
||||
// CHECK:
|
||||
// Mangled name: KotlinInterface
|
||||
// Public signature: /KotlinInterface|null[0]
|
||||
interface KotlinInterface {
|
||||
// CHECK JVM_IR:
|
||||
// Mangled name: KotlinInterface#get(kotlin.Int?){}kotlin.Int
|
||||
// Public signature: /KotlinInterface.get|6449384512088502848[0]
|
||||
// Public signature debug description: get(kotlin.Int?){}kotlin.Int
|
||||
abstract operator fun get(i: Int?): Int
|
||||
|
||||
// CHECK:
|
||||
// Mangled name: KotlinInterface#invoke(){}
|
||||
// Public signature: /KotlinInterface.invoke|-4663091332620260873[0]
|
||||
// Public signature debug description: invoke(){}
|
||||
abstract operator fun invoke(): 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
|
||||
Vendored
+107
@@ -0,0 +1,107 @@
|
||||
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:equals visibility:public modality:OPEN <> ($this: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:get visibility:public modality:OPEN <> ($this:<root>.Java1<kotlin.Int?>, i:@[FlexibleNullability] kotlin.Int?) returnType:@[FlexibleNullability] kotlin.Int? [fake_override,operator]
|
||||
overridden:
|
||||
public open fun get (i: @[FlexibleNullability] T of <root>.Java1?): @[FlexibleNullability] T of <root>.Java1? declared in <root>.Java1
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.Java1<kotlin.Int?>
|
||||
VALUE_PARAMETER name:i index:0 type:@[FlexibleNullability] 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:invoke visibility:public modality:OPEN <> ($this:<root>.Java1<kotlin.Int?>) returnType:kotlin.Unit [fake_override,operator]
|
||||
overridden:
|
||||
public open fun invoke (): kotlin.Unit declared in <root>.Java1
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.Java1<kotlin.Int?>
|
||||
FUN FAKE_OVERRIDE name:plus visibility:public modality:OPEN <> ($this:<root>.Java1<kotlin.Int?>, i:@[FlexibleNullability] kotlin.Int?) returnType:@[FlexibleNullability] @[RawType] <root>.Java1<@[FlexibleNullability] kotlin.Any?>? [fake_override,operator]
|
||||
overridden:
|
||||
public open fun plus (i: @[FlexibleNullability] T of <root>.Java1?): @[FlexibleNullability] @[RawType] <root>.Java1<@[FlexibleNullability] kotlin.Any?>? declared in <root>.Java1
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.Java1<kotlin.Int?>
|
||||
VALUE_PARAMETER name:i index:0 type:@[FlexibleNullability] 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
|
||||
CLASS CLASS name:B modality:FINAL visibility:public superTypes:[<root>.Java1<kotlin.Any>]
|
||||
$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'
|
||||
<T>: kotlin.Any
|
||||
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:B modality:FINAL visibility:public superTypes:[<root>.Java1<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 <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:get visibility:public modality:OPEN <> ($this:<root>.B, i:kotlin.Any?) returnType:kotlin.Any [operator]
|
||||
overridden:
|
||||
public open fun get (i: @[FlexibleNullability] T of <root>.Java1?): @[FlexibleNullability] T of <root>.Java1? declared in <root>.Java1
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.B
|
||||
VALUE_PARAMETER name:i index:0 type:kotlin.Any?
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public open fun get (i: kotlin.Any?): kotlin.Any declared in <root>.B'
|
||||
CONST Int type=kotlin.Int value=1
|
||||
FUN name:invoke visibility:public modality:OPEN <> ($this:<root>.B) returnType:kotlin.Unit [operator]
|
||||
overridden:
|
||||
public open fun invoke (): kotlin.Unit declared in <root>.Java1
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.B
|
||||
BLOCK_BODY
|
||||
FUN name:plus visibility:public modality:OPEN <> ($this:<root>.B, i:kotlin.Any?) returnType:<root>.Java1<kotlin.Any> [operator]
|
||||
overridden:
|
||||
public open fun plus (i: @[FlexibleNullability] T of <root>.Java1?): @[FlexibleNullability] @[RawType] <root>.Java1<@[FlexibleNullability] kotlin.Any?>? declared in <root>.Java1
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.B
|
||||
VALUE_PARAMETER name:i index:0 type:kotlin.Any?
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public open fun plus (i: kotlin.Any?): <root>.Java1<kotlin.Any> declared in <root>.B'
|
||||
CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java1' type=<root>.Java1<kotlin.Any> origin=null
|
||||
<class: T>: kotlin.Any
|
||||
FUN name:test visibility:public modality:FINAL <> (a:<root>.A, b:<root>.B) returnType:kotlin.Unit
|
||||
VALUE_PARAMETER name:a index:0 type:<root>.A
|
||||
VALUE_PARAMETER name:b index:1 type:<root>.B
|
||||
BLOCK_BODY
|
||||
VAR name:a type:<root>.A [val]
|
||||
CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.A' type=<root>.A origin=null
|
||||
VAR name:k type:kotlin.Unit [val]
|
||||
CALL 'public open fun invoke (): kotlin.Unit declared in <root>.A' type=kotlin.Unit origin=null
|
||||
$this: GET_VAR 'val a: <root>.A declared in <root>.test' type=<root>.A origin=VARIABLE_AS_FUNCTION
|
||||
VAR name:k1 type:<root>.Java1<*>? [val]
|
||||
CALL 'public open fun plus (i: @[FlexibleNullability] kotlin.Int?): @[FlexibleNullability] @[RawType] <root>.Java1<@[FlexibleNullability] kotlin.Any?>? declared in <root>.A' type=@[FlexibleNullability] @[RawType] <root>.Java1<@[FlexibleNullability] kotlin.Any?>? origin=PLUS
|
||||
$this: GET_VAR 'val a: <root>.A declared in <root>.test' type=<root>.A origin=null
|
||||
i: CONST Int type=kotlin.Int value=1
|
||||
VAR name:k2 type:kotlin.Int? [val]
|
||||
CALL 'public open fun get (i: @[FlexibleNullability] kotlin.Int?): @[FlexibleNullability] kotlin.Int? declared in <root>.A' type=@[FlexibleNullability] kotlin.Int? origin=GET_ARRAY_ELEMENT
|
||||
$this: GET_VAR 'val a: <root>.A declared in <root>.test' type=<root>.A origin=null
|
||||
i: CONST Int type=kotlin.Int value=1
|
||||
VAR name:b type:<root>.B [val]
|
||||
CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.B' type=<root>.B origin=null
|
||||
VAR name:k3 type:kotlin.Unit [val]
|
||||
CALL 'public open fun invoke (): kotlin.Unit declared in <root>.B' type=kotlin.Unit origin=null
|
||||
$this: GET_VAR 'val b: <root>.B declared in <root>.test' type=<root>.B origin=VARIABLE_AS_FUNCTION
|
||||
VAR name:k4 type:<root>.Java1<*> [val]
|
||||
CALL 'public open fun plus (i: kotlin.Any?): <root>.Java1<kotlin.Any> declared in <root>.B' type=<root>.Java1<kotlin.Any> origin=PLUS
|
||||
$this: GET_VAR 'val b: <root>.B declared in <root>.test' type=<root>.B origin=null
|
||||
i: CONST Int type=kotlin.Int value=1
|
||||
VAR name:k5 type:kotlin.Any [val]
|
||||
CALL 'public open fun get (i: kotlin.Any?): kotlin.Any declared in <root>.B' type=kotlin.Any origin=GET_ARRAY_ELEMENT
|
||||
$this: GET_VAR 'val b: <root>.B declared in <root>.test' type=<root>.B origin=null
|
||||
i: CONST Int type=kotlin.Int value=1
|
||||
Vendored
+39
@@ -0,0 +1,39 @@
|
||||
class A : Java1<Int?> {
|
||||
constructor() /* primary */ {
|
||||
super/*Java1*/<Int?>()
|
||||
/* <init>() */
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class B : Java1<Any> {
|
||||
constructor() /* primary */ {
|
||||
super/*Java1*/<Any>()
|
||||
/* <init>() */
|
||||
|
||||
}
|
||||
|
||||
override operator fun get(i: Any?): Any {
|
||||
return 1
|
||||
}
|
||||
|
||||
override operator fun invoke() {
|
||||
}
|
||||
|
||||
override operator fun plus(i: Any?): Java1<Any> {
|
||||
return Java1<Any>()
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
fun test(a: A, b: B) {
|
||||
val a: A = A()
|
||||
val k: Unit = a.invoke()
|
||||
val k1: Java1<*>? = a.plus(i = 1)
|
||||
val k2: Int? = a.get(i = 1)
|
||||
val b: B = B()
|
||||
val k3: Unit = b.invoke()
|
||||
val k4: Java1<*> = b.plus(i = 1)
|
||||
val k5: Any = b.get(i = 1)
|
||||
}
|
||||
+107
@@ -0,0 +1,107 @@
|
||||
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>: @[FlexibleNullability] kotlin.Int?
|
||||
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:A modality:FINAL visibility:public superTypes:[<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:get visibility:public modality:OPEN <> ($this:<root>.Java1<kotlin.Int?>, i:kotlin.Int?) returnType:kotlin.Int? [fake_override,operator]
|
||||
overridden:
|
||||
public open fun get (i: @[FlexibleNullability] T of <root>.Java1?): @[FlexibleNullability] T of <root>.Java1? declared in <root>.Java1
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.Java1<kotlin.Int?>
|
||||
VALUE_PARAMETER name:i 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>.Java1
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
FUN FAKE_OVERRIDE name:invoke visibility:public modality:OPEN <> ($this:<root>.Java1<kotlin.Int?>) returnType:kotlin.Unit [fake_override,operator]
|
||||
overridden:
|
||||
public open fun invoke (): kotlin.Unit declared in <root>.Java1
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.Java1<kotlin.Int?>
|
||||
FUN FAKE_OVERRIDE name:plus visibility:public modality:OPEN <> ($this:<root>.Java1<kotlin.Int?>, i:kotlin.Int?) returnType:@[FlexibleNullability] @[RawType] <root>.Java1<@[FlexibleNullability] kotlin.Any?>? [fake_override,operator]
|
||||
overridden:
|
||||
public open fun plus (i: @[FlexibleNullability] T of <root>.Java1?): @[FlexibleNullability] @[RawType] <root>.Java1<@[FlexibleNullability] kotlin.Any?>? declared in <root>.Java1
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.Java1<kotlin.Int?>
|
||||
VALUE_PARAMETER name:i 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
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
CLASS CLASS name:B modality:FINAL visibility:public superTypes:[<root>.Java1<kotlin.Any>]
|
||||
$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'
|
||||
<T>: @[FlexibleNullability] kotlin.Any?
|
||||
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:B modality:FINAL visibility:public superTypes:[<root>.Java1<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 <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:get visibility:public modality:OPEN <> ($this:<root>.B, i:kotlin.Any?) returnType:kotlin.Any [operator]
|
||||
overridden:
|
||||
public open fun get (i: @[FlexibleNullability] T of <root>.Java1?): @[FlexibleNullability] T of <root>.Java1? declared in <root>.Java1
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.B
|
||||
VALUE_PARAMETER name:i index:0 type:kotlin.Any?
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public open fun get (i: kotlin.Any?): kotlin.Any declared in <root>.B'
|
||||
CONST Int type=kotlin.Int value=1
|
||||
FUN name:invoke visibility:public modality:OPEN <> ($this:<root>.B) returnType:kotlin.Unit [operator]
|
||||
overridden:
|
||||
public open fun invoke (): kotlin.Unit declared in <root>.Java1
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.B
|
||||
BLOCK_BODY
|
||||
FUN name:plus visibility:public modality:OPEN <> ($this:<root>.B, i:kotlin.Any?) returnType:<root>.Java1<kotlin.Any> [operator]
|
||||
overridden:
|
||||
public open fun plus (i: @[FlexibleNullability] T of <root>.Java1?): @[FlexibleNullability] @[RawType] <root>.Java1<@[FlexibleNullability] kotlin.Any?>? declared in <root>.Java1
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.B
|
||||
VALUE_PARAMETER name:i index:0 type:kotlin.Any?
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public open fun plus (i: kotlin.Any?): <root>.Java1<kotlin.Any> declared in <root>.B'
|
||||
CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java1' type=<root>.Java1<kotlin.Any> origin=null
|
||||
<class: T>: @[FlexibleNullability] kotlin.Any?
|
||||
FUN name:test visibility:public modality:FINAL <> (a:<root>.A, b:<root>.B) returnType:kotlin.Unit
|
||||
VALUE_PARAMETER name:a index:0 type:<root>.A
|
||||
VALUE_PARAMETER name:b index:1 type:<root>.B
|
||||
BLOCK_BODY
|
||||
VAR name:a type:<root>.A [val]
|
||||
CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.A' type=<root>.A origin=null
|
||||
VAR name:k type:kotlin.Unit [val]
|
||||
CALL 'public open fun invoke (): kotlin.Unit declared in <root>.A' type=kotlin.Unit origin=INVOKE
|
||||
$this: GET_VAR 'val a: <root>.A declared in <root>.test' type=<root>.A origin=VARIABLE_AS_FUNCTION
|
||||
VAR name:k1 type:<root>.Java1<*>? [val]
|
||||
CALL 'public open fun plus (i: kotlin.Int?): @[FlexibleNullability] @[RawType] <root>.Java1<@[FlexibleNullability] kotlin.Any?>? declared in <root>.A' type=@[FlexibleNullability] @[RawType] <root>.Java1<@[FlexibleNullability] kotlin.Any?>? origin=PLUS
|
||||
$this: GET_VAR 'val a: <root>.A declared in <root>.test' type=<root>.A origin=null
|
||||
i: CONST Int type=kotlin.Int value=1
|
||||
VAR name:k2 type:kotlin.Int? [val]
|
||||
CALL 'public open fun get (i: kotlin.Int?): kotlin.Int? declared in <root>.A' type=kotlin.Int? origin=GET_ARRAY_ELEMENT
|
||||
$this: GET_VAR 'val a: <root>.A declared in <root>.test' type=<root>.A origin=null
|
||||
i: CONST Int type=kotlin.Int value=1
|
||||
VAR name:b type:<root>.B [val]
|
||||
CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.B' type=<root>.B origin=null
|
||||
VAR name:k3 type:kotlin.Unit [val]
|
||||
CALL 'public open fun invoke (): kotlin.Unit declared in <root>.B' type=kotlin.Unit origin=INVOKE
|
||||
$this: GET_VAR 'val b: <root>.B declared in <root>.test' type=<root>.B origin=VARIABLE_AS_FUNCTION
|
||||
VAR name:k4 type:<root>.Java1<*> [val]
|
||||
CALL 'public open fun plus (i: kotlin.Any?): <root>.Java1<kotlin.Any> declared in <root>.B' type=<root>.Java1<kotlin.Any> origin=PLUS
|
||||
$this: GET_VAR 'val b: <root>.B declared in <root>.test' type=<root>.B origin=null
|
||||
i: CONST Int type=kotlin.Int value=1
|
||||
VAR name:k5 type:kotlin.Any [val]
|
||||
CALL 'public open fun get (i: kotlin.Any?): kotlin.Any declared in <root>.B' type=kotlin.Any origin=GET_ARRAY_ELEMENT
|
||||
$this: GET_VAR 'val b: <root>.B declared in <root>.test' type=<root>.B origin=null
|
||||
i: CONST Int type=kotlin.Int value=1
|
||||
+31
@@ -0,0 +1,31 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
|
||||
// FILE: Java1.java
|
||||
public class Java1<T> {
|
||||
public void invoke(){};
|
||||
public Java1 plus(T i){ return this;};
|
||||
public T get(T i){return null;}
|
||||
}
|
||||
// FILE: 1.kt
|
||||
class A : Java1<Int?>()
|
||||
|
||||
class B : Java1<Any>() {
|
||||
override fun invoke() {}
|
||||
override fun get(i: Any?): Any {
|
||||
return 1
|
||||
}
|
||||
override fun plus(i: Any?): Java1<Any> {
|
||||
return Java1<Any>()
|
||||
}
|
||||
}
|
||||
|
||||
fun test(a: A, b: B) {
|
||||
val a = A()
|
||||
val k: Unit = a()
|
||||
val k1: Java1<*>? = a + 1
|
||||
val k2: Int? = a[1]
|
||||
val b = B()
|
||||
val k3: Unit = b()
|
||||
val k4: Java1<*> = b + 1
|
||||
val k5: Any = b[1]
|
||||
}
|
||||
+39
@@ -0,0 +1,39 @@
|
||||
class A : Java1<Int?> {
|
||||
constructor() /* primary */ {
|
||||
super/*Java1*/<@FlexibleNullability Int?>()
|
||||
/* <init>() */
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class B : Java1<Any> {
|
||||
constructor() /* primary */ {
|
||||
super/*Java1*/<@FlexibleNullability Any?>()
|
||||
/* <init>() */
|
||||
|
||||
}
|
||||
|
||||
override operator fun get(i: Any?): Any {
|
||||
return 1
|
||||
}
|
||||
|
||||
override operator fun invoke() {
|
||||
}
|
||||
|
||||
override operator fun plus(i: Any?): Java1<Any> {
|
||||
return Java1<@FlexibleNullability Any?>()
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
fun test(a: A, b: B) {
|
||||
val a: A = A()
|
||||
val k: Unit = a.invoke()
|
||||
val k1: Java1<*>? = a.plus(i = 1)
|
||||
val k2: Int? = a.get(i = 1)
|
||||
val b: B = B()
|
||||
val k3: Unit = b.invoke()
|
||||
val k4: Java1<*> = b.plus(i = 1)
|
||||
val k5: Any = b.get(i = 1)
|
||||
}
|
||||
Vendored
+65
@@ -0,0 +1,65 @@
|
||||
// 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#get(kotlin.Int?){}kotlin.Int?
|
||||
// Public signature: /A.get|7040689195092882450[0]
|
||||
// Public signature debug description: get(kotlin.Int?){}kotlin.Int?
|
||||
/* fake */ override operator fun get(i: Int?): Int?
|
||||
|
||||
// CHECK:
|
||||
// Mangled name: A#invoke(){}
|
||||
// Public signature: /A.invoke|-4663091332620260873[0]
|
||||
// Public signature debug description: invoke(){}
|
||||
/* fake */ override operator fun invoke(): Unit
|
||||
|
||||
// CHECK JVM_IR:
|
||||
// Mangled name: A#plus(kotlin.Int?){}Java1<kotlin.Any?>?
|
||||
// Public signature: /A.plus|9053177338193059553[0]
|
||||
// Public signature debug description: plus(kotlin.Int?){}Java1<kotlin.Any?>?
|
||||
/* fake */ override operator fun plus(i: Int?): Java1<Any?>?
|
||||
|
||||
}
|
||||
|
||||
// CHECK:
|
||||
// Mangled name: B
|
||||
// Public signature: /B|null[0]
|
||||
class B : Java1<Any> {
|
||||
// CHECK:
|
||||
// Mangled name: B#<init>(){}
|
||||
// Public signature: /B.<init>|-5645683436151566731[0]
|
||||
// Public signature debug description: <init>(){}
|
||||
constructor() /* primary */
|
||||
|
||||
// CHECK JVM_IR:
|
||||
// Mangled name: B#get(kotlin.Any?){}kotlin.Any
|
||||
// Public signature: /B.get|-2113546338636552698[0]
|
||||
// Public signature debug description: get(kotlin.Any?){}kotlin.Any
|
||||
override operator fun get(i: Any?): Any
|
||||
|
||||
// CHECK:
|
||||
// Mangled name: B#invoke(){}
|
||||
// Public signature: /B.invoke|-4663091332620260873[0]
|
||||
// Public signature debug description: invoke(){}
|
||||
override operator fun invoke(): Unit
|
||||
|
||||
// CHECK JVM_IR:
|
||||
// Mangled name: B#plus(kotlin.Any?){}Java1<kotlin.Any>
|
||||
// Public signature: /B.plus|954734645001127487[0]
|
||||
// Public signature debug description: plus(kotlin.Any?){}Java1<kotlin.Any>
|
||||
override operator fun plus(i: Any?): Java1<Any>
|
||||
|
||||
}
|
||||
|
||||
// CHECK:
|
||||
// Mangled name: #test(A;B){}
|
||||
// Public signature: /test|-2533013708701322011[0]
|
||||
// Public signature debug description: test(A;B){}
|
||||
fun test(a: A, b: B): Unit
|
||||
Reference in New Issue
Block a user