[JVM_IR] Avoid some boxing when comparing boxed primitives to primitives.
This commit is contained in:
-3
@@ -1,6 +1,3 @@
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
// TODO KT-36646 Don't box primitive values in equality comparison with nullable primitive values in JVM_IR
|
||||
|
||||
fun testBoolean1(a: Boolean?, b: Boolean) = a == b
|
||||
fun testBoolean2(a: Boolean?, b: Boolean) = a != b
|
||||
|
||||
|
||||
-3
@@ -1,6 +1,3 @@
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
// TODO KT-36646 Don't box primitive values in equality comparison with nullable primitive values in JVM_IR
|
||||
|
||||
fun testBoolean1(a: Boolean, b: Boolean?) = a == b
|
||||
fun testBoolean2(a: Boolean, b: Boolean?) = a != b
|
||||
|
||||
|
||||
+2
-10
@@ -11,17 +11,9 @@ fun less4(a: Byte?, b: Byte?) = if (a is Byte && b is Byte) a < b else true
|
||||
|
||||
fun less5(a: Any?, b: Any?) = if (a is Byte && b is Byte) a < b else true
|
||||
|
||||
// JVM_TEMPLATES
|
||||
// 3 Intrinsics\.areEqual
|
||||
// 0 Intrinsics\.compare
|
||||
// 4 INVOKEVIRTUAL java/lang/Byte\.byteValue \(\)B
|
||||
// 2 INVOKEVIRTUAL java/lang/Number\.intValue \(\)I
|
||||
// 0 IFGE
|
||||
// 3 IF_ICMPGE
|
||||
|
||||
// JVM_IR_TEMPLATES
|
||||
// 0 Intrinsics\.areEqual
|
||||
// 0 Intrinsics\.compare
|
||||
// 8 INVOKEVIRTUAL java/lang/Byte\.byteValue \(\)B
|
||||
// 4 INVOKEVIRTUAL java/lang/Number\.byteValue \(\)B
|
||||
// 0 IFGE
|
||||
// 3 IF_ICMPNE
|
||||
// 3 IF_ICMPGE
|
||||
|
||||
+4
-4
@@ -19,10 +19,10 @@ fun less5(a: Any?, b: Any?) = if (a is Byte && b is Byte) a < b else true
|
||||
// 0 IF_ICMPGE
|
||||
|
||||
// JVM_IR_TEMPLATES
|
||||
// 0 Intrinsics\.areEqual
|
||||
// 3 Intrinsics\.areEqual
|
||||
// 0 Intrinsics\.compare
|
||||
// 8 INVOKEVIRTUAL java/lang/Byte\.byteValue \(\)B
|
||||
// 4 INVOKEVIRTUAL java/lang/Number\.byteValue \(\)B
|
||||
// 4 INVOKEVIRTUAL java/lang/Byte\.byteValue \(\)B
|
||||
// 2 INVOKEVIRTUAL java/lang/Number\.intValue \(\)I
|
||||
// 0 IFGE
|
||||
// 3 IF_ICMPGE
|
||||
// 3 IF_ICMPNE
|
||||
// 0 IF_ICMPNE
|
||||
+3
-10
@@ -11,17 +11,10 @@ fun less4(a: Short?, b: Short?) = if (a is Short && b is Short) a < b else true
|
||||
|
||||
fun less5(a: Any?, b: Any?) = if (a is Short && b is Short) a < b else true
|
||||
|
||||
// JVM_TEMPLATES
|
||||
// 3 Intrinsics\.areEqual
|
||||
// 0 Intrinsics\.compare
|
||||
// 4 INVOKEVIRTUAL java/lang/Short\.shortValue \(\)S
|
||||
// 2 INVOKEVIRTUAL java/lang/Number\.intValue \(\)I
|
||||
// 0 IFGE
|
||||
// 3 IF_ICMPGE
|
||||
|
||||
// JVM_IR_TEMPLATES
|
||||
// 0 Intrinsics\.areEqual
|
||||
// 0 Intrinsics\.compare
|
||||
// 8 INVOKEVIRTUAL java/lang/Short\.shortValue \(\)S
|
||||
// 4 INVOKEVIRTUAL java/lang/Number\.shortValue \(\)S
|
||||
// 0 IFGE
|
||||
// 3 IF_ICMPGE
|
||||
// 3 IF_ICMPNE
|
||||
// 0 IF_ICMPNE
|
||||
|
||||
+4
-4
@@ -18,10 +18,10 @@ fun less5(a: Any?, b: Any?) = if (a is Short && b is Short) a < b else true
|
||||
// 0 IF_ICMPGE
|
||||
|
||||
// JVM_IR_TEMPLATES
|
||||
// 0 Intrinsics\.areEqual
|
||||
// 3 Intrinsics\.areEqual
|
||||
// 0 Intrinsics\.compare
|
||||
// 8 INVOKEVIRTUAL java/lang/Short\.shortValue \(\)S
|
||||
// 4 INVOKEVIRTUAL java/lang/Number\.shortValue \(\)S
|
||||
// 4 INVOKEVIRTUAL java/lang/Short\.shortValue \(\)S
|
||||
// 2 INVOKEVIRTUAL java/lang/Number\.intValue \(\)I
|
||||
// 0 IFGE
|
||||
// 3 IF_ICMPGE
|
||||
// 3 IF_ICMPNE
|
||||
// 0 IF_ICMPNE
|
||||
-3
@@ -1,6 +1,3 @@
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
// TODO KT-36646 Don't box primitive values in equality comparison with objects in JVM_IR
|
||||
|
||||
fun testInt(i: Int?) =
|
||||
when (i) {
|
||||
0 -> "zero"
|
||||
|
||||
+6
-18
@@ -49,13 +49,9 @@ FILE fqName:<root> fileName:/argumentReorderingInDelegatingConstructorCall.kt
|
||||
VALUE_PARAMETER name:yy index:1 type:kotlin.Int
|
||||
BLOCK_BODY
|
||||
BLOCK type=kotlin.Unit origin=ARGUMENTS_REORDERING_FOR_CALL
|
||||
VAR IR_TEMPORARY_VARIABLE name:tmp_0 type:kotlin.Int [val]
|
||||
GET_VAR 'yy: kotlin.Int declared in <root>.Test1.<init>' type=kotlin.Int origin=null
|
||||
VAR IR_TEMPORARY_VARIABLE name:tmp_1 type:kotlin.Int [val]
|
||||
GET_VAR 'xx: kotlin.Int declared in <root>.Test1.<init>' type=kotlin.Int origin=null
|
||||
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> (x: kotlin.Int, y: kotlin.Int) [primary] declared in <root>.Base'
|
||||
x: GET_VAR 'val tmp_1: kotlin.Int [val] declared in <root>.Test1.<init>' type=kotlin.Int origin=null
|
||||
y: GET_VAR 'val tmp_0: kotlin.Int [val] declared in <root>.Test1.<init>' type=kotlin.Int origin=null
|
||||
x: GET_VAR 'xx: kotlin.Int declared in <root>.Test1.<init>' type=kotlin.Int origin=null
|
||||
y: GET_VAR 'yy: kotlin.Int declared in <root>.Test1.<init>' type=kotlin.Int origin=null
|
||||
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:Test1 modality:FINAL visibility:public superTypes:[<root>.Base]'
|
||||
PROPERTY FAKE_OVERRIDE name:x visibility:public modality:FINAL [fake_override,val]
|
||||
FUN FAKE_OVERRIDE name:<get-x> visibility:public modality:FINAL <> ($this:<root>.Base) returnType:kotlin.Int [fake_override]
|
||||
@@ -89,13 +85,9 @@ FILE fqName:<root> fileName:/argumentReorderingInDelegatingConstructorCall.kt
|
||||
VALUE_PARAMETER name:yy index:1 type:kotlin.Int
|
||||
BLOCK_BODY
|
||||
BLOCK type=kotlin.Unit origin=ARGUMENTS_REORDERING_FOR_CALL
|
||||
VAR IR_TEMPORARY_VARIABLE name:tmp_2 type:kotlin.Int [val]
|
||||
GET_VAR 'yy: kotlin.Int declared in <root>.Test2.<init>' type=kotlin.Int origin=null
|
||||
VAR IR_TEMPORARY_VARIABLE name:tmp_3 type:kotlin.Int [val]
|
||||
GET_VAR 'xx: kotlin.Int declared in <root>.Test2.<init>' type=kotlin.Int origin=null
|
||||
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> (x: kotlin.Int, y: kotlin.Int) [primary] declared in <root>.Base'
|
||||
x: GET_VAR 'val tmp_3: kotlin.Int [val] declared in <root>.Test2.<init>' type=kotlin.Int origin=null
|
||||
y: GET_VAR 'val tmp_2: kotlin.Int [val] declared in <root>.Test2.<init>' type=kotlin.Int origin=null
|
||||
x: GET_VAR 'xx: kotlin.Int declared in <root>.Test2.<init>' type=kotlin.Int origin=null
|
||||
y: GET_VAR 'yy: kotlin.Int declared in <root>.Test2.<init>' type=kotlin.Int origin=null
|
||||
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:Test2 modality:FINAL visibility:public superTypes:[<root>.Base]'
|
||||
CONSTRUCTOR visibility:public <> (xxx:kotlin.Int, yyy:kotlin.Int, a:kotlin.Any) returnType:<root>.Test2
|
||||
VALUE_PARAMETER name:xxx index:0 type:kotlin.Int
|
||||
@@ -103,13 +95,9 @@ FILE fqName:<root> fileName:/argumentReorderingInDelegatingConstructorCall.kt
|
||||
VALUE_PARAMETER name:a index:2 type:kotlin.Any
|
||||
BLOCK_BODY
|
||||
BLOCK type=kotlin.Unit origin=ARGUMENTS_REORDERING_FOR_CALL
|
||||
VAR IR_TEMPORARY_VARIABLE name:tmp_4 type:kotlin.Int [val]
|
||||
GET_VAR 'yyy: kotlin.Int declared in <root>.Test2.<init>' type=kotlin.Int origin=null
|
||||
VAR IR_TEMPORARY_VARIABLE name:tmp_5 type:kotlin.Int [val]
|
||||
GET_VAR 'xxx: kotlin.Int declared in <root>.Test2.<init>' type=kotlin.Int origin=null
|
||||
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> (xx: kotlin.Int, yy: kotlin.Int) declared in <root>.Test2'
|
||||
xx: GET_VAR 'val tmp_5: kotlin.Int [val] declared in <root>.Test2.<init>' type=kotlin.Int origin=null
|
||||
yy: GET_VAR 'val tmp_4: kotlin.Int [val] declared in <root>.Test2.<init>' type=kotlin.Int origin=null
|
||||
xx: GET_VAR 'xxx: kotlin.Int declared in <root>.Test2.<init>' type=kotlin.Int origin=null
|
||||
yy: GET_VAR 'yyy: kotlin.Int declared in <root>.Test2.<init>' type=kotlin.Int origin=null
|
||||
PROPERTY FAKE_OVERRIDE name:x visibility:public modality:FINAL [fake_override,val]
|
||||
FUN FAKE_OVERRIDE name:<get-x> visibility:public modality:FINAL <> ($this:<root>.Base) returnType:kotlin.Int [fake_override]
|
||||
correspondingProperty: PROPERTY FAKE_OVERRIDE name:x visibility:public modality:FINAL [fake_override,val]
|
||||
|
||||
@@ -5,80 +5,80 @@ FILE fqName:<root> fileName:/primitiveComparisons.kt
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public final fun btest1 (a: kotlin.Byte, b: kotlin.Byte): kotlin.Boolean declared in <root>'
|
||||
CALL 'public final fun greater (arg0: kotlin.Int, arg1: kotlin.Int): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=GT
|
||||
arg0: CALL 'public open fun toInt (): kotlin.Int declared in kotlin.Byte' type=kotlin.Int origin=null
|
||||
$this: GET_VAR 'a: kotlin.Byte declared in <root>.btest1' type=kotlin.Byte origin=null
|
||||
arg1: CALL 'public open fun toInt (): kotlin.Int declared in kotlin.Byte' type=kotlin.Int origin=null
|
||||
$this: GET_VAR 'b: kotlin.Byte declared in <root>.btest1' type=kotlin.Byte origin=null
|
||||
arg0: TYPE_OP type=kotlin.Int origin=IMPLICIT_CAST typeOperand=kotlin.Int
|
||||
GET_VAR 'a: kotlin.Byte declared in <root>.btest1' type=kotlin.Byte origin=null
|
||||
arg1: TYPE_OP type=kotlin.Int origin=IMPLICIT_CAST typeOperand=kotlin.Int
|
||||
GET_VAR 'b: kotlin.Byte declared in <root>.btest1' type=kotlin.Byte origin=null
|
||||
FUN name:btest2 visibility:public modality:FINAL <> (a:kotlin.Byte, b:kotlin.Byte) returnType:kotlin.Boolean
|
||||
VALUE_PARAMETER name:a index:0 type:kotlin.Byte
|
||||
VALUE_PARAMETER name:b index:1 type:kotlin.Byte
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public final fun btest2 (a: kotlin.Byte, b: kotlin.Byte): kotlin.Boolean declared in <root>'
|
||||
CALL 'public final fun less (arg0: kotlin.Int, arg1: kotlin.Int): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=LT
|
||||
arg0: CALL 'public open fun toInt (): kotlin.Int declared in kotlin.Byte' type=kotlin.Int origin=null
|
||||
$this: GET_VAR 'a: kotlin.Byte declared in <root>.btest2' type=kotlin.Byte origin=null
|
||||
arg1: CALL 'public open fun toInt (): kotlin.Int declared in kotlin.Byte' type=kotlin.Int origin=null
|
||||
$this: GET_VAR 'b: kotlin.Byte declared in <root>.btest2' type=kotlin.Byte origin=null
|
||||
arg0: TYPE_OP type=kotlin.Int origin=IMPLICIT_CAST typeOperand=kotlin.Int
|
||||
GET_VAR 'a: kotlin.Byte declared in <root>.btest2' type=kotlin.Byte origin=null
|
||||
arg1: TYPE_OP type=kotlin.Int origin=IMPLICIT_CAST typeOperand=kotlin.Int
|
||||
GET_VAR 'b: kotlin.Byte declared in <root>.btest2' type=kotlin.Byte origin=null
|
||||
FUN name:btest3 visibility:public modality:FINAL <> (a:kotlin.Byte, b:kotlin.Byte) returnType:kotlin.Boolean
|
||||
VALUE_PARAMETER name:a index:0 type:kotlin.Byte
|
||||
VALUE_PARAMETER name:b index:1 type:kotlin.Byte
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public final fun btest3 (a: kotlin.Byte, b: kotlin.Byte): kotlin.Boolean declared in <root>'
|
||||
CALL 'public final fun greaterOrEqual (arg0: kotlin.Int, arg1: kotlin.Int): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=GTEQ
|
||||
arg0: CALL 'public open fun toInt (): kotlin.Int declared in kotlin.Byte' type=kotlin.Int origin=null
|
||||
$this: GET_VAR 'a: kotlin.Byte declared in <root>.btest3' type=kotlin.Byte origin=null
|
||||
arg1: CALL 'public open fun toInt (): kotlin.Int declared in kotlin.Byte' type=kotlin.Int origin=null
|
||||
$this: GET_VAR 'b: kotlin.Byte declared in <root>.btest3' type=kotlin.Byte origin=null
|
||||
arg0: TYPE_OP type=kotlin.Int origin=IMPLICIT_CAST typeOperand=kotlin.Int
|
||||
GET_VAR 'a: kotlin.Byte declared in <root>.btest3' type=kotlin.Byte origin=null
|
||||
arg1: TYPE_OP type=kotlin.Int origin=IMPLICIT_CAST typeOperand=kotlin.Int
|
||||
GET_VAR 'b: kotlin.Byte declared in <root>.btest3' type=kotlin.Byte origin=null
|
||||
FUN name:btest4 visibility:public modality:FINAL <> (a:kotlin.Byte, b:kotlin.Byte) returnType:kotlin.Boolean
|
||||
VALUE_PARAMETER name:a index:0 type:kotlin.Byte
|
||||
VALUE_PARAMETER name:b index:1 type:kotlin.Byte
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public final fun btest4 (a: kotlin.Byte, b: kotlin.Byte): kotlin.Boolean declared in <root>'
|
||||
CALL 'public final fun lessOrEqual (arg0: kotlin.Int, arg1: kotlin.Int): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=LTEQ
|
||||
arg0: CALL 'public open fun toInt (): kotlin.Int declared in kotlin.Byte' type=kotlin.Int origin=null
|
||||
$this: GET_VAR 'a: kotlin.Byte declared in <root>.btest4' type=kotlin.Byte origin=null
|
||||
arg1: CALL 'public open fun toInt (): kotlin.Int declared in kotlin.Byte' type=kotlin.Int origin=null
|
||||
$this: GET_VAR 'b: kotlin.Byte declared in <root>.btest4' type=kotlin.Byte origin=null
|
||||
arg0: TYPE_OP type=kotlin.Int origin=IMPLICIT_CAST typeOperand=kotlin.Int
|
||||
GET_VAR 'a: kotlin.Byte declared in <root>.btest4' type=kotlin.Byte origin=null
|
||||
arg1: TYPE_OP type=kotlin.Int origin=IMPLICIT_CAST typeOperand=kotlin.Int
|
||||
GET_VAR 'b: kotlin.Byte declared in <root>.btest4' type=kotlin.Byte origin=null
|
||||
FUN name:stest1 visibility:public modality:FINAL <> (a:kotlin.Short, b:kotlin.Short) returnType:kotlin.Boolean
|
||||
VALUE_PARAMETER name:a index:0 type:kotlin.Short
|
||||
VALUE_PARAMETER name:b index:1 type:kotlin.Short
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public final fun stest1 (a: kotlin.Short, b: kotlin.Short): kotlin.Boolean declared in <root>'
|
||||
CALL 'public final fun greater (arg0: kotlin.Int, arg1: kotlin.Int): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=GT
|
||||
arg0: CALL 'public open fun toInt (): kotlin.Int declared in kotlin.Short' type=kotlin.Int origin=null
|
||||
$this: GET_VAR 'a: kotlin.Short declared in <root>.stest1' type=kotlin.Short origin=null
|
||||
arg1: CALL 'public open fun toInt (): kotlin.Int declared in kotlin.Short' type=kotlin.Int origin=null
|
||||
$this: GET_VAR 'b: kotlin.Short declared in <root>.stest1' type=kotlin.Short origin=null
|
||||
arg0: TYPE_OP type=kotlin.Int origin=IMPLICIT_CAST typeOperand=kotlin.Int
|
||||
GET_VAR 'a: kotlin.Short declared in <root>.stest1' type=kotlin.Short origin=null
|
||||
arg1: TYPE_OP type=kotlin.Int origin=IMPLICIT_CAST typeOperand=kotlin.Int
|
||||
GET_VAR 'b: kotlin.Short declared in <root>.stest1' type=kotlin.Short origin=null
|
||||
FUN name:stest2 visibility:public modality:FINAL <> (a:kotlin.Short, b:kotlin.Short) returnType:kotlin.Boolean
|
||||
VALUE_PARAMETER name:a index:0 type:kotlin.Short
|
||||
VALUE_PARAMETER name:b index:1 type:kotlin.Short
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public final fun stest2 (a: kotlin.Short, b: kotlin.Short): kotlin.Boolean declared in <root>'
|
||||
CALL 'public final fun less (arg0: kotlin.Int, arg1: kotlin.Int): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=LT
|
||||
arg0: CALL 'public open fun toInt (): kotlin.Int declared in kotlin.Short' type=kotlin.Int origin=null
|
||||
$this: GET_VAR 'a: kotlin.Short declared in <root>.stest2' type=kotlin.Short origin=null
|
||||
arg1: CALL 'public open fun toInt (): kotlin.Int declared in kotlin.Short' type=kotlin.Int origin=null
|
||||
$this: GET_VAR 'b: kotlin.Short declared in <root>.stest2' type=kotlin.Short origin=null
|
||||
arg0: TYPE_OP type=kotlin.Int origin=IMPLICIT_CAST typeOperand=kotlin.Int
|
||||
GET_VAR 'a: kotlin.Short declared in <root>.stest2' type=kotlin.Short origin=null
|
||||
arg1: TYPE_OP type=kotlin.Int origin=IMPLICIT_CAST typeOperand=kotlin.Int
|
||||
GET_VAR 'b: kotlin.Short declared in <root>.stest2' type=kotlin.Short origin=null
|
||||
FUN name:stest3 visibility:public modality:FINAL <> (a:kotlin.Short, b:kotlin.Short) returnType:kotlin.Boolean
|
||||
VALUE_PARAMETER name:a index:0 type:kotlin.Short
|
||||
VALUE_PARAMETER name:b index:1 type:kotlin.Short
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public final fun stest3 (a: kotlin.Short, b: kotlin.Short): kotlin.Boolean declared in <root>'
|
||||
CALL 'public final fun greaterOrEqual (arg0: kotlin.Int, arg1: kotlin.Int): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=GTEQ
|
||||
arg0: CALL 'public open fun toInt (): kotlin.Int declared in kotlin.Short' type=kotlin.Int origin=null
|
||||
$this: GET_VAR 'a: kotlin.Short declared in <root>.stest3' type=kotlin.Short origin=null
|
||||
arg1: CALL 'public open fun toInt (): kotlin.Int declared in kotlin.Short' type=kotlin.Int origin=null
|
||||
$this: GET_VAR 'b: kotlin.Short declared in <root>.stest3' type=kotlin.Short origin=null
|
||||
arg0: TYPE_OP type=kotlin.Int origin=IMPLICIT_CAST typeOperand=kotlin.Int
|
||||
GET_VAR 'a: kotlin.Short declared in <root>.stest3' type=kotlin.Short origin=null
|
||||
arg1: TYPE_OP type=kotlin.Int origin=IMPLICIT_CAST typeOperand=kotlin.Int
|
||||
GET_VAR 'b: kotlin.Short declared in <root>.stest3' type=kotlin.Short origin=null
|
||||
FUN name:stest4 visibility:public modality:FINAL <> (a:kotlin.Short, b:kotlin.Short) returnType:kotlin.Boolean
|
||||
VALUE_PARAMETER name:a index:0 type:kotlin.Short
|
||||
VALUE_PARAMETER name:b index:1 type:kotlin.Short
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public final fun stest4 (a: kotlin.Short, b: kotlin.Short): kotlin.Boolean declared in <root>'
|
||||
CALL 'public final fun lessOrEqual (arg0: kotlin.Int, arg1: kotlin.Int): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=LTEQ
|
||||
arg0: CALL 'public open fun toInt (): kotlin.Int declared in kotlin.Short' type=kotlin.Int origin=null
|
||||
$this: GET_VAR 'a: kotlin.Short declared in <root>.stest4' type=kotlin.Short origin=null
|
||||
arg1: CALL 'public open fun toInt (): kotlin.Int declared in kotlin.Short' type=kotlin.Int origin=null
|
||||
$this: GET_VAR 'b: kotlin.Short declared in <root>.stest4' type=kotlin.Short origin=null
|
||||
arg0: TYPE_OP type=kotlin.Int origin=IMPLICIT_CAST typeOperand=kotlin.Int
|
||||
GET_VAR 'a: kotlin.Short declared in <root>.stest4' type=kotlin.Short origin=null
|
||||
arg1: TYPE_OP type=kotlin.Int origin=IMPLICIT_CAST typeOperand=kotlin.Int
|
||||
GET_VAR 'b: kotlin.Short declared in <root>.stest4' type=kotlin.Short origin=null
|
||||
FUN name:itest1 visibility:public modality:FINAL <> (a:kotlin.Int, b:kotlin.Int) returnType:kotlin.Boolean
|
||||
VALUE_PARAMETER name:a index:0 type:kotlin.Int
|
||||
VALUE_PARAMETER name:b index:1 type:kotlin.Int
|
||||
|
||||
Reference in New Issue
Block a user