Unary operators.
This commit is contained in:
committed by
Dmitry Petrov
parent
97593fa19e
commit
985f3b20c7
+4
-4
@@ -7,13 +7,13 @@ IrFile /arrayAssignment.kt
|
||||
elements: DUMMY vararg type=kotlin.Int
|
||||
CALL .set type=kotlin.Unit operator=EQ
|
||||
$this: GET_VAR x type=kotlin.IntArray operator=null
|
||||
index: LITERAL Int type=kotlin.Int value='1'
|
||||
value: LITERAL Int type=kotlin.Int value='0'
|
||||
index: CONST Int type=kotlin.Int value='1'
|
||||
value: CONST Int type=kotlin.Int value='0'
|
||||
IrFunction public fun foo(): kotlin.Int
|
||||
IrExpressionBody
|
||||
BLOCK type=<no-type> hasResult=false operator=null
|
||||
RETURN type=<no-type>
|
||||
LITERAL Int type=kotlin.Int value='1'
|
||||
CONST Int type=kotlin.Int value='1'
|
||||
IrFunction public fun test2(): kotlin.Unit
|
||||
IrExpressionBody
|
||||
BLOCK type=<no-type> hasResult=false operator=null
|
||||
@@ -21,4 +21,4 @@ IrFile /arrayAssignment.kt
|
||||
$this: CALL .intArrayOf type=kotlin.IntArray operator=null
|
||||
elements: DUMMY vararg type=kotlin.Int
|
||||
index: CALL .foo type=kotlin.Int operator=null
|
||||
value: LITERAL Int type=kotlin.Int value='1'
|
||||
value: CONST Int type=kotlin.Int value='1'
|
||||
|
||||
@@ -9,7 +9,7 @@ IrFile /arrayAugmentedAssignment1.kt
|
||||
IrExpressionBody
|
||||
BLOCK type=<no-type> hasResult=false operator=null
|
||||
RETURN type=<no-type>
|
||||
LITERAL Int type=kotlin.Int value='42'
|
||||
CONST Int type=kotlin.Int value='42'
|
||||
IrFunction public fun testVariable(): kotlin.Unit
|
||||
IrExpressionBody
|
||||
BLOCK type=<no-type> hasResult=false operator=null
|
||||
@@ -18,23 +18,23 @@ IrFile /arrayAugmentedAssignment1.kt
|
||||
BLOCK type=kotlin.Unit hasResult=false operator=PLUSEQ
|
||||
CALL .set type=kotlin.Unit operator=PLUSEQ
|
||||
$this: GET_VAR x type=kotlin.IntArray operator=null
|
||||
index: LITERAL Int type=kotlin.Int value='0'
|
||||
index: CONST Int type=kotlin.Int value='0'
|
||||
value: CALL .plus type=kotlin.Int operator=PLUSEQ
|
||||
$this: CALL .get type=kotlin.Int operator=PLUSEQ
|
||||
$this: GET_VAR x type=kotlin.IntArray operator=null
|
||||
index: LITERAL Int type=kotlin.Int value='0'
|
||||
other: LITERAL Int type=kotlin.Int value='1'
|
||||
index: CONST Int type=kotlin.Int value='0'
|
||||
other: CONST Int type=kotlin.Int value='1'
|
||||
BLOCK type=kotlin.Unit hasResult=false operator=MULTEQ
|
||||
VAR val tmp0_array: kotlin.IntArray
|
||||
CALL .foo type=kotlin.IntArray operator=null
|
||||
CALL .set type=kotlin.Unit operator=MULTEQ
|
||||
$this: GET_VAR tmp0_array type=kotlin.IntArray operator=null
|
||||
index: LITERAL Int type=kotlin.Int value='0'
|
||||
index: CONST Int type=kotlin.Int value='0'
|
||||
value: CALL .times type=kotlin.Int operator=MULTEQ
|
||||
$this: CALL .get type=kotlin.Int operator=MULTEQ
|
||||
$this: GET_VAR tmp0_array type=kotlin.IntArray operator=null
|
||||
index: LITERAL Int type=kotlin.Int value='0'
|
||||
other: LITERAL Int type=kotlin.Int value='2'
|
||||
index: CONST Int type=kotlin.Int value='0'
|
||||
other: CONST Int type=kotlin.Int value='2'
|
||||
BLOCK type=kotlin.Unit hasResult=false operator=MINUSEQ
|
||||
VAR val tmp1_array: kotlin.IntArray
|
||||
CALL .foo type=kotlin.IntArray operator=null
|
||||
@@ -47,4 +47,4 @@ IrFile /arrayAugmentedAssignment1.kt
|
||||
$this: CALL .get type=kotlin.Int operator=MINUSEQ
|
||||
$this: GET_VAR tmp1_array type=kotlin.IntArray operator=null
|
||||
index: GET_VAR tmp2_index0 type=kotlin.Int operator=null
|
||||
other: LITERAL Int type=kotlin.Int value='1'
|
||||
other: CONST Int type=kotlin.Int value='1'
|
||||
|
||||
@@ -8,9 +8,9 @@ IrFile /arrayAugmentedAssignment2.kt
|
||||
CALL .set type=kotlin.Unit operator=PLUSEQ
|
||||
$this: $RECEIVER of: test type=IB
|
||||
$receiver: GET_VAR a type=IA operator=null
|
||||
index: LITERAL String type=kotlin.String value=''
|
||||
index: CONST String type=kotlin.String value=''
|
||||
value: CALL .plus type=kotlin.Int operator=PLUSEQ
|
||||
$this: CALL .get type=kotlin.Int operator=PLUSEQ
|
||||
$this: GET_VAR a type=IA operator=null
|
||||
index: LITERAL String type=kotlin.String value=''
|
||||
other: LITERAL Int type=kotlin.Int value='42'
|
||||
index: CONST String type=kotlin.String value=''
|
||||
other: CONST Int type=kotlin.Int value='42'
|
||||
|
||||
+4
-4
@@ -4,16 +4,16 @@ IrFile /assignments.kt
|
||||
IrExpressionBody
|
||||
BLOCK type=<no-type> hasResult=false operator=null
|
||||
VAR var x: kotlin.Int
|
||||
LITERAL Int type=kotlin.Int value='0'
|
||||
CONST Int type=kotlin.Int value='0'
|
||||
SET_VAR x type=<no-type> operator=EQ
|
||||
LITERAL Int type=kotlin.Int value='1'
|
||||
CONST Int type=kotlin.Int value='1'
|
||||
SET_VAR x type=<no-type> operator=EQ
|
||||
CALL .plus type=kotlin.Int operator=PLUS
|
||||
$this: GET_VAR x type=kotlin.Int operator=null
|
||||
other: LITERAL Int type=kotlin.Int value='1'
|
||||
other: CONST Int type=kotlin.Int value='1'
|
||||
IrFunction public fun test2(/*0*/ r: Ref): kotlin.Unit
|
||||
IrExpressionBody
|
||||
BLOCK type=<no-type> hasResult=false operator=null
|
||||
CALL .<set-x> type=kotlin.Unit operator=EQ
|
||||
$this: GET_VAR r type=Ref operator=null
|
||||
<set-?>: LITERAL Int type=kotlin.Int value='0'
|
||||
<set-?>: CONST Int type=kotlin.Int value='0'
|
||||
|
||||
+12
-12
@@ -1,52 +1,52 @@
|
||||
IrFile /augmentedAssignment1.kt
|
||||
IrProperty public var p: kotlin.Int getter=null setter=null
|
||||
IrExpressionBody
|
||||
LITERAL Int type=kotlin.Int value='0'
|
||||
CONST Int type=kotlin.Int value='0'
|
||||
IrFunction public fun testVariable(): kotlin.Unit
|
||||
IrExpressionBody
|
||||
BLOCK type=kotlin.Int hasResult=true operator=null
|
||||
VAR var x: kotlin.Int
|
||||
LITERAL Int type=kotlin.Int value='0'
|
||||
CONST Int type=kotlin.Int value='0'
|
||||
SET_VAR x type=<no-type> operator=PLUSEQ
|
||||
CALL .plus type=kotlin.Int operator=PLUSEQ
|
||||
$this: GET_VAR x type=kotlin.Int operator=PLUSEQ
|
||||
other: LITERAL Int type=kotlin.Int value='1'
|
||||
other: CONST Int type=kotlin.Int value='1'
|
||||
SET_VAR x type=<no-type> operator=MINUSEQ
|
||||
CALL .minus type=kotlin.Int operator=MINUSEQ
|
||||
$this: GET_VAR x type=kotlin.Int operator=MINUSEQ
|
||||
other: LITERAL Int type=kotlin.Int value='2'
|
||||
other: CONST Int type=kotlin.Int value='2'
|
||||
SET_VAR x type=<no-type> operator=MULTEQ
|
||||
CALL .times type=kotlin.Int operator=MULTEQ
|
||||
$this: GET_VAR x type=kotlin.Int operator=MULTEQ
|
||||
other: LITERAL Int type=kotlin.Int value='3'
|
||||
other: CONST Int type=kotlin.Int value='3'
|
||||
SET_VAR x type=<no-type> operator=DIVEQ
|
||||
CALL .div type=kotlin.Int operator=DIVEQ
|
||||
$this: GET_VAR x type=kotlin.Int operator=DIVEQ
|
||||
other: LITERAL Int type=kotlin.Int value='4'
|
||||
other: CONST Int type=kotlin.Int value='4'
|
||||
SET_VAR x type=<no-type> operator=PERCEQ
|
||||
CALL .mod type=kotlin.Int operator=PERCEQ
|
||||
$this: GET_VAR x type=kotlin.Int operator=PERCEQ
|
||||
other: LITERAL Int type=kotlin.Int value='5'
|
||||
other: CONST Int type=kotlin.Int value='5'
|
||||
IrFunction public fun testProperty(): kotlin.Unit
|
||||
IrExpressionBody
|
||||
BLOCK type=kotlin.Int hasResult=true operator=null
|
||||
CALL .<set-p> type=kotlin.Unit operator=PLUSEQ
|
||||
<set-?>: CALL .plus type=kotlin.Int operator=PLUSEQ
|
||||
$this: CALL .<get-p> type=kotlin.Int operator=GET_PROPERTY
|
||||
other: LITERAL Int type=kotlin.Int value='1'
|
||||
other: CONST Int type=kotlin.Int value='1'
|
||||
CALL .<set-p> type=kotlin.Unit operator=MINUSEQ
|
||||
<set-?>: CALL .minus type=kotlin.Int operator=MINUSEQ
|
||||
$this: CALL .<get-p> type=kotlin.Int operator=GET_PROPERTY
|
||||
other: LITERAL Int type=kotlin.Int value='2'
|
||||
other: CONST Int type=kotlin.Int value='2'
|
||||
CALL .<set-p> type=kotlin.Unit operator=MULTEQ
|
||||
<set-?>: CALL .times type=kotlin.Int operator=MULTEQ
|
||||
$this: CALL .<get-p> type=kotlin.Int operator=GET_PROPERTY
|
||||
other: LITERAL Int type=kotlin.Int value='3'
|
||||
other: CONST Int type=kotlin.Int value='3'
|
||||
CALL .<set-p> type=kotlin.Unit operator=DIVEQ
|
||||
<set-?>: CALL .div type=kotlin.Int operator=DIVEQ
|
||||
$this: CALL .<get-p> type=kotlin.Int operator=GET_PROPERTY
|
||||
other: LITERAL Int type=kotlin.Int value='4'
|
||||
other: CONST Int type=kotlin.Int value='4'
|
||||
CALL .<set-p> type=kotlin.Unit operator=PERCEQ
|
||||
<set-?>: CALL .mod type=kotlin.Int operator=PERCEQ
|
||||
$this: CALL .<get-p> type=kotlin.Int operator=GET_PROPERTY
|
||||
other: LITERAL Int type=kotlin.Int value='5'
|
||||
other: CONST Int type=kotlin.Int value='5'
|
||||
|
||||
+10
-10
@@ -25,34 +25,34 @@ IrFile /augmentedAssignment2.kt
|
||||
CALL .<init> type=A operator=null
|
||||
CALL .plusAssign type=kotlin.Unit operator=PLUSEQ
|
||||
$receiver: GET_VAR a type=A operator=PLUSEQ
|
||||
s: LITERAL String type=kotlin.String value='+='
|
||||
s: CONST String type=kotlin.String value='+='
|
||||
CALL .minusAssign type=kotlin.Unit operator=MINUSEQ
|
||||
$receiver: GET_VAR a type=A operator=MINUSEQ
|
||||
s: LITERAL String type=kotlin.String value='-='
|
||||
s: CONST String type=kotlin.String value='-='
|
||||
CALL .timesAssign type=kotlin.Unit operator=MULTEQ
|
||||
$receiver: GET_VAR a type=A operator=MULTEQ
|
||||
s: LITERAL String type=kotlin.String value='*='
|
||||
s: CONST String type=kotlin.String value='*='
|
||||
CALL .divAssign type=kotlin.Unit operator=DIVEQ
|
||||
$receiver: GET_VAR a type=A operator=DIVEQ
|
||||
s: LITERAL String type=kotlin.String value='/='
|
||||
s: CONST String type=kotlin.String value='/='
|
||||
CALL .modAssign type=kotlin.Unit operator=PERCEQ
|
||||
$receiver: GET_VAR a type=A operator=PERCEQ
|
||||
s: LITERAL String type=kotlin.String value='*='
|
||||
s: CONST String type=kotlin.String value='*='
|
||||
IrFunction public fun testProperty(): kotlin.Unit
|
||||
IrExpressionBody
|
||||
BLOCK type=<no-type> hasResult=false operator=null
|
||||
CALL .plusAssign type=kotlin.Unit operator=PLUSEQ
|
||||
$receiver: CALL .<get-p> type=A operator=GET_PROPERTY
|
||||
s: LITERAL String type=kotlin.String value='+='
|
||||
s: CONST String type=kotlin.String value='+='
|
||||
CALL .minusAssign type=kotlin.Unit operator=MINUSEQ
|
||||
$receiver: CALL .<get-p> type=A operator=GET_PROPERTY
|
||||
s: LITERAL String type=kotlin.String value='-='
|
||||
s: CONST String type=kotlin.String value='-='
|
||||
CALL .timesAssign type=kotlin.Unit operator=MULTEQ
|
||||
$receiver: CALL .<get-p> type=A operator=GET_PROPERTY
|
||||
s: LITERAL String type=kotlin.String value='*='
|
||||
s: CONST String type=kotlin.String value='*='
|
||||
CALL .divAssign type=kotlin.Unit operator=DIVEQ
|
||||
$receiver: CALL .<get-p> type=A operator=GET_PROPERTY
|
||||
s: LITERAL String type=kotlin.String value='/='
|
||||
s: CONST String type=kotlin.String value='/='
|
||||
CALL .modAssign type=kotlin.Unit operator=PERCEQ
|
||||
$receiver: CALL .<get-p> type=A operator=GET_PROPERTY
|
||||
s: LITERAL String type=kotlin.String value='%='
|
||||
s: CONST String type=kotlin.String value='%='
|
||||
|
||||
+2
-2
@@ -6,14 +6,14 @@ IrFile /booleanOperators.kt
|
||||
WHEN type=kotlin.Boolean operator=ANDAND
|
||||
if: GET_VAR a type=kotlin.Boolean operator=null
|
||||
then: GET_VAR b type=kotlin.Boolean operator=null
|
||||
else: LITERAL Boolean type=kotlin.Boolean value='false'
|
||||
else: CONST Boolean type=kotlin.Boolean value='false'
|
||||
IrFunction public fun test2(/*0*/ a: kotlin.Boolean, /*1*/ b: kotlin.Boolean): kotlin.Boolean
|
||||
IrExpressionBody
|
||||
BLOCK type=<no-type> hasResult=false operator=null
|
||||
RETURN type=<no-type>
|
||||
WHEN type=kotlin.Boolean operator=OROR
|
||||
if: GET_VAR a type=kotlin.Boolean operator=null
|
||||
then: LITERAL Boolean type=kotlin.Boolean value='true'
|
||||
then: CONST Boolean type=kotlin.Boolean value='true'
|
||||
else: GET_VAR b type=kotlin.Boolean operator=null
|
||||
IrFunction public fun test1x(/*0*/ a: kotlin.Boolean, /*1*/ b: kotlin.Boolean): kotlin.Boolean
|
||||
IrExpressionBody
|
||||
|
||||
+1
-1
@@ -3,4 +3,4 @@ IrFile /boxOk.kt
|
||||
IrExpressionBody
|
||||
BLOCK type=<no-type> hasResult=false operator=null
|
||||
RETURN type=<no-type>
|
||||
LITERAL String type=kotlin.String value='OK'
|
||||
CONST String type=kotlin.String value='OK'
|
||||
|
||||
@@ -6,22 +6,22 @@ IrFile /callWithReorderedArguments.kt
|
||||
IrExpressionBody
|
||||
BLOCK type=<no-type> hasResult=false operator=null
|
||||
RETURN type=<no-type>
|
||||
LITERAL Int type=kotlin.Int value='1'
|
||||
CONST Int type=kotlin.Int value='1'
|
||||
IrFunction public fun noReorder2(): kotlin.Int
|
||||
IrExpressionBody
|
||||
BLOCK type=<no-type> hasResult=false operator=null
|
||||
RETURN type=<no-type>
|
||||
LITERAL Int type=kotlin.Int value='2'
|
||||
CONST Int type=kotlin.Int value='2'
|
||||
IrFunction public fun reordered1(): kotlin.Int
|
||||
IrExpressionBody
|
||||
BLOCK type=<no-type> hasResult=false operator=null
|
||||
RETURN type=<no-type>
|
||||
LITERAL Int type=kotlin.Int value='1'
|
||||
CONST Int type=kotlin.Int value='1'
|
||||
IrFunction public fun reordered2(): kotlin.Int
|
||||
IrExpressionBody
|
||||
BLOCK type=<no-type> hasResult=false operator=null
|
||||
RETURN type=<no-type>
|
||||
LITERAL Int type=kotlin.Int value='2'
|
||||
CONST Int type=kotlin.Int value='2'
|
||||
IrFunction public fun test(): kotlin.Unit
|
||||
IrExpressionBody
|
||||
BLOCK type=<no-type> hasResult=false operator=null
|
||||
@@ -41,4 +41,4 @@ IrFile /callWithReorderedArguments.kt
|
||||
CALL .reordered2 type=kotlin.Int operator=null
|
||||
CALL .foo type=kotlin.Unit operator=null
|
||||
a: GET_VAR tmp2_a type=kotlin.Int operator=null
|
||||
b: LITERAL Int type=kotlin.Int value='1'
|
||||
b: CONST Int type=kotlin.Int value='1'
|
||||
|
||||
+1
-1
@@ -10,7 +10,7 @@ IrFile /calls.kt
|
||||
RETURN type=<no-type>
|
||||
CALL .foo type=kotlin.Int operator=null
|
||||
x: GET_VAR x type=kotlin.Int operator=null
|
||||
y: LITERAL Int type=kotlin.Int value='1'
|
||||
y: CONST Int type=kotlin.Int value='1'
|
||||
IrFunction public fun qux(/*0*/ x: kotlin.Int): kotlin.Int
|
||||
IrExpressionBody
|
||||
BLOCK type=<no-type> hasResult=false operator=null
|
||||
|
||||
Vendored
+10
-1
@@ -1,8 +1,17 @@
|
||||
val p: Any? = null
|
||||
|
||||
fun foo(): Any? = null
|
||||
|
||||
fun test1(a: Any?, b: Any) = a ?: b
|
||||
|
||||
fun test2(a: String?, b: Any) = a ?: b
|
||||
|
||||
fun test3(a: Any?, b: Any?): String {
|
||||
if (b !is String) return ""
|
||||
if (a !is String?) return ""
|
||||
return a ?: b
|
||||
}
|
||||
}
|
||||
|
||||
fun test4(x: Any) = p ?: x
|
||||
|
||||
fun test5(x: Any) = foo() ?: x
|
||||
+59
-5
@@ -1,14 +1,32 @@
|
||||
IrFile /elvis.kt
|
||||
IrProperty public val p: kotlin.Any? = null getter=null setter=null
|
||||
IrExpressionBody
|
||||
CONST Null type=kotlin.Nothing? value='null'
|
||||
IrFunction public fun foo(): kotlin.Any?
|
||||
IrExpressionBody
|
||||
BLOCK type=<no-type> hasResult=false operator=null
|
||||
RETURN type=<no-type>
|
||||
CONST Null type=kotlin.Nothing? value='null'
|
||||
IrFunction public fun test1(/*0*/ a: kotlin.Any?, /*1*/ b: kotlin.Any): kotlin.Any
|
||||
IrExpressionBody
|
||||
BLOCK type=<no-type> hasResult=false operator=null
|
||||
RETURN type=<no-type>
|
||||
DUMMY elvis type=kotlin.Any
|
||||
WHEN type=kotlin.Any operator=ELVIS
|
||||
if: CALL .EQEQ type=kotlin.Boolean operator=ELVIS
|
||||
arg0: GET_VAR a type=kotlin.Any? operator=null
|
||||
arg1: CONST Null type=kotlin.Nothing? value='null'
|
||||
then: GET_VAR b type=kotlin.Any operator=null
|
||||
else: GET_VAR a type=kotlin.Any? operator=null
|
||||
IrFunction public fun test2(/*0*/ a: kotlin.String?, /*1*/ b: kotlin.Any): kotlin.Any
|
||||
IrExpressionBody
|
||||
BLOCK type=<no-type> hasResult=false operator=null
|
||||
RETURN type=<no-type>
|
||||
DUMMY elvis type=kotlin.Any
|
||||
WHEN type=kotlin.Any operator=ELVIS
|
||||
if: CALL .EQEQ type=kotlin.Boolean operator=ELVIS
|
||||
arg0: GET_VAR a type=kotlin.String? operator=null
|
||||
arg1: CONST Null type=kotlin.Nothing? value='null'
|
||||
then: GET_VAR b type=kotlin.Any operator=null
|
||||
else: GET_VAR a type=kotlin.String? operator=null
|
||||
IrFunction public fun test3(/*0*/ a: kotlin.Any?, /*1*/ b: kotlin.Any?): kotlin.String
|
||||
IrExpressionBody
|
||||
BLOCK type=<no-type> hasResult=false operator=null
|
||||
@@ -16,11 +34,47 @@ IrFile /elvis.kt
|
||||
if: TYPE_OP operator=NOT_INSTANCEOF typeOperand=kotlin.String
|
||||
GET_VAR b type=kotlin.Any? operator=null
|
||||
then: RETURN type=<no-type>
|
||||
LITERAL String type=kotlin.String value=''
|
||||
CONST String type=kotlin.String value=''
|
||||
WHEN type=kotlin.Unit operator=IF
|
||||
if: TYPE_OP operator=NOT_INSTANCEOF typeOperand=kotlin.String?
|
||||
GET_VAR a type=kotlin.Any? operator=null
|
||||
then: RETURN type=<no-type>
|
||||
LITERAL String type=kotlin.String value=''
|
||||
CONST String type=kotlin.String value=''
|
||||
RETURN type=<no-type>
|
||||
DUMMY elvis type=kotlin.String
|
||||
BLOCK type=kotlin.String hasResult=true operator=ELVIS
|
||||
VAR val tmp0: kotlin.String?
|
||||
TYPE_OP operator=IMPLICIT_CAST typeOperand=kotlin.String?
|
||||
GET_VAR a type=kotlin.Any? operator=null
|
||||
WHEN type=kotlin.String operator=ELVIS
|
||||
if: CALL .EQEQ type=kotlin.Boolean operator=ELVIS
|
||||
arg0: GET_VAR tmp0 type=kotlin.String? operator=null
|
||||
arg1: CONST Null type=kotlin.Nothing? value='null'
|
||||
then: TYPE_OP operator=IMPLICIT_CAST typeOperand=kotlin.String
|
||||
GET_VAR b type=kotlin.Any? operator=null
|
||||
else: GET_VAR tmp0 type=kotlin.String? operator=null
|
||||
IrFunction public fun test4(/*0*/ x: kotlin.Any): kotlin.Any
|
||||
IrExpressionBody
|
||||
BLOCK type=<no-type> hasResult=false operator=null
|
||||
RETURN type=<no-type>
|
||||
BLOCK type=kotlin.Any hasResult=true operator=ELVIS
|
||||
VAR val tmp0: kotlin.Any?
|
||||
CALL .<get-p> type=kotlin.Any? operator=GET_PROPERTY
|
||||
WHEN type=kotlin.Any operator=ELVIS
|
||||
if: CALL .EQEQ type=kotlin.Boolean operator=ELVIS
|
||||
arg0: GET_VAR tmp0 type=kotlin.Any? operator=null
|
||||
arg1: CONST Null type=kotlin.Nothing? value='null'
|
||||
then: GET_VAR x type=kotlin.Any operator=null
|
||||
else: GET_VAR tmp0 type=kotlin.Any? operator=null
|
||||
IrFunction public fun test5(/*0*/ x: kotlin.Any): kotlin.Any
|
||||
IrExpressionBody
|
||||
BLOCK type=<no-type> hasResult=false operator=null
|
||||
RETURN type=<no-type>
|
||||
BLOCK type=kotlin.Any hasResult=true operator=ELVIS
|
||||
VAR val tmp0: kotlin.Any?
|
||||
CALL .foo type=kotlin.Any? operator=null
|
||||
WHEN type=kotlin.Any operator=ELVIS
|
||||
if: CALL .EQEQ type=kotlin.Boolean operator=ELVIS
|
||||
arg0: GET_VAR tmp0 type=kotlin.Any? operator=null
|
||||
arg1: CONST Null type=kotlin.Nothing? value='null'
|
||||
then: GET_VAR x type=kotlin.Any operator=null
|
||||
else: GET_VAR tmp0 type=kotlin.Any? operator=null
|
||||
|
||||
@@ -4,7 +4,7 @@ IrFile /extensionPropertyGetterCall.kt
|
||||
IrExpressionBody
|
||||
BLOCK type=<no-type> hasResult=false operator=null
|
||||
RETURN type=<no-type>
|
||||
LITERAL String type=kotlin.String value='OK'
|
||||
CONST String type=kotlin.String value='OK'
|
||||
IrFunction public fun kotlin.String.test5(): kotlin.String
|
||||
IrExpressionBody
|
||||
BLOCK type=<no-type> hasResult=false operator=null
|
||||
|
||||
+8
-7
@@ -7,11 +7,12 @@ IrFile /ifElseIf.kt
|
||||
if: CALL .GT0 type=kotlin.Boolean operator=GT
|
||||
arg0: CALL .compareTo type=kotlin.Int operator=GT
|
||||
$this: GET_VAR i type=kotlin.Int operator=null
|
||||
other: LITERAL Int type=kotlin.Int value='0'
|
||||
then: LITERAL Int type=kotlin.Int value='1'
|
||||
if: CALL .GT0 type=kotlin.Boolean operator=GT
|
||||
arg0: CALL .compareTo type=kotlin.Int operator=GT
|
||||
other: CONST Int type=kotlin.Int value='0'
|
||||
then: CONST Int type=kotlin.Int value='1'
|
||||
if: CALL .LT0 type=kotlin.Boolean operator=LT
|
||||
arg0: CALL .compareTo type=kotlin.Int operator=LT
|
||||
$this: GET_VAR i type=kotlin.Int operator=null
|
||||
other: LITERAL Int type=kotlin.Int value='0'
|
||||
then: LITERAL Int type=kotlin.Int value='1'
|
||||
else: LITERAL Int type=kotlin.Int value='0'
|
||||
other: CONST Int type=kotlin.Int value='0'
|
||||
then: CALL .unaryMinus type=kotlin.Int operator=UMINUS
|
||||
$this: CONST Int type=kotlin.Int value='1'
|
||||
else: CONST Int type=kotlin.Int value='0'
|
||||
|
||||
+10
-3
@@ -3,6 +3,13 @@ IrFile /implicitCastOnPlatformType.kt
|
||||
IrExpressionBody
|
||||
BLOCK type=<no-type> hasResult=false operator=null
|
||||
RETURN type=<no-type>
|
||||
CALL .IMPLICIT_NOT_NULL type=kotlin.Any operator=IMPLICIT_NOTNULL
|
||||
arg0: CALL .getProperty type=kotlin.String! operator=null
|
||||
p0: LITERAL String type=kotlin.String value='test'
|
||||
BLOCK type=kotlin.String hasResult=true operator=IMPLICIT_NOTNULL
|
||||
VAR val tmp0: kotlin.String!
|
||||
CALL .getProperty type=kotlin.String! operator=null
|
||||
p0: CONST String type=kotlin.String value='test'
|
||||
WHEN type=kotlin.String operator=IMPLICIT_NOTNULL
|
||||
if: CALL .EQEQ type=kotlin.Boolean operator=IMPLICIT_NOTNULL
|
||||
arg0: GET_VAR tmp0 type=kotlin.String! operator=null
|
||||
arg1: CONST Null type=kotlin.Nothing? value='null'
|
||||
then: CALL .THROW_NPE type=kotlin.Nothing operator=IMPLICIT_NOTNULL
|
||||
else: GET_VAR tmp0 type=kotlin.String! operator=null
|
||||
|
||||
+19
-3
@@ -1,18 +1,34 @@
|
||||
var p: Int = 0
|
||||
val arr = intArrayOf(1, 2, 3)
|
||||
|
||||
fun testVar() {
|
||||
fun testVarPrefix() {
|
||||
var x = 0
|
||||
val x1 = ++x
|
||||
val x2 = --x
|
||||
}
|
||||
|
||||
fun testProp() {
|
||||
fun testVarPostfix() {
|
||||
var x = 0
|
||||
val x1 = x++
|
||||
val x2 = x--
|
||||
}
|
||||
|
||||
fun testPropPrefix() {
|
||||
val p1 = ++p
|
||||
val p2 = --p
|
||||
}
|
||||
|
||||
fun testArray() {
|
||||
fun testPropPostfix() {
|
||||
val p1 = p++
|
||||
val p2 = --p
|
||||
}
|
||||
|
||||
fun testArrayPrefix() {
|
||||
val a1 = ++arr[0]
|
||||
val a2 = --arr[0]
|
||||
}
|
||||
|
||||
fun testArrayPostfix() {
|
||||
val a1 = arr[0]++
|
||||
val a2 = arr[0]--
|
||||
}
|
||||
+80
-9
@@ -1,16 +1,16 @@
|
||||
IrFile /incrementDecrement.kt
|
||||
IrProperty public var p: kotlin.Int getter=null setter=null
|
||||
IrExpressionBody
|
||||
LITERAL Int type=kotlin.Int value='0'
|
||||
CONST Int type=kotlin.Int value='0'
|
||||
IrProperty public val arr: kotlin.IntArray getter=null setter=null
|
||||
IrExpressionBody
|
||||
CALL .intArrayOf type=kotlin.IntArray operator=null
|
||||
elements: DUMMY vararg type=kotlin.Int
|
||||
IrFunction public fun testVar(): kotlin.Unit
|
||||
IrFunction public fun testVarPrefix(): kotlin.Unit
|
||||
IrExpressionBody
|
||||
BLOCK type=<no-type> hasResult=false operator=null
|
||||
VAR var x: kotlin.Int
|
||||
LITERAL Int type=kotlin.Int value='0'
|
||||
CONST Int type=kotlin.Int value='0'
|
||||
VAR val x1: kotlin.Int
|
||||
BLOCK type=kotlin.Int hasResult=true operator=PREFIX_INCR
|
||||
VAR val tmp0: kotlin.Int
|
||||
@@ -27,7 +27,28 @@ IrFile /incrementDecrement.kt
|
||||
SET_VAR x type=<no-type> operator=PREFIX_DECR
|
||||
GET_VAR tmp1 type=kotlin.Int operator=null
|
||||
GET_VAR tmp1 type=kotlin.Int operator=null
|
||||
IrFunction public fun testProp(): kotlin.Unit
|
||||
IrFunction public fun testVarPostfix(): kotlin.Unit
|
||||
IrExpressionBody
|
||||
BLOCK type=<no-type> hasResult=false operator=null
|
||||
VAR var x: kotlin.Int
|
||||
CONST Int type=kotlin.Int value='0'
|
||||
VAR val x1: kotlin.Int
|
||||
BLOCK type=kotlin.Int hasResult=true operator=POSTFIX_INCR
|
||||
VAR val tmp0: kotlin.Int
|
||||
GET_VAR x type=kotlin.Int operator=POSTFIX_INCR
|
||||
SET_VAR x type=<no-type> operator=POSTFIX_INCR
|
||||
CALL .inc type=kotlin.Int operator=POSTFIX_INCR
|
||||
$this: GET_VAR tmp0 type=kotlin.Int operator=POSTFIX_INCR
|
||||
GET_VAR tmp0 type=kotlin.Int operator=null
|
||||
VAR val x2: kotlin.Int
|
||||
BLOCK type=kotlin.Int hasResult=true operator=POSTFIX_DECR
|
||||
VAR val tmp1: kotlin.Int
|
||||
GET_VAR x type=kotlin.Int operator=POSTFIX_DECR
|
||||
SET_VAR x type=<no-type> operator=POSTFIX_DECR
|
||||
CALL .dec type=kotlin.Int operator=POSTFIX_DECR
|
||||
$this: GET_VAR tmp1 type=kotlin.Int operator=POSTFIX_DECR
|
||||
GET_VAR tmp1 type=kotlin.Int operator=null
|
||||
IrFunction public fun testPropPrefix(): kotlin.Unit
|
||||
IrExpressionBody
|
||||
BLOCK type=<no-type> hasResult=false operator=null
|
||||
VAR val p1: kotlin.Int
|
||||
@@ -46,7 +67,26 @@ IrFile /incrementDecrement.kt
|
||||
CALL .<set-p> type=kotlin.Unit operator=PREFIX_DECR
|
||||
<set-?>: GET_VAR tmp1 type=kotlin.Int operator=null
|
||||
GET_VAR tmp1 type=kotlin.Int operator=null
|
||||
IrFunction public fun testArray(): kotlin.Unit
|
||||
IrFunction public fun testPropPostfix(): kotlin.Unit
|
||||
IrExpressionBody
|
||||
BLOCK type=<no-type> hasResult=false operator=null
|
||||
VAR val p1: kotlin.Int
|
||||
BLOCK type=kotlin.Int hasResult=true operator=POSTFIX_INCR
|
||||
VAR val tmp0: kotlin.Int
|
||||
CALL .<get-p> type=kotlin.Int operator=GET_PROPERTY
|
||||
CALL .<set-p> type=kotlin.Unit operator=POSTFIX_INCR
|
||||
<set-?>: CALL .inc type=kotlin.Int operator=POSTFIX_INCR
|
||||
$this: GET_VAR tmp0 type=kotlin.Int operator=POSTFIX_INCR
|
||||
GET_VAR tmp0 type=kotlin.Int operator=null
|
||||
VAR val p2: kotlin.Int
|
||||
BLOCK type=kotlin.Int hasResult=true operator=PREFIX_DECR
|
||||
VAR val tmp1: kotlin.Int
|
||||
CALL .dec type=kotlin.Int operator=PREFIX_DECR
|
||||
$this: CALL .<get-p> type=kotlin.Int operator=GET_PROPERTY
|
||||
CALL .<set-p> type=kotlin.Unit operator=PREFIX_DECR
|
||||
<set-?>: GET_VAR tmp1 type=kotlin.Int operator=null
|
||||
GET_VAR tmp1 type=kotlin.Int operator=null
|
||||
IrFunction public fun testArrayPrefix(): kotlin.Unit
|
||||
IrExpressionBody
|
||||
BLOCK type=<no-type> hasResult=false operator=null
|
||||
VAR val a1: kotlin.Int
|
||||
@@ -57,10 +97,10 @@ IrFile /incrementDecrement.kt
|
||||
CALL .inc type=kotlin.Int operator=PREFIX_INCR
|
||||
$this: CALL .get type=kotlin.Int operator=PREFIX_INCR
|
||||
$this: GET_VAR tmp0_array type=kotlin.IntArray operator=null
|
||||
index: LITERAL Int type=kotlin.Int value='0'
|
||||
index: CONST Int type=kotlin.Int value='0'
|
||||
CALL .set type=kotlin.Unit operator=PREFIX_INCR
|
||||
$this: GET_VAR tmp0_array type=kotlin.IntArray operator=null
|
||||
index: LITERAL Int type=kotlin.Int value='0'
|
||||
index: CONST Int type=kotlin.Int value='0'
|
||||
value: GET_VAR tmp1 type=kotlin.Int operator=null
|
||||
GET_VAR tmp1 type=kotlin.Int operator=null
|
||||
VAR val a2: kotlin.Int
|
||||
@@ -71,9 +111,40 @@ IrFile /incrementDecrement.kt
|
||||
CALL .dec type=kotlin.Int operator=PREFIX_DECR
|
||||
$this: CALL .get type=kotlin.Int operator=PREFIX_DECR
|
||||
$this: GET_VAR tmp2_array type=kotlin.IntArray operator=null
|
||||
index: LITERAL Int type=kotlin.Int value='0'
|
||||
index: CONST Int type=kotlin.Int value='0'
|
||||
CALL .set type=kotlin.Unit operator=PREFIX_DECR
|
||||
$this: GET_VAR tmp2_array type=kotlin.IntArray operator=null
|
||||
index: LITERAL Int type=kotlin.Int value='0'
|
||||
index: CONST Int type=kotlin.Int value='0'
|
||||
value: GET_VAR tmp3 type=kotlin.Int operator=null
|
||||
GET_VAR tmp3 type=kotlin.Int operator=null
|
||||
IrFunction public fun testArrayPostfix(): kotlin.Unit
|
||||
IrExpressionBody
|
||||
BLOCK type=<no-type> hasResult=false operator=null
|
||||
VAR val a1: kotlin.Int
|
||||
BLOCK type=kotlin.Int hasResult=true operator=POSTFIX_INCR
|
||||
VAR val tmp0_array: kotlin.IntArray
|
||||
CALL .<get-arr> type=kotlin.IntArray operator=GET_PROPERTY
|
||||
VAR val tmp1: kotlin.Int
|
||||
CALL .get type=kotlin.Int operator=POSTFIX_INCR
|
||||
$this: GET_VAR tmp0_array type=kotlin.IntArray operator=null
|
||||
index: CONST Int type=kotlin.Int value='0'
|
||||
CALL .set type=kotlin.Unit operator=POSTFIX_INCR
|
||||
$this: GET_VAR tmp0_array type=kotlin.IntArray operator=null
|
||||
index: CONST Int type=kotlin.Int value='0'
|
||||
value: CALL .inc type=kotlin.Int operator=POSTFIX_INCR
|
||||
$this: GET_VAR tmp1 type=kotlin.Int operator=null
|
||||
GET_VAR tmp1 type=kotlin.Int operator=null
|
||||
VAR val a2: kotlin.Int
|
||||
BLOCK type=kotlin.Int hasResult=true operator=POSTFIX_DECR
|
||||
VAR val tmp2_array: kotlin.IntArray
|
||||
CALL .<get-arr> type=kotlin.IntArray operator=GET_PROPERTY
|
||||
VAR val tmp3: kotlin.Int
|
||||
CALL .get type=kotlin.Int operator=POSTFIX_DECR
|
||||
$this: GET_VAR tmp2_array type=kotlin.IntArray operator=null
|
||||
index: CONST Int type=kotlin.Int value='0'
|
||||
CALL .set type=kotlin.Unit operator=POSTFIX_DECR
|
||||
$this: GET_VAR tmp2_array type=kotlin.IntArray operator=null
|
||||
index: CONST Int type=kotlin.Int value='0'
|
||||
value: CALL .dec type=kotlin.Int operator=POSTFIX_DECR
|
||||
$this: GET_VAR tmp3 type=kotlin.Int operator=null
|
||||
GET_VAR tmp3 type=kotlin.Int operator=null
|
||||
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
val test1 = 1
|
||||
val test2 = -1
|
||||
val test3 = true
|
||||
val test4 = false
|
||||
val test5 = "abc"
|
||||
val test6 = null
|
||||
+20
@@ -0,0 +1,20 @@
|
||||
IrFile /literals.kt
|
||||
IrProperty public val test1: kotlin.Int = 1 getter=null setter=null
|
||||
IrExpressionBody
|
||||
CONST Int type=kotlin.Int value='1'
|
||||
IrProperty public val test2: kotlin.Int = -1 getter=null setter=null
|
||||
IrExpressionBody
|
||||
CALL .unaryMinus type=kotlin.Int operator=UMINUS
|
||||
$this: CONST Int type=kotlin.Int value='1'
|
||||
IrProperty public val test3: kotlin.Boolean = true getter=null setter=null
|
||||
IrExpressionBody
|
||||
CONST Boolean type=kotlin.Boolean value='true'
|
||||
IrProperty public val test4: kotlin.Boolean = false getter=null setter=null
|
||||
IrExpressionBody
|
||||
CONST Boolean type=kotlin.Boolean value='false'
|
||||
IrProperty public val test5: kotlin.String = "abc" getter=null setter=null
|
||||
IrExpressionBody
|
||||
CONST String type=kotlin.String value='abc'
|
||||
IrProperty public val test6: kotlin.Nothing? = null getter=null setter=null
|
||||
IrExpressionBody
|
||||
CONST Null type=kotlin.Nothing? value='null'
|
||||
+4
-4
@@ -1,7 +1,7 @@
|
||||
IrFile /references.kt
|
||||
IrProperty public val ok: kotlin.String = "OK" getter=null setter=null
|
||||
IrExpressionBody
|
||||
LITERAL String type=kotlin.String value='OK'
|
||||
CONST String type=kotlin.String value='OK'
|
||||
IrProperty public val ok2: kotlin.String = "OK" getter=null setter=null
|
||||
IrExpressionBody
|
||||
CALL .<get-ok> type=kotlin.String operator=GET_PROPERTY
|
||||
@@ -10,7 +10,7 @@ IrFile /references.kt
|
||||
IrExpressionBody
|
||||
BLOCK type=<no-type> hasResult=false operator=null
|
||||
RETURN type=<no-type>
|
||||
LITERAL String type=kotlin.String value='OK'
|
||||
CONST String type=kotlin.String value='OK'
|
||||
IrFunction public fun test1(): kotlin.String
|
||||
IrExpressionBody
|
||||
BLOCK type=<no-type> hasResult=false operator=null
|
||||
@@ -25,7 +25,7 @@ IrFile /references.kt
|
||||
IrExpressionBody
|
||||
BLOCK type=<no-type> hasResult=false operator=null
|
||||
VAR val x: kotlin.String = "OK"
|
||||
LITERAL String type=kotlin.String value='OK'
|
||||
CONST String type=kotlin.String value='OK'
|
||||
RETURN type=<no-type>
|
||||
GET_VAR x type=kotlin.String operator=null
|
||||
IrFunction public fun test4(): kotlin.String
|
||||
@@ -38,7 +38,7 @@ IrFile /references.kt
|
||||
IrExpressionBody
|
||||
BLOCK type=<no-type> hasResult=false operator=null
|
||||
RETURN type=<no-type>
|
||||
LITERAL String type=kotlin.String value='OK'
|
||||
CONST String type=kotlin.String value='OK'
|
||||
IrFunction public fun kotlin.String.test5(): kotlin.String
|
||||
IrExpressionBody
|
||||
BLOCK type=<no-type> hasResult=false operator=null
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
fun test1(x: Int) = -x
|
||||
fun test2() = -42
|
||||
|
||||
fun test3(x: Int) = +x
|
||||
fun test4() = +42
|
||||
|
||||
fun test5(x: Boolean) = !x
|
||||
fun test6() = !true
|
||||
@@ -0,0 +1,37 @@
|
||||
IrFile /simpleUnaryOperators.kt
|
||||
IrFunction public fun test1(/*0*/ x: kotlin.Int): kotlin.Int
|
||||
IrExpressionBody
|
||||
BLOCK type=<no-type> hasResult=false operator=null
|
||||
RETURN type=<no-type>
|
||||
CALL .unaryMinus type=kotlin.Int operator=UMINUS
|
||||
$this: GET_VAR x type=kotlin.Int operator=null
|
||||
IrFunction public fun test2(): kotlin.Int
|
||||
IrExpressionBody
|
||||
BLOCK type=<no-type> hasResult=false operator=null
|
||||
RETURN type=<no-type>
|
||||
CALL .unaryMinus type=kotlin.Int operator=UMINUS
|
||||
$this: CONST Int type=kotlin.Int value='42'
|
||||
IrFunction public fun test3(/*0*/ x: kotlin.Int): kotlin.Int
|
||||
IrExpressionBody
|
||||
BLOCK type=<no-type> hasResult=false operator=null
|
||||
RETURN type=<no-type>
|
||||
CALL .unaryPlus type=kotlin.Int operator=UPLUS
|
||||
$this: GET_VAR x type=kotlin.Int operator=null
|
||||
IrFunction public fun test4(): kotlin.Int
|
||||
IrExpressionBody
|
||||
BLOCK type=<no-type> hasResult=false operator=null
|
||||
RETURN type=<no-type>
|
||||
CALL .unaryPlus type=kotlin.Int operator=UPLUS
|
||||
$this: CONST Int type=kotlin.Int value='42'
|
||||
IrFunction public fun test5(/*0*/ x: kotlin.Boolean): kotlin.Boolean
|
||||
IrExpressionBody
|
||||
BLOCK type=<no-type> hasResult=false operator=null
|
||||
RETURN type=<no-type>
|
||||
CALL .not type=kotlin.Boolean operator=EXCL
|
||||
$this: GET_VAR x type=kotlin.Boolean operator=null
|
||||
IrFunction public fun test6(): kotlin.Boolean
|
||||
IrExpressionBody
|
||||
BLOCK type=<no-type> hasResult=false operator=null
|
||||
RETURN type=<no-type>
|
||||
CALL .not type=kotlin.Boolean operator=EXCL
|
||||
$this: CONST Boolean type=kotlin.Boolean value='true'
|
||||
+2
-2
@@ -44,7 +44,7 @@ IrFile /smartCasts.kt
|
||||
if: TYPE_OP operator=NOT_INSTANCEOF typeOperand=kotlin.String
|
||||
GET_VAR x type=kotlin.Any operator=null
|
||||
then: RETURN type=<no-type>
|
||||
LITERAL String type=kotlin.String value=''
|
||||
CONST String type=kotlin.String value=''
|
||||
RETURN type=<no-type>
|
||||
CALL .overloaded type=kotlin.String operator=null
|
||||
s: TYPE_OP operator=IMPLICIT_CAST typeOperand=kotlin.String
|
||||
@@ -56,7 +56,7 @@ IrFile /smartCasts.kt
|
||||
if: TYPE_OP operator=NOT_INSTANCEOF typeOperand=kotlin.String
|
||||
GET_VAR x type=kotlin.Any operator=null
|
||||
then: RETURN type=<no-type>
|
||||
LITERAL String type=kotlin.String value=''
|
||||
CONST String type=kotlin.String value=''
|
||||
RETURN type=<no-type>
|
||||
TYPE_OP operator=IMPLICIT_CAST typeOperand=kotlin.String
|
||||
GET_VAR x type=kotlin.Any operator=null
|
||||
|
||||
@@ -5,12 +5,12 @@ IrFile /smartCastsWithDestructuring.kt
|
||||
IrExpressionBody
|
||||
BLOCK type=<no-type> hasResult=false operator=null
|
||||
RETURN type=<no-type>
|
||||
LITERAL Int type=kotlin.Int value='1'
|
||||
CONST Int type=kotlin.Int value='1'
|
||||
IrFunction public operator fun I2.component2(): kotlin.String
|
||||
IrExpressionBody
|
||||
BLOCK type=<no-type> hasResult=false operator=null
|
||||
RETURN type=<no-type>
|
||||
LITERAL String type=kotlin.String value=''
|
||||
CONST String type=kotlin.String value=''
|
||||
IrFunction public fun test(/*0*/ x: I1): kotlin.Unit
|
||||
IrExpressionBody
|
||||
BLOCK type=<no-type> hasResult=false operator=null
|
||||
|
||||
+5
-5
@@ -3,25 +3,25 @@ IrFile /smoke.kt
|
||||
IrExpressionBody
|
||||
BLOCK type=<no-type> hasResult=false operator=null
|
||||
RETURN type=<no-type>
|
||||
LITERAL String type=kotlin.String value='OK'
|
||||
CONST String type=kotlin.String value='OK'
|
||||
IrProperty public val testSimpleVal: kotlin.Int = 1 getter=null setter=null
|
||||
IrExpressionBody
|
||||
LITERAL Int type=kotlin.Int value='1'
|
||||
CONST Int type=kotlin.Int value='1'
|
||||
IrProperty public val testValWithGetter: kotlin.Int getter=<get-testValWithGetter> setter=null
|
||||
IrPropertyGetter public fun <get-testValWithGetter>(): kotlin.Int property=testValWithGetter
|
||||
IrExpressionBody
|
||||
BLOCK type=<no-type> hasResult=false operator=null
|
||||
RETURN type=<no-type>
|
||||
LITERAL Int type=kotlin.Int value='42'
|
||||
CONST Int type=kotlin.Int value='42'
|
||||
IrProperty public var testSimpleVar: kotlin.Int getter=null setter=null
|
||||
IrExpressionBody
|
||||
LITERAL Int type=kotlin.Int value='2'
|
||||
CONST Int type=kotlin.Int value='2'
|
||||
IrProperty public var testVarWithAccessors: kotlin.Int getter=<get-testVarWithAccessors> setter=<set-testVarWithAccessors>
|
||||
IrPropertyGetter public fun <get-testVarWithAccessors>(): kotlin.Int property=testVarWithAccessors
|
||||
IrExpressionBody
|
||||
BLOCK type=<no-type> hasResult=false operator=null
|
||||
RETURN type=<no-type>
|
||||
LITERAL Int type=kotlin.Int value='42'
|
||||
CONST Int type=kotlin.Int value='42'
|
||||
IrPropertySetter public fun <set-testVarWithAccessors>(/*0*/ v: kotlin.Int): kotlin.Unit property=testVarWithAccessors
|
||||
IrExpressionBody
|
||||
BLOCK type=<no-type> hasResult=false operator=null
|
||||
|
||||
+3
-3
@@ -12,7 +12,7 @@ IrFile /stringPlus.kt
|
||||
RETURN type=<no-type>
|
||||
STRING_CONCATENATION type=kotlin.String
|
||||
GET_VAR a type=kotlin.String operator=null
|
||||
LITERAL String type=kotlin.String value='+'
|
||||
CONST String type=kotlin.String value='+'
|
||||
GET_VAR b type=kotlin.Int operator=null
|
||||
IrFunction public fun test3(/*0*/ a: kotlin.String, /*1*/ b: kotlin.Int): kotlin.String
|
||||
IrExpressionBody
|
||||
@@ -20,8 +20,8 @@ IrFile /stringPlus.kt
|
||||
RETURN type=<no-type>
|
||||
STRING_CONCATENATION type=kotlin.String
|
||||
GET_VAR a type=kotlin.String operator=null
|
||||
LITERAL String type=kotlin.String value='+'
|
||||
CONST String type=kotlin.String value='+'
|
||||
CALL .plus type=kotlin.Int operator=PLUS
|
||||
$this: GET_VAR b type=kotlin.Int operator=null
|
||||
other: LITERAL Int type=kotlin.Int value='1'
|
||||
other: CONST Int type=kotlin.Int value='1'
|
||||
GET_VAR a type=kotlin.String operator=null
|
||||
|
||||
+1
-1
@@ -3,7 +3,7 @@ IrFile /values.kt
|
||||
DUMMY A
|
||||
IrProperty public val a: kotlin.Int = 0 getter=null setter=null
|
||||
IrExpressionBody
|
||||
LITERAL Int type=kotlin.Int value='0'
|
||||
CONST Int type=kotlin.Int value='0'
|
||||
DUMMY Z
|
||||
IrFunction public fun test1(): Enum
|
||||
IrExpressionBody
|
||||
|
||||
Vendored
+31
-31
@@ -10,21 +10,21 @@ IrFile /when.kt
|
||||
WHEN type=kotlin.String operator=WHEN
|
||||
if: CALL .EQEQ type=kotlin.Boolean operator=EQEQ
|
||||
arg0: GET_VAR tmp0_subject type=kotlin.Any? operator=null
|
||||
arg1: LITERAL Null type=kotlin.Nothing? value='null'
|
||||
then: LITERAL String type=kotlin.String value='null'
|
||||
arg1: CONST Null type=kotlin.Nothing? value='null'
|
||||
then: CONST String type=kotlin.String value='null'
|
||||
if: CALL .EQEQ type=kotlin.Boolean operator=EQEQ
|
||||
arg0: GET_VAR tmp0_subject type=kotlin.Any? operator=null
|
||||
arg1: GET_OBJECT A type=A
|
||||
then: LITERAL String type=kotlin.String value='A'
|
||||
then: CONST String type=kotlin.String value='A'
|
||||
if: TYPE_OP operator=INSTANCEOF typeOperand=kotlin.String
|
||||
GET_VAR tmp0_subject type=kotlin.Any? operator=null
|
||||
then: LITERAL String type=kotlin.String value='String'
|
||||
then: CONST String type=kotlin.String value='String'
|
||||
if: CALL .contains type=kotlin.Boolean operator=IN
|
||||
$receiver: CALL .setOf type=kotlin.collections.Set<kotlin.Nothing> operator=null
|
||||
element: TYPE_OP operator=IMPLICIT_CAST typeOperand=kotlin.Any
|
||||
GET_VAR tmp0_subject type=kotlin.Any? operator=null
|
||||
then: LITERAL String type=kotlin.String value='nothingness?'
|
||||
else: LITERAL String type=kotlin.String value='something'
|
||||
then: CONST String type=kotlin.String value='nothingness?'
|
||||
else: CONST String type=kotlin.String value='something'
|
||||
IrFunction public fun test(/*0*/ x: kotlin.Any?): kotlin.String
|
||||
IrExpressionBody
|
||||
BLOCK type=<no-type> hasResult=false operator=null
|
||||
@@ -32,21 +32,21 @@ IrFile /when.kt
|
||||
WHEN type=kotlin.String operator=WHEN
|
||||
if: CALL .EQEQ type=kotlin.Boolean operator=EQEQ
|
||||
arg0: GET_VAR x type=kotlin.Any? operator=null
|
||||
arg1: LITERAL Null type=kotlin.Nothing? value='null'
|
||||
then: LITERAL String type=kotlin.String value='null'
|
||||
arg1: CONST Null type=kotlin.Nothing? value='null'
|
||||
then: CONST String type=kotlin.String value='null'
|
||||
if: CALL .EQEQ type=kotlin.Boolean operator=EQEQ
|
||||
arg0: GET_VAR x type=kotlin.Any? operator=null
|
||||
arg1: GET_OBJECT A type=A
|
||||
then: LITERAL String type=kotlin.String value='A'
|
||||
then: CONST String type=kotlin.String value='A'
|
||||
if: TYPE_OP operator=INSTANCEOF typeOperand=kotlin.String
|
||||
GET_VAR x type=kotlin.Any? operator=null
|
||||
then: LITERAL String type=kotlin.String value='String'
|
||||
then: CONST String type=kotlin.String value='String'
|
||||
if: CALL .contains type=kotlin.Boolean operator=IN
|
||||
$receiver: CALL .setOf type=kotlin.collections.Set<kotlin.Nothing> operator=null
|
||||
element: TYPE_OP operator=IMPLICIT_CAST typeOperand=kotlin.Any
|
||||
GET_VAR x type=kotlin.Any? operator=null
|
||||
then: LITERAL String type=kotlin.String value='nothingness?'
|
||||
else: LITERAL String type=kotlin.String value='something'
|
||||
then: CONST String type=kotlin.String value='nothingness?'
|
||||
else: CONST String type=kotlin.String value='something'
|
||||
IrFunction public fun testComma(/*0*/ x: kotlin.Int): kotlin.String
|
||||
IrExpressionBody
|
||||
BLOCK type=<no-type> hasResult=false operator=null
|
||||
@@ -60,41 +60,41 @@ IrFile /when.kt
|
||||
if: WHEN type=kotlin.Boolean operator=WHEN_COMMA
|
||||
if: CALL .EQEQ type=kotlin.Boolean operator=EQEQ
|
||||
arg0: GET_VAR tmp0_subject type=kotlin.Int operator=null
|
||||
arg1: LITERAL Int type=kotlin.Int value='1'
|
||||
then: LITERAL Boolean type=kotlin.Boolean value='true'
|
||||
arg1: CONST Int type=kotlin.Int value='1'
|
||||
then: CONST Boolean type=kotlin.Boolean value='true'
|
||||
else: CALL .EQEQ type=kotlin.Boolean operator=EQEQ
|
||||
arg0: GET_VAR tmp0_subject type=kotlin.Int operator=null
|
||||
arg1: LITERAL Int type=kotlin.Int value='2'
|
||||
then: LITERAL Boolean type=kotlin.Boolean value='true'
|
||||
arg1: CONST Int type=kotlin.Int value='2'
|
||||
then: CONST Boolean type=kotlin.Boolean value='true'
|
||||
else: CALL .EQEQ type=kotlin.Boolean operator=EQEQ
|
||||
arg0: GET_VAR tmp0_subject type=kotlin.Int operator=null
|
||||
arg1: LITERAL Int type=kotlin.Int value='3'
|
||||
then: LITERAL Boolean type=kotlin.Boolean value='true'
|
||||
arg1: CONST Int type=kotlin.Int value='3'
|
||||
then: CONST Boolean type=kotlin.Boolean value='true'
|
||||
else: CALL .EQEQ type=kotlin.Boolean operator=EQEQ
|
||||
arg0: GET_VAR tmp0_subject type=kotlin.Int operator=null
|
||||
arg1: LITERAL Int type=kotlin.Int value='4'
|
||||
then: LITERAL String type=kotlin.String value='1234'
|
||||
arg1: CONST Int type=kotlin.Int value='4'
|
||||
then: CONST String type=kotlin.String value='1234'
|
||||
if: WHEN type=kotlin.Boolean operator=WHEN_COMMA
|
||||
if: WHEN type=kotlin.Boolean operator=WHEN_COMMA
|
||||
if: CALL .EQEQ type=kotlin.Boolean operator=EQEQ
|
||||
arg0: GET_VAR tmp0_subject type=kotlin.Int operator=null
|
||||
arg1: LITERAL Int type=kotlin.Int value='5'
|
||||
then: LITERAL Boolean type=kotlin.Boolean value='true'
|
||||
arg1: CONST Int type=kotlin.Int value='5'
|
||||
then: CONST Boolean type=kotlin.Boolean value='true'
|
||||
else: CALL .EQEQ type=kotlin.Boolean operator=EQEQ
|
||||
arg0: GET_VAR tmp0_subject type=kotlin.Int operator=null
|
||||
arg1: LITERAL Int type=kotlin.Int value='6'
|
||||
then: LITERAL Boolean type=kotlin.Boolean value='true'
|
||||
arg1: CONST Int type=kotlin.Int value='6'
|
||||
then: CONST Boolean type=kotlin.Boolean value='true'
|
||||
else: CALL .EQEQ type=kotlin.Boolean operator=EQEQ
|
||||
arg0: GET_VAR tmp0_subject type=kotlin.Int operator=null
|
||||
arg1: LITERAL Int type=kotlin.Int value='7'
|
||||
then: LITERAL String type=kotlin.String value='567'
|
||||
arg1: CONST Int type=kotlin.Int value='7'
|
||||
then: CONST String type=kotlin.String value='567'
|
||||
if: WHEN type=kotlin.Boolean operator=WHEN_COMMA
|
||||
if: CALL .EQEQ type=kotlin.Boolean operator=EQEQ
|
||||
arg0: GET_VAR tmp0_subject type=kotlin.Int operator=null
|
||||
arg1: LITERAL Int type=kotlin.Int value='8'
|
||||
then: LITERAL Boolean type=kotlin.Boolean value='true'
|
||||
arg1: CONST Int type=kotlin.Int value='8'
|
||||
then: CONST Boolean type=kotlin.Boolean value='true'
|
||||
else: CALL .EQEQ type=kotlin.Boolean operator=EQEQ
|
||||
arg0: GET_VAR tmp0_subject type=kotlin.Int operator=null
|
||||
arg1: LITERAL Int type=kotlin.Int value='9'
|
||||
then: LITERAL String type=kotlin.String value='89'
|
||||
else: LITERAL String type=kotlin.String value='?'
|
||||
arg1: CONST Int type=kotlin.Int value='9'
|
||||
then: CONST String type=kotlin.String value='89'
|
||||
else: CONST String type=kotlin.String value='?'
|
||||
|
||||
Reference in New Issue
Block a user