Implement special desugaring for numeric comparisons in PSI2IR
This introduces the following IR built-in functions required for proper
implementation of the number comparisons:
- ieee754Equals(T, T): Boolean,
for each T in {Float?, Double?}
- less(T, T): Boolean
lessOrEqual(T, T): Boolean
greater(T, T): Boolean
greaterOrEqual(T, T): Boolean
for each T in {Int, Long, Float, Double}
This commit is contained in:
+3
-4
@@ -39,18 +39,17 @@ CONTENT
|
||||
1 SET_VAR 'number: Int' type=kotlin.Unit origin=DIVEQ
|
||||
2 GET_VAR 'number: Int' type=kotlin.Int origin=null
|
||||
3 CONST Int type=kotlin.Int value=0
|
||||
4 CALL 'compareTo(Int): Int' type=kotlin.Int origin=GT
|
||||
OUTGOING -> BB 4, 5
|
||||
CALL 'GT0(Int): Boolean' type=kotlin.Boolean origin=GT
|
||||
CALL 'greater(Int, Int): Boolean' type=kotlin.Boolean origin=GT
|
||||
BB 4
|
||||
INCOMING <- BB 3
|
||||
CALL 'GT0(Int): Boolean' type=kotlin.Boolean origin=GT
|
||||
CALL 'greater(Int, Int): Boolean' type=kotlin.Boolean origin=GT
|
||||
CONTENT
|
||||
OUTGOING -> BB 1
|
||||
Do..while entry: DO_WHILE label=null origin=DO_WHILE_LOOP
|
||||
BB 5
|
||||
INCOMING <- BB 3
|
||||
CALL 'GT0(Int): Boolean' type=kotlin.Boolean origin=GT
|
||||
CALL 'greater(Int, Int): Boolean' type=kotlin.Boolean origin=GT
|
||||
CONTENT
|
||||
OUTGOING -> BB 6
|
||||
Do..while exit: DO_WHILE label=null origin=DO_WHILE_LOOP
|
||||
|
||||
+6
-8
@@ -34,37 +34,35 @@ CONTENT
|
||||
6 GET_VAR 'm: Int' type=kotlin.Int origin=null
|
||||
7 CALL 'rem(Int): Int' type=kotlin.Int origin=PERC
|
||||
8 CONST Int type=kotlin.Int value=0
|
||||
9 CALL 'compareTo(Int): Int' type=kotlin.Int origin=GT
|
||||
OUTGOING -> BB 3, 4
|
||||
CALL 'GT0(Int): Boolean' type=kotlin.Boolean origin=GT
|
||||
CALL 'greater(Int, Int): Boolean' type=kotlin.Boolean origin=GT
|
||||
BB 3
|
||||
INCOMING <- BB 2
|
||||
CALL 'GT0(Int): Boolean' type=kotlin.Boolean origin=GT
|
||||
CALL 'greater(Int, Int): Boolean' type=kotlin.Boolean origin=GT
|
||||
CONTENT
|
||||
1 CONTINUE label=null loop.label=null
|
||||
OUTGOING -> BB 1
|
||||
While entry: WHILE label=null origin=FOR_LOOP_INNER_WHILE
|
||||
BB 4
|
||||
INCOMING <- BB 2
|
||||
CALL 'GT0(Int): Boolean' type=kotlin.Boolean origin=GT
|
||||
CALL 'greater(Int, Int): Boolean' type=kotlin.Boolean origin=GT
|
||||
CONTENT
|
||||
1 SET_VAR 'sum: Int' type=kotlin.Unit origin=PLUSEQ
|
||||
2 WHEN type=kotlin.Unit origin=null
|
||||
3 GET_VAR 'sum: Int' type=kotlin.Int origin=null
|
||||
4 GET_VAR 'value-parameter n: Int' type=kotlin.Int origin=null
|
||||
5 CALL 'compareTo(Int): Int' type=kotlin.Int origin=GT
|
||||
OUTGOING -> BB 5, 6
|
||||
CALL 'GT0(Int): Boolean' type=kotlin.Boolean origin=GT
|
||||
CALL 'greater(Int, Int): Boolean' type=kotlin.Boolean origin=GT
|
||||
BB 5
|
||||
INCOMING <- BB 4
|
||||
CALL 'GT0(Int): Boolean' type=kotlin.Boolean origin=GT
|
||||
CALL 'greater(Int, Int): Boolean' type=kotlin.Boolean origin=GT
|
||||
CONTENT
|
||||
1 BREAK label=null loop.label=null
|
||||
OUTGOING -> BB 8
|
||||
While exit: WHILE label=null origin=FOR_LOOP_INNER_WHILE
|
||||
BB 6
|
||||
INCOMING <- BB 4
|
||||
CALL 'GT0(Int): Boolean' type=kotlin.Boolean origin=GT
|
||||
CALL 'greater(Int, Int): Boolean' type=kotlin.Boolean origin=GT
|
||||
CONTENT
|
||||
OUTGOING -> BB 1
|
||||
While entry: WHILE label=null origin=FOR_LOOP_INNER_WHILE
|
||||
|
||||
+6
-8
@@ -6,34 +6,32 @@ CONTENT
|
||||
2 WHEN type=kotlin.Int origin=WHEN
|
||||
3 GET_VAR 'value-parameter x: Int' type=kotlin.Int origin=null
|
||||
4 GET_VAR 'value-parameter y: Int' type=kotlin.Int origin=null
|
||||
5 CALL 'compareTo(Int): Int' type=kotlin.Int origin=GT
|
||||
OUTGOING -> BB 1, 3
|
||||
CALL 'GT0(Int): Boolean' type=kotlin.Boolean origin=GT
|
||||
CALL 'greater(Int, Int): Boolean' type=kotlin.Boolean origin=GT
|
||||
BB 1
|
||||
INCOMING <- BB 0
|
||||
CALL 'GT0(Int): Boolean' type=kotlin.Boolean origin=GT
|
||||
CALL 'greater(Int, Int): Boolean' type=kotlin.Boolean origin=GT
|
||||
CONTENT
|
||||
1 GET_VAR 'value-parameter x: Int' type=kotlin.Int origin=null
|
||||
2 GET_VAR 'value-parameter y: Int' type=kotlin.Int origin=null
|
||||
3 CALL 'compareTo(Int): Int' type=kotlin.Int origin=LT
|
||||
OUTGOING -> BB 2, 4
|
||||
CALL 'LT0(Int): Boolean' type=kotlin.Boolean origin=LT
|
||||
CALL 'less(Int, Int): Boolean' type=kotlin.Boolean origin=LT
|
||||
BB 2
|
||||
INCOMING <- BB 1
|
||||
CALL 'LT0(Int): Boolean' type=kotlin.Boolean origin=LT
|
||||
CALL 'less(Int, Int): Boolean' type=kotlin.Boolean origin=LT
|
||||
CONTENT
|
||||
OUTGOING -> BB 5
|
||||
CONST Boolean type=kotlin.Boolean value=true
|
||||
BB 3
|
||||
INCOMING <- BB 0
|
||||
CALL 'GT0(Int): Boolean' type=kotlin.Boolean origin=GT
|
||||
CALL 'greater(Int, Int): Boolean' type=kotlin.Boolean origin=GT
|
||||
CONTENT
|
||||
1 CONST Int type=kotlin.Int value=1
|
||||
OUTGOING -> BB 6
|
||||
When exit: WHEN type=kotlin.Int origin=WHEN
|
||||
BB 4
|
||||
INCOMING <- BB 1
|
||||
CALL 'LT0(Int): Boolean' type=kotlin.Boolean origin=LT
|
||||
CALL 'less(Int, Int): Boolean' type=kotlin.Boolean origin=LT
|
||||
CONTENT
|
||||
1 CONST Int type=kotlin.Int value=-1
|
||||
OUTGOING -> BB 6
|
||||
|
||||
+3
-4
@@ -6,18 +6,17 @@ CONTENT
|
||||
2 WHEN type=kotlin.Int origin=null
|
||||
3 GET_VAR 'value-parameter x: Int' type=kotlin.Int origin=null
|
||||
4 GET_VAR 'value-parameter y: Int' type=kotlin.Int origin=null
|
||||
5 CALL 'compareTo(Int): Int' type=kotlin.Int origin=GT
|
||||
OUTGOING -> BB 1, 2
|
||||
CALL 'GT0(Int): Boolean' type=kotlin.Boolean origin=GT
|
||||
CALL 'greater(Int, Int): Boolean' type=kotlin.Boolean origin=GT
|
||||
BB 1
|
||||
INCOMING <- BB 0
|
||||
CALL 'GT0(Int): Boolean' type=kotlin.Boolean origin=GT
|
||||
CALL 'greater(Int, Int): Boolean' type=kotlin.Boolean origin=GT
|
||||
CONTENT
|
||||
OUTGOING -> BB 3
|
||||
CONST Boolean type=kotlin.Boolean value=true
|
||||
BB 2
|
||||
INCOMING <- BB 0
|
||||
CALL 'GT0(Int): Boolean' type=kotlin.Boolean origin=GT
|
||||
CALL 'greater(Int, Int): Boolean' type=kotlin.Boolean origin=GT
|
||||
CONTENT
|
||||
1 GET_VAR 'value-parameter x: Int' type=kotlin.Int origin=null
|
||||
OUTGOING -> BB 4
|
||||
|
||||
+18
-22
@@ -7,19 +7,19 @@ CONTENT
|
||||
3 GET_VAR 'value-parameter a: Double' type=kotlin.Double origin=null
|
||||
4 CONST Double type=kotlin.Double value=0.0
|
||||
OUTGOING -> BB 1, 6
|
||||
CALL 'EQEQ(Any?, Any?): Boolean' type=kotlin.Boolean origin=EQEQ
|
||||
CALL 'ieee754equals(Double?, Double?): Boolean' type=kotlin.Boolean origin=EQEQ
|
||||
BB 1
|
||||
INCOMING <- BB 0
|
||||
CALL 'EQEQ(Any?, Any?): Boolean' type=kotlin.Boolean origin=EQEQ
|
||||
CALL 'ieee754equals(Double?, Double?): Boolean' type=kotlin.Boolean origin=EQEQ
|
||||
CONTENT
|
||||
1 WHEN type=kotlin.Unit origin=null
|
||||
2 GET_VAR 'value-parameter b: Double' type=kotlin.Double origin=null
|
||||
3 CONST Double type=kotlin.Double value=0.0
|
||||
OUTGOING -> BB 2, 3
|
||||
CALL 'EQEQ(Any?, Any?): Boolean' type=kotlin.Boolean origin=EQEQ
|
||||
CALL 'ieee754equals(Double?, Double?): Boolean' type=kotlin.Boolean origin=EQEQ
|
||||
BB 2
|
||||
INCOMING <- BB 1
|
||||
CALL 'EQEQ(Any?, Any?): Boolean' type=kotlin.Boolean origin=EQEQ
|
||||
CALL 'ieee754equals(Double?, Double?): Boolean' type=kotlin.Boolean origin=EQEQ
|
||||
CONTENT
|
||||
1 CONST Double type=kotlin.Double value=1.0
|
||||
2 RETURN type=kotlin.Nothing from='minBiRoot(Double, Double, Double): Double'
|
||||
@@ -27,7 +27,7 @@ OUTGOING -> NONE
|
||||
Function exit: FUN name:minBiRoot visibility:public modality:FINAL <> (a:kotlin.Double, b:kotlin.Double, c:kotlin.Double) returnType:Double flags:
|
||||
BB 3
|
||||
INCOMING <- BB 1
|
||||
CALL 'EQEQ(Any?, Any?): Boolean' type=kotlin.Boolean origin=EQEQ
|
||||
CALL 'ieee754equals(Double?, Double?): Boolean' type=kotlin.Boolean origin=EQEQ
|
||||
CONTENT
|
||||
1 GET_VAR 'value-parameter c: Double' type=kotlin.Double origin=null
|
||||
2 CALL 'unaryMinus(): Double' type=kotlin.Double origin=UMINUS
|
||||
@@ -37,12 +37,11 @@ CONTENT
|
||||
6 WHEN type=kotlin.Unit origin=null
|
||||
7 GET_VAR 'bc: Double' type=kotlin.Double origin=null
|
||||
8 CONST Double type=kotlin.Double value=0.0
|
||||
9 CALL 'compareTo(Double): Int' type=kotlin.Int origin=LT
|
||||
OUTGOING -> BB 4, 5
|
||||
CALL 'LT0(Int): Boolean' type=kotlin.Boolean origin=LT
|
||||
CALL 'less(Double, Double): Boolean' type=kotlin.Boolean origin=LT
|
||||
BB 4
|
||||
INCOMING <- BB 3
|
||||
CALL 'LT0(Int): Boolean' type=kotlin.Boolean origin=LT
|
||||
CALL 'less(Double, Double): Boolean' type=kotlin.Boolean origin=LT
|
||||
CONTENT
|
||||
1 CONST Double type=kotlin.Double value=2.0
|
||||
2 RETURN type=kotlin.Nothing from='minBiRoot(Double, Double, Double): Double'
|
||||
@@ -50,7 +49,7 @@ OUTGOING -> NONE
|
||||
Function exit: FUN name:minBiRoot visibility:public modality:FINAL <> (a:kotlin.Double, b:kotlin.Double, c:kotlin.Double) returnType:Double flags:
|
||||
BB 5
|
||||
INCOMING <- BB 3
|
||||
CALL 'LT0(Int): Boolean' type=kotlin.Boolean origin=LT
|
||||
CALL 'less(Double, Double): Boolean' type=kotlin.Boolean origin=LT
|
||||
CONTENT
|
||||
1 GET_VAR 'bc: Double' type=kotlin.Double origin=null
|
||||
2 CALL 'unaryMinus(): Double' type=kotlin.Double origin=UMINUS
|
||||
@@ -59,7 +58,7 @@ OUTGOING -> NONE
|
||||
Function exit: FUN name:minBiRoot visibility:public modality:FINAL <> (a:kotlin.Double, b:kotlin.Double, c:kotlin.Double) returnType:Double flags:
|
||||
BB 6
|
||||
INCOMING <- BB 0
|
||||
CALL 'EQEQ(Any?, Any?): Boolean' type=kotlin.Boolean origin=EQEQ
|
||||
CALL 'ieee754equals(Double?, Double?): Boolean' type=kotlin.Boolean origin=EQEQ
|
||||
CONTENT
|
||||
1 GET_VAR 'value-parameter b: Double' type=kotlin.Double origin=null
|
||||
2 GET_VAR 'value-parameter b: Double' type=kotlin.Double origin=null
|
||||
@@ -74,12 +73,11 @@ CONTENT
|
||||
11 WHEN type=kotlin.Unit origin=null
|
||||
12 GET_VAR 'd: Double' type=kotlin.Double origin=null
|
||||
13 CONST Double type=kotlin.Double value=0.0
|
||||
14 CALL 'compareTo(Double): Int' type=kotlin.Int origin=LT
|
||||
OUTGOING -> BB 7, 8
|
||||
CALL 'LT0(Int): Boolean' type=kotlin.Boolean origin=LT
|
||||
CALL 'less(Double, Double): Boolean' type=kotlin.Boolean origin=LT
|
||||
BB 7
|
||||
INCOMING <- BB 6
|
||||
CALL 'LT0(Int): Boolean' type=kotlin.Boolean origin=LT
|
||||
CALL 'less(Double, Double): Boolean' type=kotlin.Boolean origin=LT
|
||||
CONTENT
|
||||
1 CONST Double type=kotlin.Double value=3.0
|
||||
2 RETURN type=kotlin.Nothing from='minBiRoot(Double, Double, Double): Double'
|
||||
@@ -87,7 +85,7 @@ OUTGOING -> NONE
|
||||
Function exit: FUN name:minBiRoot visibility:public modality:FINAL <> (a:kotlin.Double, b:kotlin.Double, c:kotlin.Double) returnType:Double flags:
|
||||
BB 8
|
||||
INCOMING <- BB 6
|
||||
CALL 'LT0(Int): Boolean' type=kotlin.Boolean origin=LT
|
||||
CALL 'less(Double, Double): Boolean' type=kotlin.Boolean origin=LT
|
||||
CONTENT
|
||||
1 GET_VAR 'value-parameter b: Double' type=kotlin.Double origin=null
|
||||
2 CALL 'unaryMinus(): Double' type=kotlin.Double origin=UMINUS
|
||||
@@ -110,18 +108,17 @@ CONTENT
|
||||
19 WHEN type=kotlin.Double origin=null
|
||||
20 GET_VAR 'y1: Double' type=kotlin.Double origin=null
|
||||
21 GET_VAR 'y2: Double' type=kotlin.Double origin=null
|
||||
22 CALL 'compareTo(Double): Int' type=kotlin.Int origin=GT
|
||||
OUTGOING -> BB 9, 10
|
||||
CALL 'GT0(Int): Boolean' type=kotlin.Boolean origin=GT
|
||||
CALL 'greater(Double, Double): Boolean' type=kotlin.Boolean origin=GT
|
||||
BB 9
|
||||
INCOMING <- BB 8
|
||||
CALL 'GT0(Int): Boolean' type=kotlin.Boolean origin=GT
|
||||
CALL 'greater(Double, Double): Boolean' type=kotlin.Boolean origin=GT
|
||||
CONTENT
|
||||
OUTGOING -> BB 11
|
||||
CONST Boolean type=kotlin.Boolean value=true
|
||||
BB 10
|
||||
INCOMING <- BB 8
|
||||
CALL 'GT0(Int): Boolean' type=kotlin.Boolean origin=GT
|
||||
CALL 'greater(Double, Double): Boolean' type=kotlin.Boolean origin=GT
|
||||
CONTENT
|
||||
1 GET_VAR 'y1: Double' type=kotlin.Double origin=null
|
||||
OUTGOING -> BB 12
|
||||
@@ -141,18 +138,17 @@ CONTENT
|
||||
2 WHEN type=kotlin.Double origin=null
|
||||
3 GET_VAR 'y3: Double' type=kotlin.Double origin=null
|
||||
4 CONST Double type=kotlin.Double value=0.0
|
||||
5 CALL 'compareTo(Double): Int' type=kotlin.Int origin=LT
|
||||
OUTGOING -> BB 13, 14
|
||||
CALL 'LT0(Int): Boolean' type=kotlin.Boolean origin=LT
|
||||
CALL 'less(Double, Double): Boolean' type=kotlin.Boolean origin=LT
|
||||
BB 13
|
||||
INCOMING <- BB 12
|
||||
CALL 'LT0(Int): Boolean' type=kotlin.Boolean origin=LT
|
||||
CALL 'less(Double, Double): Boolean' type=kotlin.Boolean origin=LT
|
||||
CONTENT
|
||||
OUTGOING -> BB 15
|
||||
CONST Boolean type=kotlin.Boolean value=true
|
||||
BB 14
|
||||
INCOMING <- BB 12
|
||||
CALL 'LT0(Int): Boolean' type=kotlin.Boolean origin=LT
|
||||
CALL 'less(Double, Double): Boolean' type=kotlin.Boolean origin=LT
|
||||
CONTENT
|
||||
1 CONST Double type=kotlin.Double value=4.0
|
||||
OUTGOING -> BB 16
|
||||
|
||||
@@ -119,10 +119,9 @@ FILE fqName:<root> fileName:/breakContinueInLoopHeader.kt
|
||||
GET_VAR 'j: Int' type=kotlin.Int origin=PREFIX_INCR
|
||||
condition: WHEN type=kotlin.Boolean origin=null
|
||||
BRANCH
|
||||
if: CALL 'GTEQ0(Int): Boolean' type=kotlin.Boolean origin=GTEQ
|
||||
arg0: CALL 'compareTo(Int): Int' type=kotlin.Int origin=GTEQ
|
||||
$this: GET_VAR 'j: Int' type=kotlin.Int origin=null
|
||||
other: CONST Int type=kotlin.Int value=3
|
||||
if: CALL 'greaterOrEqual(Int, Int): Boolean' type=kotlin.Boolean origin=GTEQ
|
||||
arg0: GET_VAR 'j: Int' type=kotlin.Int origin=null
|
||||
arg1: CONST Int type=kotlin.Int value=3
|
||||
then: CONST Boolean type=kotlin.Boolean value=false
|
||||
BRANCH
|
||||
if: CONST Boolean type=kotlin.Boolean value=true
|
||||
@@ -133,4 +132,3 @@ FILE fqName:<root> fileName:/breakContinueInLoopHeader.kt
|
||||
arg0: GET_VAR 'i: Int' type=kotlin.Int origin=null
|
||||
arg1: CONST Int type=kotlin.Int value=3
|
||||
then: BREAK label=null loop.label=Outer
|
||||
|
||||
|
||||
@@ -27,42 +27,45 @@ FILE fqName:<root> fileName:/conventionComparisons.kt
|
||||
VALUE_PARAMETER name:a2 index:1 type:IA flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='test1(IA, IA) on IB: Boolean'
|
||||
CALL 'GT0(Int): Boolean' type=kotlin.Boolean origin=GT
|
||||
CALL 'greater(Int, Int): Boolean' type=kotlin.Boolean origin=GT
|
||||
arg0: CALL 'compareTo(IA) on IA: Int' type=kotlin.Int origin=GT
|
||||
$this: GET_VAR 'this@test1: IB' type=IB origin=null
|
||||
$receiver: GET_VAR 'value-parameter a1: IA' type=IA origin=null
|
||||
other: GET_VAR 'value-parameter a2: IA' type=IA origin=null
|
||||
arg1: CONST Int type=kotlin.Int value=0
|
||||
FUN name:test2 visibility:public modality:FINAL <> ($receiver:IB, a1:IA, a2:IA) returnType:Boolean flags:
|
||||
$receiver: VALUE_PARAMETER name:<this> type:IB flags:
|
||||
VALUE_PARAMETER name:a1 index:0 type:IA flags:
|
||||
VALUE_PARAMETER name:a2 index:1 type:IA flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='test2(IA, IA) on IB: Boolean'
|
||||
CALL 'GTEQ0(Int): Boolean' type=kotlin.Boolean origin=GTEQ
|
||||
CALL 'greaterOrEqual(Int, Int): Boolean' type=kotlin.Boolean origin=GTEQ
|
||||
arg0: CALL 'compareTo(IA) on IA: Int' type=kotlin.Int origin=GTEQ
|
||||
$this: GET_VAR 'this@test2: IB' type=IB origin=null
|
||||
$receiver: GET_VAR 'value-parameter a1: IA' type=IA origin=null
|
||||
other: GET_VAR 'value-parameter a2: IA' type=IA origin=null
|
||||
arg1: CONST Int type=kotlin.Int value=0
|
||||
FUN name:test3 visibility:public modality:FINAL <> ($receiver:IB, a1:IA, a2:IA) returnType:Boolean flags:
|
||||
$receiver: VALUE_PARAMETER name:<this> type:IB flags:
|
||||
VALUE_PARAMETER name:a1 index:0 type:IA flags:
|
||||
VALUE_PARAMETER name:a2 index:1 type:IA flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='test3(IA, IA) on IB: Boolean'
|
||||
CALL 'LT0(Int): Boolean' type=kotlin.Boolean origin=LT
|
||||
CALL 'less(Int, Int): Boolean' type=kotlin.Boolean origin=LT
|
||||
arg0: CALL 'compareTo(IA) on IA: Int' type=kotlin.Int origin=LT
|
||||
$this: GET_VAR 'this@test3: IB' type=IB origin=null
|
||||
$receiver: GET_VAR 'value-parameter a1: IA' type=IA origin=null
|
||||
other: GET_VAR 'value-parameter a2: IA' type=IA origin=null
|
||||
arg1: CONST Int type=kotlin.Int value=0
|
||||
FUN name:test4 visibility:public modality:FINAL <> ($receiver:IB, a1:IA, a2:IA) returnType:Boolean flags:
|
||||
$receiver: VALUE_PARAMETER name:<this> type:IB flags:
|
||||
VALUE_PARAMETER name:a1 index:0 type:IA flags:
|
||||
VALUE_PARAMETER name:a2 index:1 type:IA flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='test4(IA, IA) on IB: Boolean'
|
||||
CALL 'LTEQ0(Int): Boolean' type=kotlin.Boolean origin=LTEQ
|
||||
CALL 'lessOrEqual(Int, Int): Boolean' type=kotlin.Boolean origin=LTEQ
|
||||
arg0: CALL 'compareTo(IA) on IA: Int' type=kotlin.Int origin=LTEQ
|
||||
$this: GET_VAR 'this@test4: IB' type=IB origin=null
|
||||
$receiver: GET_VAR 'value-parameter a1: IA' type=IA origin=null
|
||||
other: GET_VAR 'value-parameter a2: IA' type=IA origin=null
|
||||
|
||||
arg1: CONST Int type=kotlin.Int value=0
|
||||
|
||||
Vendored
+3
@@ -0,0 +1,3 @@
|
||||
fun testD(x: Comparable<Double>, y: Comparable<Double>) = x is Double && y is Double && x < y
|
||||
|
||||
fun testF(x: Comparable<Float>, y: Comparable<Float>) = x is Float && y is Float && x < y
|
||||
Vendored
+49
@@ -0,0 +1,49 @@
|
||||
FILE fqName:<root> fileName:/comparableWithDoubleOrFloat.kt
|
||||
FUN name:testD visibility:public modality:FINAL <> (x:kotlin.Comparable<kotlin.Double>, y:kotlin.Comparable<kotlin.Double>) returnType:Boolean flags:
|
||||
VALUE_PARAMETER name:x index:0 type:kotlin.Comparable<kotlin.Double> flags:
|
||||
VALUE_PARAMETER name:y index:1 type:kotlin.Comparable<kotlin.Double> flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='testD(Comparable<Double>, Comparable<Double>): Boolean'
|
||||
WHEN type=kotlin.Boolean origin=ANDAND
|
||||
BRANCH
|
||||
if: WHEN type=kotlin.Boolean origin=ANDAND
|
||||
BRANCH
|
||||
if: TYPE_OP type=kotlin.Boolean origin=INSTANCEOF typeOperand=kotlin.Double
|
||||
GET_VAR 'value-parameter x: Comparable<Double>' type=kotlin.Comparable<kotlin.Double> origin=null
|
||||
then: TYPE_OP type=kotlin.Boolean origin=INSTANCEOF typeOperand=kotlin.Double
|
||||
GET_VAR 'value-parameter y: Comparable<Double>' type=kotlin.Comparable<kotlin.Double> origin=null
|
||||
BRANCH
|
||||
if: CONST Boolean type=kotlin.Boolean value=true
|
||||
then: CONST Boolean type=kotlin.Boolean value=false
|
||||
then: CALL 'less(Double, Double): Boolean' type=kotlin.Boolean origin=LT
|
||||
arg0: TYPE_OP type=kotlin.Double origin=IMPLICIT_CAST typeOperand=kotlin.Double
|
||||
GET_VAR 'value-parameter x: Comparable<Double>' type=kotlin.Comparable<kotlin.Double> origin=null
|
||||
arg1: TYPE_OP type=kotlin.Double origin=IMPLICIT_CAST typeOperand=kotlin.Double
|
||||
GET_VAR 'value-parameter y: Comparable<Double>' type=kotlin.Comparable<kotlin.Double> origin=null
|
||||
BRANCH
|
||||
if: CONST Boolean type=kotlin.Boolean value=true
|
||||
then: CONST Boolean type=kotlin.Boolean value=false
|
||||
FUN name:testF visibility:public modality:FINAL <> (x:kotlin.Comparable<kotlin.Float>, y:kotlin.Comparable<kotlin.Float>) returnType:Boolean flags:
|
||||
VALUE_PARAMETER name:x index:0 type:kotlin.Comparable<kotlin.Float> flags:
|
||||
VALUE_PARAMETER name:y index:1 type:kotlin.Comparable<kotlin.Float> flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='testF(Comparable<Float>, Comparable<Float>): Boolean'
|
||||
WHEN type=kotlin.Boolean origin=ANDAND
|
||||
BRANCH
|
||||
if: WHEN type=kotlin.Boolean origin=ANDAND
|
||||
BRANCH
|
||||
if: TYPE_OP type=kotlin.Boolean origin=INSTANCEOF typeOperand=kotlin.Float
|
||||
GET_VAR 'value-parameter x: Comparable<Float>' type=kotlin.Comparable<kotlin.Float> origin=null
|
||||
then: TYPE_OP type=kotlin.Boolean origin=INSTANCEOF typeOperand=kotlin.Float
|
||||
GET_VAR 'value-parameter y: Comparable<Float>' type=kotlin.Comparable<kotlin.Float> origin=null
|
||||
BRANCH
|
||||
if: CONST Boolean type=kotlin.Boolean value=true
|
||||
then: CONST Boolean type=kotlin.Boolean value=false
|
||||
then: CALL 'less(Float, Float): Boolean' type=kotlin.Boolean origin=LT
|
||||
arg0: TYPE_OP type=kotlin.Float origin=IMPLICIT_CAST typeOperand=kotlin.Float
|
||||
GET_VAR 'value-parameter x: Comparable<Float>' type=kotlin.Comparable<kotlin.Float> origin=null
|
||||
arg1: TYPE_OP type=kotlin.Float origin=IMPLICIT_CAST typeOperand=kotlin.Float
|
||||
GET_VAR 'value-parameter y: Comparable<Float>' type=kotlin.Comparable<kotlin.Float> origin=null
|
||||
BRANCH
|
||||
if: CONST Boolean type=kotlin.Boolean value=true
|
||||
then: CONST Boolean type=kotlin.Boolean value=false
|
||||
+14
@@ -0,0 +1,14 @@
|
||||
fun test1d(x: Double, y: Double) = x.compareTo(y)
|
||||
fun test2d(x: Double, y: Any) = y is Double && x.compareTo(y) == 0
|
||||
fun test3d(x: Any, y: Any) = x is Double && y is Double && x.compareTo(y) == 0
|
||||
|
||||
fun test1f(x: Float, y: Float) = x.compareTo(y)
|
||||
fun test2f(x: Float, y: Any) = y is Float && x.compareTo(y) == 0
|
||||
fun test3f(x: Any, y: Any) = x is Float && y is Float && x.compareTo(y) == 0
|
||||
|
||||
fun testFD(x: Any, y: Any) = x is Float && y is Double && x.compareTo(y) == 0
|
||||
fun testDF(x: Any, y: Any) = x is Double && y is Float && x.compareTo(y) == 0
|
||||
|
||||
fun Float.test1fr(x: Float) = compareTo(x)
|
||||
fun Float.test2fr(x: Any) = x is Float && compareTo(x) == 0
|
||||
fun Float.test3fr(x: Any) = x is Double && compareTo(x) == 0
|
||||
Vendored
+201
@@ -0,0 +1,201 @@
|
||||
FILE fqName:<root> fileName:/floatingPointCompareTo.kt
|
||||
FUN name:test1d visibility:public modality:FINAL <> (x:kotlin.Double, y:kotlin.Double) returnType:Int flags:
|
||||
VALUE_PARAMETER name:x index:0 type:kotlin.Double flags:
|
||||
VALUE_PARAMETER name:y index:1 type:kotlin.Double flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='test1d(Double, Double): Int'
|
||||
CALL 'compareTo(Double): Int' type=kotlin.Int origin=null
|
||||
$this: GET_VAR 'value-parameter x: Double' type=kotlin.Double origin=null
|
||||
other: GET_VAR 'value-parameter y: Double' type=kotlin.Double origin=null
|
||||
FUN name:test2d visibility:public modality:FINAL <> (x:kotlin.Double, y:kotlin.Any) returnType:Boolean flags:
|
||||
VALUE_PARAMETER name:x index:0 type:kotlin.Double flags:
|
||||
VALUE_PARAMETER name:y index:1 type:kotlin.Any flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='test2d(Double, Any): Boolean'
|
||||
WHEN type=kotlin.Boolean origin=ANDAND
|
||||
BRANCH
|
||||
if: TYPE_OP type=kotlin.Boolean origin=INSTANCEOF typeOperand=kotlin.Double
|
||||
GET_VAR 'value-parameter y: Any' type=kotlin.Any origin=null
|
||||
then: CALL 'EQEQ(Any?, Any?): Boolean' type=kotlin.Boolean origin=EQEQ
|
||||
arg0: CALL 'compareTo(Double): Int' type=kotlin.Int origin=null
|
||||
$this: GET_VAR 'value-parameter x: Double' type=kotlin.Double origin=null
|
||||
other: TYPE_OP type=kotlin.Double origin=IMPLICIT_CAST typeOperand=kotlin.Double
|
||||
GET_VAR 'value-parameter y: Any' type=kotlin.Any origin=null
|
||||
arg1: CONST Int type=kotlin.Int value=0
|
||||
BRANCH
|
||||
if: CONST Boolean type=kotlin.Boolean value=true
|
||||
then: CONST Boolean type=kotlin.Boolean value=false
|
||||
FUN name:test3d visibility:public modality:FINAL <> (x:kotlin.Any, y:kotlin.Any) returnType:Boolean flags:
|
||||
VALUE_PARAMETER name:x index:0 type:kotlin.Any flags:
|
||||
VALUE_PARAMETER name:y index:1 type:kotlin.Any flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='test3d(Any, Any): Boolean'
|
||||
WHEN type=kotlin.Boolean origin=ANDAND
|
||||
BRANCH
|
||||
if: WHEN type=kotlin.Boolean origin=ANDAND
|
||||
BRANCH
|
||||
if: TYPE_OP type=kotlin.Boolean origin=INSTANCEOF typeOperand=kotlin.Double
|
||||
GET_VAR 'value-parameter x: Any' type=kotlin.Any origin=null
|
||||
then: TYPE_OP type=kotlin.Boolean origin=INSTANCEOF typeOperand=kotlin.Double
|
||||
GET_VAR 'value-parameter y: Any' type=kotlin.Any origin=null
|
||||
BRANCH
|
||||
if: CONST Boolean type=kotlin.Boolean value=true
|
||||
then: CONST Boolean type=kotlin.Boolean value=false
|
||||
then: CALL 'EQEQ(Any?, Any?): Boolean' type=kotlin.Boolean origin=EQEQ
|
||||
arg0: CALL 'compareTo(Double): Int' type=kotlin.Int origin=null
|
||||
$this: TYPE_OP type=kotlin.Double origin=IMPLICIT_CAST typeOperand=kotlin.Double
|
||||
GET_VAR 'value-parameter x: Any' type=kotlin.Any origin=null
|
||||
other: TYPE_OP type=kotlin.Double origin=IMPLICIT_CAST typeOperand=kotlin.Double
|
||||
GET_VAR 'value-parameter y: Any' type=kotlin.Any origin=null
|
||||
arg1: CONST Int type=kotlin.Int value=0
|
||||
BRANCH
|
||||
if: CONST Boolean type=kotlin.Boolean value=true
|
||||
then: CONST Boolean type=kotlin.Boolean value=false
|
||||
FUN name:test1f visibility:public modality:FINAL <> (x:kotlin.Float, y:kotlin.Float) returnType:Int flags:
|
||||
VALUE_PARAMETER name:x index:0 type:kotlin.Float flags:
|
||||
VALUE_PARAMETER name:y index:1 type:kotlin.Float flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='test1f(Float, Float): Int'
|
||||
CALL 'compareTo(Float): Int' type=kotlin.Int origin=null
|
||||
$this: GET_VAR 'value-parameter x: Float' type=kotlin.Float origin=null
|
||||
other: GET_VAR 'value-parameter y: Float' type=kotlin.Float origin=null
|
||||
FUN name:test2f visibility:public modality:FINAL <> (x:kotlin.Float, y:kotlin.Any) returnType:Boolean flags:
|
||||
VALUE_PARAMETER name:x index:0 type:kotlin.Float flags:
|
||||
VALUE_PARAMETER name:y index:1 type:kotlin.Any flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='test2f(Float, Any): Boolean'
|
||||
WHEN type=kotlin.Boolean origin=ANDAND
|
||||
BRANCH
|
||||
if: TYPE_OP type=kotlin.Boolean origin=INSTANCEOF typeOperand=kotlin.Float
|
||||
GET_VAR 'value-parameter y: Any' type=kotlin.Any origin=null
|
||||
then: CALL 'EQEQ(Any?, Any?): Boolean' type=kotlin.Boolean origin=EQEQ
|
||||
arg0: CALL 'compareTo(Float): Int' type=kotlin.Int origin=null
|
||||
$this: GET_VAR 'value-parameter x: Float' type=kotlin.Float origin=null
|
||||
other: TYPE_OP type=kotlin.Float origin=IMPLICIT_CAST typeOperand=kotlin.Float
|
||||
GET_VAR 'value-parameter y: Any' type=kotlin.Any origin=null
|
||||
arg1: CONST Int type=kotlin.Int value=0
|
||||
BRANCH
|
||||
if: CONST Boolean type=kotlin.Boolean value=true
|
||||
then: CONST Boolean type=kotlin.Boolean value=false
|
||||
FUN name:test3f visibility:public modality:FINAL <> (x:kotlin.Any, y:kotlin.Any) returnType:Boolean flags:
|
||||
VALUE_PARAMETER name:x index:0 type:kotlin.Any flags:
|
||||
VALUE_PARAMETER name:y index:1 type:kotlin.Any flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='test3f(Any, Any): Boolean'
|
||||
WHEN type=kotlin.Boolean origin=ANDAND
|
||||
BRANCH
|
||||
if: WHEN type=kotlin.Boolean origin=ANDAND
|
||||
BRANCH
|
||||
if: TYPE_OP type=kotlin.Boolean origin=INSTANCEOF typeOperand=kotlin.Float
|
||||
GET_VAR 'value-parameter x: Any' type=kotlin.Any origin=null
|
||||
then: TYPE_OP type=kotlin.Boolean origin=INSTANCEOF typeOperand=kotlin.Float
|
||||
GET_VAR 'value-parameter y: Any' type=kotlin.Any origin=null
|
||||
BRANCH
|
||||
if: CONST Boolean type=kotlin.Boolean value=true
|
||||
then: CONST Boolean type=kotlin.Boolean value=false
|
||||
then: CALL 'EQEQ(Any?, Any?): Boolean' type=kotlin.Boolean origin=EQEQ
|
||||
arg0: CALL 'compareTo(Float): Int' type=kotlin.Int origin=null
|
||||
$this: TYPE_OP type=kotlin.Float origin=IMPLICIT_CAST typeOperand=kotlin.Float
|
||||
GET_VAR 'value-parameter x: Any' type=kotlin.Any origin=null
|
||||
other: TYPE_OP type=kotlin.Float origin=IMPLICIT_CAST typeOperand=kotlin.Float
|
||||
GET_VAR 'value-parameter y: Any' type=kotlin.Any origin=null
|
||||
arg1: CONST Int type=kotlin.Int value=0
|
||||
BRANCH
|
||||
if: CONST Boolean type=kotlin.Boolean value=true
|
||||
then: CONST Boolean type=kotlin.Boolean value=false
|
||||
FUN name:testFD visibility:public modality:FINAL <> (x:kotlin.Any, y:kotlin.Any) returnType:Boolean flags:
|
||||
VALUE_PARAMETER name:x index:0 type:kotlin.Any flags:
|
||||
VALUE_PARAMETER name:y index:1 type:kotlin.Any flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='testFD(Any, Any): Boolean'
|
||||
WHEN type=kotlin.Boolean origin=ANDAND
|
||||
BRANCH
|
||||
if: WHEN type=kotlin.Boolean origin=ANDAND
|
||||
BRANCH
|
||||
if: TYPE_OP type=kotlin.Boolean origin=INSTANCEOF typeOperand=kotlin.Float
|
||||
GET_VAR 'value-parameter x: Any' type=kotlin.Any origin=null
|
||||
then: TYPE_OP type=kotlin.Boolean origin=INSTANCEOF typeOperand=kotlin.Double
|
||||
GET_VAR 'value-parameter y: Any' type=kotlin.Any origin=null
|
||||
BRANCH
|
||||
if: CONST Boolean type=kotlin.Boolean value=true
|
||||
then: CONST Boolean type=kotlin.Boolean value=false
|
||||
then: CALL 'EQEQ(Any?, Any?): Boolean' type=kotlin.Boolean origin=EQEQ
|
||||
arg0: CALL 'compareTo(Double): Int' type=kotlin.Int origin=null
|
||||
$this: TYPE_OP type=kotlin.Float origin=IMPLICIT_CAST typeOperand=kotlin.Float
|
||||
GET_VAR 'value-parameter x: Any' type=kotlin.Any origin=null
|
||||
other: TYPE_OP type=kotlin.Double origin=IMPLICIT_CAST typeOperand=kotlin.Double
|
||||
GET_VAR 'value-parameter y: Any' type=kotlin.Any origin=null
|
||||
arg1: CONST Int type=kotlin.Int value=0
|
||||
BRANCH
|
||||
if: CONST Boolean type=kotlin.Boolean value=true
|
||||
then: CONST Boolean type=kotlin.Boolean value=false
|
||||
FUN name:testDF visibility:public modality:FINAL <> (x:kotlin.Any, y:kotlin.Any) returnType:Boolean flags:
|
||||
VALUE_PARAMETER name:x index:0 type:kotlin.Any flags:
|
||||
VALUE_PARAMETER name:y index:1 type:kotlin.Any flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='testDF(Any, Any): Boolean'
|
||||
WHEN type=kotlin.Boolean origin=ANDAND
|
||||
BRANCH
|
||||
if: WHEN type=kotlin.Boolean origin=ANDAND
|
||||
BRANCH
|
||||
if: TYPE_OP type=kotlin.Boolean origin=INSTANCEOF typeOperand=kotlin.Double
|
||||
GET_VAR 'value-parameter x: Any' type=kotlin.Any origin=null
|
||||
then: TYPE_OP type=kotlin.Boolean origin=INSTANCEOF typeOperand=kotlin.Float
|
||||
GET_VAR 'value-parameter y: Any' type=kotlin.Any origin=null
|
||||
BRANCH
|
||||
if: CONST Boolean type=kotlin.Boolean value=true
|
||||
then: CONST Boolean type=kotlin.Boolean value=false
|
||||
then: CALL 'EQEQ(Any?, Any?): Boolean' type=kotlin.Boolean origin=EQEQ
|
||||
arg0: CALL 'compareTo(Float): Int' type=kotlin.Int origin=null
|
||||
$this: TYPE_OP type=kotlin.Double origin=IMPLICIT_CAST typeOperand=kotlin.Double
|
||||
GET_VAR 'value-parameter x: Any' type=kotlin.Any origin=null
|
||||
other: TYPE_OP type=kotlin.Float origin=IMPLICIT_CAST typeOperand=kotlin.Float
|
||||
GET_VAR 'value-parameter y: Any' type=kotlin.Any origin=null
|
||||
arg1: CONST Int type=kotlin.Int value=0
|
||||
BRANCH
|
||||
if: CONST Boolean type=kotlin.Boolean value=true
|
||||
then: CONST Boolean type=kotlin.Boolean value=false
|
||||
FUN name:test1fr visibility:public modality:FINAL <> ($receiver:kotlin.Float, x:kotlin.Float) returnType:Int flags:
|
||||
$receiver: VALUE_PARAMETER name:<this> type:kotlin.Float flags:
|
||||
VALUE_PARAMETER name:x index:0 type:kotlin.Float flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='test1fr(Float) on Float: Int'
|
||||
CALL 'compareTo(Float): Int' type=kotlin.Int origin=null
|
||||
$this: GET_VAR 'this@test1fr: Float' type=kotlin.Float origin=null
|
||||
other: GET_VAR 'value-parameter x: Float' type=kotlin.Float origin=null
|
||||
FUN name:test2fr visibility:public modality:FINAL <> ($receiver:kotlin.Float, x:kotlin.Any) returnType:Boolean flags:
|
||||
$receiver: VALUE_PARAMETER name:<this> type:kotlin.Float flags:
|
||||
VALUE_PARAMETER name:x index:0 type:kotlin.Any flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='test2fr(Any) on Float: Boolean'
|
||||
WHEN type=kotlin.Boolean origin=ANDAND
|
||||
BRANCH
|
||||
if: TYPE_OP type=kotlin.Boolean origin=INSTANCEOF typeOperand=kotlin.Float
|
||||
GET_VAR 'value-parameter x: Any' type=kotlin.Any origin=null
|
||||
then: CALL 'EQEQ(Any?, Any?): Boolean' type=kotlin.Boolean origin=EQEQ
|
||||
arg0: CALL 'compareTo(Float): Int' type=kotlin.Int origin=null
|
||||
$this: GET_VAR 'this@test2fr: Float' type=kotlin.Float origin=null
|
||||
other: TYPE_OP type=kotlin.Float origin=IMPLICIT_CAST typeOperand=kotlin.Float
|
||||
GET_VAR 'value-parameter x: Any' type=kotlin.Any origin=null
|
||||
arg1: CONST Int type=kotlin.Int value=0
|
||||
BRANCH
|
||||
if: CONST Boolean type=kotlin.Boolean value=true
|
||||
then: CONST Boolean type=kotlin.Boolean value=false
|
||||
FUN name:test3fr visibility:public modality:FINAL <> ($receiver:kotlin.Float, x:kotlin.Any) returnType:Boolean flags:
|
||||
$receiver: VALUE_PARAMETER name:<this> type:kotlin.Float flags:
|
||||
VALUE_PARAMETER name:x index:0 type:kotlin.Any flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='test3fr(Any) on Float: Boolean'
|
||||
WHEN type=kotlin.Boolean origin=ANDAND
|
||||
BRANCH
|
||||
if: TYPE_OP type=kotlin.Boolean origin=INSTANCEOF typeOperand=kotlin.Double
|
||||
GET_VAR 'value-parameter x: Any' type=kotlin.Any origin=null
|
||||
then: CALL 'EQEQ(Any?, Any?): Boolean' type=kotlin.Boolean origin=EQEQ
|
||||
arg0: CALL 'compareTo(Double): Int' type=kotlin.Int origin=null
|
||||
$this: GET_VAR 'this@test3fr: Float' type=kotlin.Float origin=null
|
||||
other: TYPE_OP type=kotlin.Double origin=IMPLICIT_CAST typeOperand=kotlin.Double
|
||||
GET_VAR 'value-parameter x: Any' type=kotlin.Any origin=null
|
||||
arg1: CONST Int type=kotlin.Int value=0
|
||||
BRANCH
|
||||
if: CONST Boolean type=kotlin.Boolean value=true
|
||||
then: CONST Boolean type=kotlin.Boolean value=false
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
fun test1d(x: Double, y: Double) = x == y
|
||||
fun test2d(x: Double, y: Double?) = x == y
|
||||
fun test3d(x: Double, y: Any) = x == y
|
||||
fun test4d(x: Double, y: Number) = x == y
|
||||
fun test5d(x: Double, y: Any) = y is Double && x == y
|
||||
fun test6d(x: Any, y: Any) = x is Double && y is Double && x == y
|
||||
|
||||
fun test1f(x: Float, y: Float) = x == y
|
||||
fun test2f(x: Float, y: Float?) = x == y
|
||||
fun test3f(x: Float, y: Any) = x == y
|
||||
fun test4f(x: Float, y: Number) = x == y
|
||||
fun test5f(x: Float, y: Any) = y is Float && x == y
|
||||
fun test6f(x: Any, y: Any) = x is Float && y is Float && x == y
|
||||
|
||||
// The following possibly should not compile (but so far it does)
|
||||
// because of EQUALITY_NOT_APPLICABLE.
|
||||
fun testFD(x: Any, y: Any) = x is Float && y is Double && x == y
|
||||
fun testDF(x: Any, y: Any) = x is Double && y is Float && x == y
|
||||
+195
@@ -0,0 +1,195 @@
|
||||
FILE fqName:<root> fileName:/floatingPointEqeq.kt
|
||||
FUN name:test1d visibility:public modality:FINAL <> (x:kotlin.Double, y:kotlin.Double) returnType:Boolean flags:
|
||||
VALUE_PARAMETER name:x index:0 type:kotlin.Double flags:
|
||||
VALUE_PARAMETER name:y index:1 type:kotlin.Double flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='test1d(Double, Double): Boolean'
|
||||
CALL 'ieee754equals(Double?, Double?): Boolean' type=kotlin.Boolean origin=EQEQ
|
||||
arg0: GET_VAR 'value-parameter x: Double' type=kotlin.Double origin=null
|
||||
arg1: GET_VAR 'value-parameter y: Double' type=kotlin.Double origin=null
|
||||
FUN name:test2d visibility:public modality:FINAL <> (x:kotlin.Double, y:kotlin.Double?) returnType:Boolean flags:
|
||||
VALUE_PARAMETER name:x index:0 type:kotlin.Double flags:
|
||||
VALUE_PARAMETER name:y index:1 type:kotlin.Double? flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='test2d(Double, Double?): Boolean'
|
||||
CALL 'ieee754equals(Double?, Double?): Boolean' type=kotlin.Boolean origin=EQEQ
|
||||
arg0: GET_VAR 'value-parameter x: Double' type=kotlin.Double origin=null
|
||||
arg1: GET_VAR 'value-parameter y: Double?' type=kotlin.Double? origin=null
|
||||
FUN name:test3d visibility:public modality:FINAL <> (x:kotlin.Double, y:kotlin.Any) returnType:Boolean flags:
|
||||
VALUE_PARAMETER name:x index:0 type:kotlin.Double flags:
|
||||
VALUE_PARAMETER name:y index:1 type:kotlin.Any flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='test3d(Double, Any): Boolean'
|
||||
CALL 'EQEQ(Any?, Any?): Boolean' type=kotlin.Boolean origin=EQEQ
|
||||
arg0: GET_VAR 'value-parameter x: Double' type=kotlin.Double origin=null
|
||||
arg1: GET_VAR 'value-parameter y: Any' type=kotlin.Any origin=null
|
||||
FUN name:test4d visibility:public modality:FINAL <> (x:kotlin.Double, y:kotlin.Number) returnType:Boolean flags:
|
||||
VALUE_PARAMETER name:x index:0 type:kotlin.Double flags:
|
||||
VALUE_PARAMETER name:y index:1 type:kotlin.Number flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='test4d(Double, Number): Boolean'
|
||||
CALL 'EQEQ(Any?, Any?): Boolean' type=kotlin.Boolean origin=EQEQ
|
||||
arg0: GET_VAR 'value-parameter x: Double' type=kotlin.Double origin=null
|
||||
arg1: GET_VAR 'value-parameter y: Number' type=kotlin.Number origin=null
|
||||
FUN name:test5d visibility:public modality:FINAL <> (x:kotlin.Double, y:kotlin.Any) returnType:Boolean flags:
|
||||
VALUE_PARAMETER name:x index:0 type:kotlin.Double flags:
|
||||
VALUE_PARAMETER name:y index:1 type:kotlin.Any flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='test5d(Double, Any): Boolean'
|
||||
WHEN type=kotlin.Boolean origin=ANDAND
|
||||
BRANCH
|
||||
if: TYPE_OP type=kotlin.Boolean origin=INSTANCEOF typeOperand=kotlin.Double
|
||||
GET_VAR 'value-parameter y: Any' type=kotlin.Any origin=null
|
||||
then: CALL 'ieee754equals(Double?, Double?): Boolean' type=kotlin.Boolean origin=EQEQ
|
||||
arg0: GET_VAR 'value-parameter x: Double' type=kotlin.Double origin=null
|
||||
arg1: TYPE_OP type=kotlin.Double? origin=IMPLICIT_CAST typeOperand=kotlin.Double?
|
||||
GET_VAR 'value-parameter y: Any' type=kotlin.Any origin=null
|
||||
BRANCH
|
||||
if: CONST Boolean type=kotlin.Boolean value=true
|
||||
then: CONST Boolean type=kotlin.Boolean value=false
|
||||
FUN name:test6d visibility:public modality:FINAL <> (x:kotlin.Any, y:kotlin.Any) returnType:Boolean flags:
|
||||
VALUE_PARAMETER name:x index:0 type:kotlin.Any flags:
|
||||
VALUE_PARAMETER name:y index:1 type:kotlin.Any flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='test6d(Any, Any): Boolean'
|
||||
WHEN type=kotlin.Boolean origin=ANDAND
|
||||
BRANCH
|
||||
if: WHEN type=kotlin.Boolean origin=ANDAND
|
||||
BRANCH
|
||||
if: TYPE_OP type=kotlin.Boolean origin=INSTANCEOF typeOperand=kotlin.Double
|
||||
GET_VAR 'value-parameter x: Any' type=kotlin.Any origin=null
|
||||
then: TYPE_OP type=kotlin.Boolean origin=INSTANCEOF typeOperand=kotlin.Double
|
||||
GET_VAR 'value-parameter y: Any' type=kotlin.Any origin=null
|
||||
BRANCH
|
||||
if: CONST Boolean type=kotlin.Boolean value=true
|
||||
then: CONST Boolean type=kotlin.Boolean value=false
|
||||
then: CALL 'ieee754equals(Double?, Double?): Boolean' type=kotlin.Boolean origin=EQEQ
|
||||
arg0: TYPE_OP type=kotlin.Double? origin=IMPLICIT_CAST typeOperand=kotlin.Double?
|
||||
GET_VAR 'value-parameter x: Any' type=kotlin.Any origin=null
|
||||
arg1: TYPE_OP type=kotlin.Double? origin=IMPLICIT_CAST typeOperand=kotlin.Double?
|
||||
GET_VAR 'value-parameter y: Any' type=kotlin.Any origin=null
|
||||
BRANCH
|
||||
if: CONST Boolean type=kotlin.Boolean value=true
|
||||
then: CONST Boolean type=kotlin.Boolean value=false
|
||||
FUN name:test1f visibility:public modality:FINAL <> (x:kotlin.Float, y:kotlin.Float) returnType:Boolean flags:
|
||||
VALUE_PARAMETER name:x index:0 type:kotlin.Float flags:
|
||||
VALUE_PARAMETER name:y index:1 type:kotlin.Float flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='test1f(Float, Float): Boolean'
|
||||
CALL 'ieee754equals(Float?, Float?): Boolean' type=kotlin.Boolean origin=EQEQ
|
||||
arg0: GET_VAR 'value-parameter x: Float' type=kotlin.Float origin=null
|
||||
arg1: GET_VAR 'value-parameter y: Float' type=kotlin.Float origin=null
|
||||
FUN name:test2f visibility:public modality:FINAL <> (x:kotlin.Float, y:kotlin.Float?) returnType:Boolean flags:
|
||||
VALUE_PARAMETER name:x index:0 type:kotlin.Float flags:
|
||||
VALUE_PARAMETER name:y index:1 type:kotlin.Float? flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='test2f(Float, Float?): Boolean'
|
||||
CALL 'ieee754equals(Float?, Float?): Boolean' type=kotlin.Boolean origin=EQEQ
|
||||
arg0: GET_VAR 'value-parameter x: Float' type=kotlin.Float origin=null
|
||||
arg1: GET_VAR 'value-parameter y: Float?' type=kotlin.Float? origin=null
|
||||
FUN name:test3f visibility:public modality:FINAL <> (x:kotlin.Float, y:kotlin.Any) returnType:Boolean flags:
|
||||
VALUE_PARAMETER name:x index:0 type:kotlin.Float flags:
|
||||
VALUE_PARAMETER name:y index:1 type:kotlin.Any flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='test3f(Float, Any): Boolean'
|
||||
CALL 'EQEQ(Any?, Any?): Boolean' type=kotlin.Boolean origin=EQEQ
|
||||
arg0: GET_VAR 'value-parameter x: Float' type=kotlin.Float origin=null
|
||||
arg1: GET_VAR 'value-parameter y: Any' type=kotlin.Any origin=null
|
||||
FUN name:test4f visibility:public modality:FINAL <> (x:kotlin.Float, y:kotlin.Number) returnType:Boolean flags:
|
||||
VALUE_PARAMETER name:x index:0 type:kotlin.Float flags:
|
||||
VALUE_PARAMETER name:y index:1 type:kotlin.Number flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='test4f(Float, Number): Boolean'
|
||||
CALL 'EQEQ(Any?, Any?): Boolean' type=kotlin.Boolean origin=EQEQ
|
||||
arg0: GET_VAR 'value-parameter x: Float' type=kotlin.Float origin=null
|
||||
arg1: GET_VAR 'value-parameter y: Number' type=kotlin.Number origin=null
|
||||
FUN name:test5f visibility:public modality:FINAL <> (x:kotlin.Float, y:kotlin.Any) returnType:Boolean flags:
|
||||
VALUE_PARAMETER name:x index:0 type:kotlin.Float flags:
|
||||
VALUE_PARAMETER name:y index:1 type:kotlin.Any flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='test5f(Float, Any): Boolean'
|
||||
WHEN type=kotlin.Boolean origin=ANDAND
|
||||
BRANCH
|
||||
if: TYPE_OP type=kotlin.Boolean origin=INSTANCEOF typeOperand=kotlin.Float
|
||||
GET_VAR 'value-parameter y: Any' type=kotlin.Any origin=null
|
||||
then: CALL 'ieee754equals(Float?, Float?): Boolean' type=kotlin.Boolean origin=EQEQ
|
||||
arg0: GET_VAR 'value-parameter x: Float' type=kotlin.Float origin=null
|
||||
arg1: TYPE_OP type=kotlin.Float? origin=IMPLICIT_CAST typeOperand=kotlin.Float?
|
||||
GET_VAR 'value-parameter y: Any' type=kotlin.Any origin=null
|
||||
BRANCH
|
||||
if: CONST Boolean type=kotlin.Boolean value=true
|
||||
then: CONST Boolean type=kotlin.Boolean value=false
|
||||
FUN name:test6f visibility:public modality:FINAL <> (x:kotlin.Any, y:kotlin.Any) returnType:Boolean flags:
|
||||
VALUE_PARAMETER name:x index:0 type:kotlin.Any flags:
|
||||
VALUE_PARAMETER name:y index:1 type:kotlin.Any flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='test6f(Any, Any): Boolean'
|
||||
WHEN type=kotlin.Boolean origin=ANDAND
|
||||
BRANCH
|
||||
if: WHEN type=kotlin.Boolean origin=ANDAND
|
||||
BRANCH
|
||||
if: TYPE_OP type=kotlin.Boolean origin=INSTANCEOF typeOperand=kotlin.Float
|
||||
GET_VAR 'value-parameter x: Any' type=kotlin.Any origin=null
|
||||
then: TYPE_OP type=kotlin.Boolean origin=INSTANCEOF typeOperand=kotlin.Float
|
||||
GET_VAR 'value-parameter y: Any' type=kotlin.Any origin=null
|
||||
BRANCH
|
||||
if: CONST Boolean type=kotlin.Boolean value=true
|
||||
then: CONST Boolean type=kotlin.Boolean value=false
|
||||
then: CALL 'ieee754equals(Float?, Float?): Boolean' type=kotlin.Boolean origin=EQEQ
|
||||
arg0: TYPE_OP type=kotlin.Float? origin=IMPLICIT_CAST typeOperand=kotlin.Float?
|
||||
GET_VAR 'value-parameter x: Any' type=kotlin.Any origin=null
|
||||
arg1: TYPE_OP type=kotlin.Float? origin=IMPLICIT_CAST typeOperand=kotlin.Float?
|
||||
GET_VAR 'value-parameter y: Any' type=kotlin.Any origin=null
|
||||
BRANCH
|
||||
if: CONST Boolean type=kotlin.Boolean value=true
|
||||
then: CONST Boolean type=kotlin.Boolean value=false
|
||||
FUN name:testFD visibility:public modality:FINAL <> (x:kotlin.Any, y:kotlin.Any) returnType:Boolean flags:
|
||||
VALUE_PARAMETER name:x index:0 type:kotlin.Any flags:
|
||||
VALUE_PARAMETER name:y index:1 type:kotlin.Any flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='testFD(Any, Any): Boolean'
|
||||
WHEN type=kotlin.Boolean origin=ANDAND
|
||||
BRANCH
|
||||
if: WHEN type=kotlin.Boolean origin=ANDAND
|
||||
BRANCH
|
||||
if: TYPE_OP type=kotlin.Boolean origin=INSTANCEOF typeOperand=kotlin.Float
|
||||
GET_VAR 'value-parameter x: Any' type=kotlin.Any origin=null
|
||||
then: TYPE_OP type=kotlin.Boolean origin=INSTANCEOF typeOperand=kotlin.Double
|
||||
GET_VAR 'value-parameter y: Any' type=kotlin.Any origin=null
|
||||
BRANCH
|
||||
if: CONST Boolean type=kotlin.Boolean value=true
|
||||
then: CONST Boolean type=kotlin.Boolean value=false
|
||||
then: CALL 'ieee754equals(Double?, Double?): Boolean' type=kotlin.Boolean origin=EQEQ
|
||||
arg0: CALL 'toDouble(): Double' type=kotlin.Double origin=null
|
||||
$this: TYPE_OP type=kotlin.Float origin=IMPLICIT_CAST typeOperand=kotlin.Float
|
||||
GET_VAR 'value-parameter x: Any' type=kotlin.Any origin=null
|
||||
arg1: TYPE_OP type=kotlin.Double? origin=IMPLICIT_CAST typeOperand=kotlin.Double?
|
||||
GET_VAR 'value-parameter y: Any' type=kotlin.Any origin=null
|
||||
BRANCH
|
||||
if: CONST Boolean type=kotlin.Boolean value=true
|
||||
then: CONST Boolean type=kotlin.Boolean value=false
|
||||
FUN name:testDF visibility:public modality:FINAL <> (x:kotlin.Any, y:kotlin.Any) returnType:Boolean flags:
|
||||
VALUE_PARAMETER name:x index:0 type:kotlin.Any flags:
|
||||
VALUE_PARAMETER name:y index:1 type:kotlin.Any flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='testDF(Any, Any): Boolean'
|
||||
WHEN type=kotlin.Boolean origin=ANDAND
|
||||
BRANCH
|
||||
if: WHEN type=kotlin.Boolean origin=ANDAND
|
||||
BRANCH
|
||||
if: TYPE_OP type=kotlin.Boolean origin=INSTANCEOF typeOperand=kotlin.Double
|
||||
GET_VAR 'value-parameter x: Any' type=kotlin.Any origin=null
|
||||
then: TYPE_OP type=kotlin.Boolean origin=INSTANCEOF typeOperand=kotlin.Float
|
||||
GET_VAR 'value-parameter y: Any' type=kotlin.Any origin=null
|
||||
BRANCH
|
||||
if: CONST Boolean type=kotlin.Boolean value=true
|
||||
then: CONST Boolean type=kotlin.Boolean value=false
|
||||
then: CALL 'ieee754equals(Double?, Double?): Boolean' type=kotlin.Boolean origin=EQEQ
|
||||
arg0: TYPE_OP type=kotlin.Double? origin=IMPLICIT_CAST typeOperand=kotlin.Double?
|
||||
GET_VAR 'value-parameter x: Any' type=kotlin.Any origin=null
|
||||
arg1: CALL 'toDouble(): Double' type=kotlin.Double origin=null
|
||||
$this: TYPE_OP type=kotlin.Float origin=IMPLICIT_CAST typeOperand=kotlin.Float
|
||||
GET_VAR 'value-parameter y: Any' type=kotlin.Any origin=null
|
||||
BRANCH
|
||||
if: CONST Boolean type=kotlin.Boolean value=true
|
||||
then: CONST Boolean type=kotlin.Boolean value=false
|
||||
+23
@@ -0,0 +1,23 @@
|
||||
fun test1d(x: Double, y: Double) = x.equals(y)
|
||||
fun test2d(x: Double, y: Double?) = x.equals(y)
|
||||
fun test3d(x: Double, y: Any) = x.equals(y)
|
||||
fun test4d(x: Double, y: Number) = x.equals(y)
|
||||
fun test5d(x: Double, y: Any) = y is Double && x.equals(y)
|
||||
fun test6d(x: Any, y: Any) = x is Double && y is Double && x.equals(y)
|
||||
|
||||
fun test1f(x: Float, y: Float) = x.equals(y)
|
||||
fun test2f(x: Float, y: Float?) = x.equals(y)
|
||||
fun test3f(x: Float, y: Any) = x.equals(y)
|
||||
fun test4f(x: Float, y: Number) = x.equals(y)
|
||||
fun test5f(x: Float, y: Any) = y is Float && x.equals(y)
|
||||
fun test6f(x: Any, y: Any) = x is Float && y is Float && x.equals(y)
|
||||
|
||||
fun testFD(x: Any, y: Any) = x is Float && y is Double && x.equals(y)
|
||||
fun testDF(x: Any, y: Any) = x is Double && y is Float && x.equals(y)
|
||||
|
||||
fun Float.test1fr(x: Float) = equals(x)
|
||||
fun Float.test2fr(x: Float?) = equals(x)
|
||||
fun Float.test3fr(x: Any) = equals(x)
|
||||
fun Float.test4fr(x: Number) = equals(x)
|
||||
fun Float.test5fr(x: Any) = x is Float && equals(x)
|
||||
fun Float.test6fr(x: Any) = x is Double && equals(x)
|
||||
+245
@@ -0,0 +1,245 @@
|
||||
FILE fqName:<root> fileName:/floatingPointEquals.kt
|
||||
FUN name:test1d visibility:public modality:FINAL <> (x:kotlin.Double, y:kotlin.Double) returnType:Boolean flags:
|
||||
VALUE_PARAMETER name:x index:0 type:kotlin.Double flags:
|
||||
VALUE_PARAMETER name:y index:1 type:kotlin.Double flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='test1d(Double, Double): Boolean'
|
||||
CALL 'equals(Any?): Boolean' type=kotlin.Boolean origin=null
|
||||
$this: GET_VAR 'value-parameter x: Double' type=kotlin.Double origin=null
|
||||
other: GET_VAR 'value-parameter y: Double' type=kotlin.Double origin=null
|
||||
FUN name:test2d visibility:public modality:FINAL <> (x:kotlin.Double, y:kotlin.Double?) returnType:Boolean flags:
|
||||
VALUE_PARAMETER name:x index:0 type:kotlin.Double flags:
|
||||
VALUE_PARAMETER name:y index:1 type:kotlin.Double? flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='test2d(Double, Double?): Boolean'
|
||||
CALL 'equals(Any?): Boolean' type=kotlin.Boolean origin=null
|
||||
$this: GET_VAR 'value-parameter x: Double' type=kotlin.Double origin=null
|
||||
other: GET_VAR 'value-parameter y: Double?' type=kotlin.Double? origin=null
|
||||
FUN name:test3d visibility:public modality:FINAL <> (x:kotlin.Double, y:kotlin.Any) returnType:Boolean flags:
|
||||
VALUE_PARAMETER name:x index:0 type:kotlin.Double flags:
|
||||
VALUE_PARAMETER name:y index:1 type:kotlin.Any flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='test3d(Double, Any): Boolean'
|
||||
CALL 'equals(Any?): Boolean' type=kotlin.Boolean origin=null
|
||||
$this: GET_VAR 'value-parameter x: Double' type=kotlin.Double origin=null
|
||||
other: GET_VAR 'value-parameter y: Any' type=kotlin.Any origin=null
|
||||
FUN name:test4d visibility:public modality:FINAL <> (x:kotlin.Double, y:kotlin.Number) returnType:Boolean flags:
|
||||
VALUE_PARAMETER name:x index:0 type:kotlin.Double flags:
|
||||
VALUE_PARAMETER name:y index:1 type:kotlin.Number flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='test4d(Double, Number): Boolean'
|
||||
CALL 'equals(Any?): Boolean' type=kotlin.Boolean origin=null
|
||||
$this: GET_VAR 'value-parameter x: Double' type=kotlin.Double origin=null
|
||||
other: GET_VAR 'value-parameter y: Number' type=kotlin.Number origin=null
|
||||
FUN name:test5d visibility:public modality:FINAL <> (x:kotlin.Double, y:kotlin.Any) returnType:Boolean flags:
|
||||
VALUE_PARAMETER name:x index:0 type:kotlin.Double flags:
|
||||
VALUE_PARAMETER name:y index:1 type:kotlin.Any flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='test5d(Double, Any): Boolean'
|
||||
WHEN type=kotlin.Boolean origin=ANDAND
|
||||
BRANCH
|
||||
if: TYPE_OP type=kotlin.Boolean origin=INSTANCEOF typeOperand=kotlin.Double
|
||||
GET_VAR 'value-parameter y: Any' type=kotlin.Any origin=null
|
||||
then: CALL 'equals(Any?): Boolean' type=kotlin.Boolean origin=null
|
||||
$this: GET_VAR 'value-parameter x: Double' type=kotlin.Double origin=null
|
||||
other: GET_VAR 'value-parameter y: Any' type=kotlin.Any origin=null
|
||||
BRANCH
|
||||
if: CONST Boolean type=kotlin.Boolean value=true
|
||||
then: CONST Boolean type=kotlin.Boolean value=false
|
||||
FUN name:test6d visibility:public modality:FINAL <> (x:kotlin.Any, y:kotlin.Any) returnType:Boolean flags:
|
||||
VALUE_PARAMETER name:x index:0 type:kotlin.Any flags:
|
||||
VALUE_PARAMETER name:y index:1 type:kotlin.Any flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='test6d(Any, Any): Boolean'
|
||||
WHEN type=kotlin.Boolean origin=ANDAND
|
||||
BRANCH
|
||||
if: WHEN type=kotlin.Boolean origin=ANDAND
|
||||
BRANCH
|
||||
if: TYPE_OP type=kotlin.Boolean origin=INSTANCEOF typeOperand=kotlin.Double
|
||||
GET_VAR 'value-parameter x: Any' type=kotlin.Any origin=null
|
||||
then: TYPE_OP type=kotlin.Boolean origin=INSTANCEOF typeOperand=kotlin.Double
|
||||
GET_VAR 'value-parameter y: Any' type=kotlin.Any origin=null
|
||||
BRANCH
|
||||
if: CONST Boolean type=kotlin.Boolean value=true
|
||||
then: CONST Boolean type=kotlin.Boolean value=false
|
||||
then: CALL 'equals(Any?): Boolean' type=kotlin.Boolean origin=null
|
||||
$this: GET_VAR 'value-parameter x: Any' type=kotlin.Any origin=null
|
||||
other: GET_VAR 'value-parameter y: Any' type=kotlin.Any origin=null
|
||||
BRANCH
|
||||
if: CONST Boolean type=kotlin.Boolean value=true
|
||||
then: CONST Boolean type=kotlin.Boolean value=false
|
||||
FUN name:test1f visibility:public modality:FINAL <> (x:kotlin.Float, y:kotlin.Float) returnType:Boolean flags:
|
||||
VALUE_PARAMETER name:x index:0 type:kotlin.Float flags:
|
||||
VALUE_PARAMETER name:y index:1 type:kotlin.Float flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='test1f(Float, Float): Boolean'
|
||||
CALL 'equals(Any?): Boolean' type=kotlin.Boolean origin=null
|
||||
$this: GET_VAR 'value-parameter x: Float' type=kotlin.Float origin=null
|
||||
other: GET_VAR 'value-parameter y: Float' type=kotlin.Float origin=null
|
||||
FUN name:test2f visibility:public modality:FINAL <> (x:kotlin.Float, y:kotlin.Float?) returnType:Boolean flags:
|
||||
VALUE_PARAMETER name:x index:0 type:kotlin.Float flags:
|
||||
VALUE_PARAMETER name:y index:1 type:kotlin.Float? flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='test2f(Float, Float?): Boolean'
|
||||
CALL 'equals(Any?): Boolean' type=kotlin.Boolean origin=null
|
||||
$this: GET_VAR 'value-parameter x: Float' type=kotlin.Float origin=null
|
||||
other: GET_VAR 'value-parameter y: Float?' type=kotlin.Float? origin=null
|
||||
FUN name:test3f visibility:public modality:FINAL <> (x:kotlin.Float, y:kotlin.Any) returnType:Boolean flags:
|
||||
VALUE_PARAMETER name:x index:0 type:kotlin.Float flags:
|
||||
VALUE_PARAMETER name:y index:1 type:kotlin.Any flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='test3f(Float, Any): Boolean'
|
||||
CALL 'equals(Any?): Boolean' type=kotlin.Boolean origin=null
|
||||
$this: GET_VAR 'value-parameter x: Float' type=kotlin.Float origin=null
|
||||
other: GET_VAR 'value-parameter y: Any' type=kotlin.Any origin=null
|
||||
FUN name:test4f visibility:public modality:FINAL <> (x:kotlin.Float, y:kotlin.Number) returnType:Boolean flags:
|
||||
VALUE_PARAMETER name:x index:0 type:kotlin.Float flags:
|
||||
VALUE_PARAMETER name:y index:1 type:kotlin.Number flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='test4f(Float, Number): Boolean'
|
||||
CALL 'equals(Any?): Boolean' type=kotlin.Boolean origin=null
|
||||
$this: GET_VAR 'value-parameter x: Float' type=kotlin.Float origin=null
|
||||
other: GET_VAR 'value-parameter y: Number' type=kotlin.Number origin=null
|
||||
FUN name:test5f visibility:public modality:FINAL <> (x:kotlin.Float, y:kotlin.Any) returnType:Boolean flags:
|
||||
VALUE_PARAMETER name:x index:0 type:kotlin.Float flags:
|
||||
VALUE_PARAMETER name:y index:1 type:kotlin.Any flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='test5f(Float, Any): Boolean'
|
||||
WHEN type=kotlin.Boolean origin=ANDAND
|
||||
BRANCH
|
||||
if: TYPE_OP type=kotlin.Boolean origin=INSTANCEOF typeOperand=kotlin.Float
|
||||
GET_VAR 'value-parameter y: Any' type=kotlin.Any origin=null
|
||||
then: CALL 'equals(Any?): Boolean' type=kotlin.Boolean origin=null
|
||||
$this: GET_VAR 'value-parameter x: Float' type=kotlin.Float origin=null
|
||||
other: GET_VAR 'value-parameter y: Any' type=kotlin.Any origin=null
|
||||
BRANCH
|
||||
if: CONST Boolean type=kotlin.Boolean value=true
|
||||
then: CONST Boolean type=kotlin.Boolean value=false
|
||||
FUN name:test6f visibility:public modality:FINAL <> (x:kotlin.Any, y:kotlin.Any) returnType:Boolean flags:
|
||||
VALUE_PARAMETER name:x index:0 type:kotlin.Any flags:
|
||||
VALUE_PARAMETER name:y index:1 type:kotlin.Any flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='test6f(Any, Any): Boolean'
|
||||
WHEN type=kotlin.Boolean origin=ANDAND
|
||||
BRANCH
|
||||
if: WHEN type=kotlin.Boolean origin=ANDAND
|
||||
BRANCH
|
||||
if: TYPE_OP type=kotlin.Boolean origin=INSTANCEOF typeOperand=kotlin.Float
|
||||
GET_VAR 'value-parameter x: Any' type=kotlin.Any origin=null
|
||||
then: TYPE_OP type=kotlin.Boolean origin=INSTANCEOF typeOperand=kotlin.Float
|
||||
GET_VAR 'value-parameter y: Any' type=kotlin.Any origin=null
|
||||
BRANCH
|
||||
if: CONST Boolean type=kotlin.Boolean value=true
|
||||
then: CONST Boolean type=kotlin.Boolean value=false
|
||||
then: CALL 'equals(Any?): Boolean' type=kotlin.Boolean origin=null
|
||||
$this: GET_VAR 'value-parameter x: Any' type=kotlin.Any origin=null
|
||||
other: GET_VAR 'value-parameter y: Any' type=kotlin.Any origin=null
|
||||
BRANCH
|
||||
if: CONST Boolean type=kotlin.Boolean value=true
|
||||
then: CONST Boolean type=kotlin.Boolean value=false
|
||||
FUN name:testFD visibility:public modality:FINAL <> (x:kotlin.Any, y:kotlin.Any) returnType:Boolean flags:
|
||||
VALUE_PARAMETER name:x index:0 type:kotlin.Any flags:
|
||||
VALUE_PARAMETER name:y index:1 type:kotlin.Any flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='testFD(Any, Any): Boolean'
|
||||
WHEN type=kotlin.Boolean origin=ANDAND
|
||||
BRANCH
|
||||
if: WHEN type=kotlin.Boolean origin=ANDAND
|
||||
BRANCH
|
||||
if: TYPE_OP type=kotlin.Boolean origin=INSTANCEOF typeOperand=kotlin.Float
|
||||
GET_VAR 'value-parameter x: Any' type=kotlin.Any origin=null
|
||||
then: TYPE_OP type=kotlin.Boolean origin=INSTANCEOF typeOperand=kotlin.Double
|
||||
GET_VAR 'value-parameter y: Any' type=kotlin.Any origin=null
|
||||
BRANCH
|
||||
if: CONST Boolean type=kotlin.Boolean value=true
|
||||
then: CONST Boolean type=kotlin.Boolean value=false
|
||||
then: CALL 'equals(Any?): Boolean' type=kotlin.Boolean origin=null
|
||||
$this: GET_VAR 'value-parameter x: Any' type=kotlin.Any origin=null
|
||||
other: GET_VAR 'value-parameter y: Any' type=kotlin.Any origin=null
|
||||
BRANCH
|
||||
if: CONST Boolean type=kotlin.Boolean value=true
|
||||
then: CONST Boolean type=kotlin.Boolean value=false
|
||||
FUN name:testDF visibility:public modality:FINAL <> (x:kotlin.Any, y:kotlin.Any) returnType:Boolean flags:
|
||||
VALUE_PARAMETER name:x index:0 type:kotlin.Any flags:
|
||||
VALUE_PARAMETER name:y index:1 type:kotlin.Any flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='testDF(Any, Any): Boolean'
|
||||
WHEN type=kotlin.Boolean origin=ANDAND
|
||||
BRANCH
|
||||
if: WHEN type=kotlin.Boolean origin=ANDAND
|
||||
BRANCH
|
||||
if: TYPE_OP type=kotlin.Boolean origin=INSTANCEOF typeOperand=kotlin.Double
|
||||
GET_VAR 'value-parameter x: Any' type=kotlin.Any origin=null
|
||||
then: TYPE_OP type=kotlin.Boolean origin=INSTANCEOF typeOperand=kotlin.Float
|
||||
GET_VAR 'value-parameter y: Any' type=kotlin.Any origin=null
|
||||
BRANCH
|
||||
if: CONST Boolean type=kotlin.Boolean value=true
|
||||
then: CONST Boolean type=kotlin.Boolean value=false
|
||||
then: CALL 'equals(Any?): Boolean' type=kotlin.Boolean origin=null
|
||||
$this: GET_VAR 'value-parameter x: Any' type=kotlin.Any origin=null
|
||||
other: GET_VAR 'value-parameter y: Any' type=kotlin.Any origin=null
|
||||
BRANCH
|
||||
if: CONST Boolean type=kotlin.Boolean value=true
|
||||
then: CONST Boolean type=kotlin.Boolean value=false
|
||||
FUN name:test1fr visibility:public modality:FINAL <> ($receiver:kotlin.Float, x:kotlin.Float) returnType:Boolean flags:
|
||||
$receiver: VALUE_PARAMETER name:<this> type:kotlin.Float flags:
|
||||
VALUE_PARAMETER name:x index:0 type:kotlin.Float flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='test1fr(Float) on Float: Boolean'
|
||||
CALL 'equals(Any?): Boolean' type=kotlin.Boolean origin=null
|
||||
$this: GET_VAR 'this@test1fr: Float' type=kotlin.Float origin=null
|
||||
other: GET_VAR 'value-parameter x: Float' type=kotlin.Float origin=null
|
||||
FUN name:test2fr visibility:public modality:FINAL <> ($receiver:kotlin.Float, x:kotlin.Float?) returnType:Boolean flags:
|
||||
$receiver: VALUE_PARAMETER name:<this> type:kotlin.Float flags:
|
||||
VALUE_PARAMETER name:x index:0 type:kotlin.Float? flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='test2fr(Float?) on Float: Boolean'
|
||||
CALL 'equals(Any?): Boolean' type=kotlin.Boolean origin=null
|
||||
$this: GET_VAR 'this@test2fr: Float' type=kotlin.Float origin=null
|
||||
other: GET_VAR 'value-parameter x: Float?' type=kotlin.Float? origin=null
|
||||
FUN name:test3fr visibility:public modality:FINAL <> ($receiver:kotlin.Float, x:kotlin.Any) returnType:Boolean flags:
|
||||
$receiver: VALUE_PARAMETER name:<this> type:kotlin.Float flags:
|
||||
VALUE_PARAMETER name:x index:0 type:kotlin.Any flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='test3fr(Any) on Float: Boolean'
|
||||
CALL 'equals(Any?): Boolean' type=kotlin.Boolean origin=null
|
||||
$this: GET_VAR 'this@test3fr: Float' type=kotlin.Float origin=null
|
||||
other: GET_VAR 'value-parameter x: Any' type=kotlin.Any origin=null
|
||||
FUN name:test4fr visibility:public modality:FINAL <> ($receiver:kotlin.Float, x:kotlin.Number) returnType:Boolean flags:
|
||||
$receiver: VALUE_PARAMETER name:<this> type:kotlin.Float flags:
|
||||
VALUE_PARAMETER name:x index:0 type:kotlin.Number flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='test4fr(Number) on Float: Boolean'
|
||||
CALL 'equals(Any?): Boolean' type=kotlin.Boolean origin=null
|
||||
$this: GET_VAR 'this@test4fr: Float' type=kotlin.Float origin=null
|
||||
other: GET_VAR 'value-parameter x: Number' type=kotlin.Number origin=null
|
||||
FUN name:test5fr visibility:public modality:FINAL <> ($receiver:kotlin.Float, x:kotlin.Any) returnType:Boolean flags:
|
||||
$receiver: VALUE_PARAMETER name:<this> type:kotlin.Float flags:
|
||||
VALUE_PARAMETER name:x index:0 type:kotlin.Any flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='test5fr(Any) on Float: Boolean'
|
||||
WHEN type=kotlin.Boolean origin=ANDAND
|
||||
BRANCH
|
||||
if: TYPE_OP type=kotlin.Boolean origin=INSTANCEOF typeOperand=kotlin.Float
|
||||
GET_VAR 'value-parameter x: Any' type=kotlin.Any origin=null
|
||||
then: CALL 'equals(Any?): Boolean' type=kotlin.Boolean origin=null
|
||||
$this: GET_VAR 'this@test5fr: Float' type=kotlin.Float origin=null
|
||||
other: GET_VAR 'value-parameter x: Any' type=kotlin.Any origin=null
|
||||
BRANCH
|
||||
if: CONST Boolean type=kotlin.Boolean value=true
|
||||
then: CONST Boolean type=kotlin.Boolean value=false
|
||||
FUN name:test6fr visibility:public modality:FINAL <> ($receiver:kotlin.Float, x:kotlin.Any) returnType:Boolean flags:
|
||||
$receiver: VALUE_PARAMETER name:<this> type:kotlin.Float flags:
|
||||
VALUE_PARAMETER name:x index:0 type:kotlin.Any flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='test6fr(Any) on Float: Boolean'
|
||||
WHEN type=kotlin.Boolean origin=ANDAND
|
||||
BRANCH
|
||||
if: TYPE_OP type=kotlin.Boolean origin=INSTANCEOF typeOperand=kotlin.Double
|
||||
GET_VAR 'value-parameter x: Any' type=kotlin.Any origin=null
|
||||
then: CALL 'equals(Any?): Boolean' type=kotlin.Boolean origin=null
|
||||
$this: GET_VAR 'this@test6fr: Float' type=kotlin.Float origin=null
|
||||
other: GET_VAR 'value-parameter x: Any' type=kotlin.Any origin=null
|
||||
BRANCH
|
||||
if: CONST Boolean type=kotlin.Boolean value=true
|
||||
then: CONST Boolean type=kotlin.Boolean value=false
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
fun test1d(x: Double, y: Double) = x != y
|
||||
fun test2d(x: Double, y: Double?) = x != y
|
||||
fun test3d(x: Double, y: Any) = x != y
|
||||
fun test4d(x: Double, y: Number) = x != y
|
||||
fun test5d(x: Double, y: Any) = y is Double && x != y
|
||||
fun test6d(x: Any, y: Any) = x is Double && y is Double && x != y
|
||||
|
||||
fun test1f(x: Float, y: Float) = x != y
|
||||
fun test2f(x: Float, y: Float?) = x != y
|
||||
fun test3f(x: Float, y: Any) = x != y
|
||||
fun test4f(x: Float, y: Number) = x != y
|
||||
fun test5f(x: Float, y: Any) = y is Float && x != y
|
||||
fun test6f(x: Any, y: Any) = x is Float && y is Float && x != y
|
||||
|
||||
// The following possibly should not compile (but so far it does)
|
||||
// because of EQUALITY_NOT_APPLICABLE.
|
||||
fun testFD(x: Any, y: Any) = x is Float && y is Double && x != y
|
||||
fun testDF(x: Any, y: Any) = x is Double && y is Float && x != y
|
||||
+209
@@ -0,0 +1,209 @@
|
||||
FILE fqName:<root> fileName:/floatingPointExcleq.kt
|
||||
FUN name:test1d visibility:public modality:FINAL <> (x:kotlin.Double, y:kotlin.Double) returnType:Boolean flags:
|
||||
VALUE_PARAMETER name:x index:0 type:kotlin.Double flags:
|
||||
VALUE_PARAMETER name:y index:1 type:kotlin.Double flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='test1d(Double, Double): Boolean'
|
||||
CALL 'NOT(Boolean): Boolean' type=kotlin.Boolean origin=EXCLEQ
|
||||
arg0: CALL 'ieee754equals(Double?, Double?): Boolean' type=kotlin.Boolean origin=EXCLEQ
|
||||
arg0: GET_VAR 'value-parameter x: Double' type=kotlin.Double origin=null
|
||||
arg1: GET_VAR 'value-parameter y: Double' type=kotlin.Double origin=null
|
||||
FUN name:test2d visibility:public modality:FINAL <> (x:kotlin.Double, y:kotlin.Double?) returnType:Boolean flags:
|
||||
VALUE_PARAMETER name:x index:0 type:kotlin.Double flags:
|
||||
VALUE_PARAMETER name:y index:1 type:kotlin.Double? flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='test2d(Double, Double?): Boolean'
|
||||
CALL 'NOT(Boolean): Boolean' type=kotlin.Boolean origin=EXCLEQ
|
||||
arg0: CALL 'ieee754equals(Double?, Double?): Boolean' type=kotlin.Boolean origin=EXCLEQ
|
||||
arg0: GET_VAR 'value-parameter x: Double' type=kotlin.Double origin=null
|
||||
arg1: GET_VAR 'value-parameter y: Double?' type=kotlin.Double? origin=null
|
||||
FUN name:test3d visibility:public modality:FINAL <> (x:kotlin.Double, y:kotlin.Any) returnType:Boolean flags:
|
||||
VALUE_PARAMETER name:x index:0 type:kotlin.Double flags:
|
||||
VALUE_PARAMETER name:y index:1 type:kotlin.Any flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='test3d(Double, Any): Boolean'
|
||||
CALL 'NOT(Boolean): Boolean' type=kotlin.Boolean origin=EXCLEQ
|
||||
arg0: CALL 'EQEQ(Any?, Any?): Boolean' type=kotlin.Boolean origin=EXCLEQ
|
||||
arg0: GET_VAR 'value-parameter x: Double' type=kotlin.Double origin=null
|
||||
arg1: GET_VAR 'value-parameter y: Any' type=kotlin.Any origin=null
|
||||
FUN name:test4d visibility:public modality:FINAL <> (x:kotlin.Double, y:kotlin.Number) returnType:Boolean flags:
|
||||
VALUE_PARAMETER name:x index:0 type:kotlin.Double flags:
|
||||
VALUE_PARAMETER name:y index:1 type:kotlin.Number flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='test4d(Double, Number): Boolean'
|
||||
CALL 'NOT(Boolean): Boolean' type=kotlin.Boolean origin=EXCLEQ
|
||||
arg0: CALL 'EQEQ(Any?, Any?): Boolean' type=kotlin.Boolean origin=EXCLEQ
|
||||
arg0: GET_VAR 'value-parameter x: Double' type=kotlin.Double origin=null
|
||||
arg1: GET_VAR 'value-parameter y: Number' type=kotlin.Number origin=null
|
||||
FUN name:test5d visibility:public modality:FINAL <> (x:kotlin.Double, y:kotlin.Any) returnType:Boolean flags:
|
||||
VALUE_PARAMETER name:x index:0 type:kotlin.Double flags:
|
||||
VALUE_PARAMETER name:y index:1 type:kotlin.Any flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='test5d(Double, Any): Boolean'
|
||||
WHEN type=kotlin.Boolean origin=ANDAND
|
||||
BRANCH
|
||||
if: TYPE_OP type=kotlin.Boolean origin=INSTANCEOF typeOperand=kotlin.Double
|
||||
GET_VAR 'value-parameter y: Any' type=kotlin.Any origin=null
|
||||
then: CALL 'NOT(Boolean): Boolean' type=kotlin.Boolean origin=EXCLEQ
|
||||
arg0: CALL 'ieee754equals(Double?, Double?): Boolean' type=kotlin.Boolean origin=EXCLEQ
|
||||
arg0: GET_VAR 'value-parameter x: Double' type=kotlin.Double origin=null
|
||||
arg1: TYPE_OP type=kotlin.Double? origin=IMPLICIT_CAST typeOperand=kotlin.Double?
|
||||
GET_VAR 'value-parameter y: Any' type=kotlin.Any origin=null
|
||||
BRANCH
|
||||
if: CONST Boolean type=kotlin.Boolean value=true
|
||||
then: CONST Boolean type=kotlin.Boolean value=false
|
||||
FUN name:test6d visibility:public modality:FINAL <> (x:kotlin.Any, y:kotlin.Any) returnType:Boolean flags:
|
||||
VALUE_PARAMETER name:x index:0 type:kotlin.Any flags:
|
||||
VALUE_PARAMETER name:y index:1 type:kotlin.Any flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='test6d(Any, Any): Boolean'
|
||||
WHEN type=kotlin.Boolean origin=ANDAND
|
||||
BRANCH
|
||||
if: WHEN type=kotlin.Boolean origin=ANDAND
|
||||
BRANCH
|
||||
if: TYPE_OP type=kotlin.Boolean origin=INSTANCEOF typeOperand=kotlin.Double
|
||||
GET_VAR 'value-parameter x: Any' type=kotlin.Any origin=null
|
||||
then: TYPE_OP type=kotlin.Boolean origin=INSTANCEOF typeOperand=kotlin.Double
|
||||
GET_VAR 'value-parameter y: Any' type=kotlin.Any origin=null
|
||||
BRANCH
|
||||
if: CONST Boolean type=kotlin.Boolean value=true
|
||||
then: CONST Boolean type=kotlin.Boolean value=false
|
||||
then: CALL 'NOT(Boolean): Boolean' type=kotlin.Boolean origin=EXCLEQ
|
||||
arg0: CALL 'ieee754equals(Double?, Double?): Boolean' type=kotlin.Boolean origin=EXCLEQ
|
||||
arg0: TYPE_OP type=kotlin.Double? origin=IMPLICIT_CAST typeOperand=kotlin.Double?
|
||||
GET_VAR 'value-parameter x: Any' type=kotlin.Any origin=null
|
||||
arg1: TYPE_OP type=kotlin.Double? origin=IMPLICIT_CAST typeOperand=kotlin.Double?
|
||||
GET_VAR 'value-parameter y: Any' type=kotlin.Any origin=null
|
||||
BRANCH
|
||||
if: CONST Boolean type=kotlin.Boolean value=true
|
||||
then: CONST Boolean type=kotlin.Boolean value=false
|
||||
FUN name:test1f visibility:public modality:FINAL <> (x:kotlin.Float, y:kotlin.Float) returnType:Boolean flags:
|
||||
VALUE_PARAMETER name:x index:0 type:kotlin.Float flags:
|
||||
VALUE_PARAMETER name:y index:1 type:kotlin.Float flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='test1f(Float, Float): Boolean'
|
||||
CALL 'NOT(Boolean): Boolean' type=kotlin.Boolean origin=EXCLEQ
|
||||
arg0: CALL 'ieee754equals(Float?, Float?): Boolean' type=kotlin.Boolean origin=EXCLEQ
|
||||
arg0: GET_VAR 'value-parameter x: Float' type=kotlin.Float origin=null
|
||||
arg1: GET_VAR 'value-parameter y: Float' type=kotlin.Float origin=null
|
||||
FUN name:test2f visibility:public modality:FINAL <> (x:kotlin.Float, y:kotlin.Float?) returnType:Boolean flags:
|
||||
VALUE_PARAMETER name:x index:0 type:kotlin.Float flags:
|
||||
VALUE_PARAMETER name:y index:1 type:kotlin.Float? flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='test2f(Float, Float?): Boolean'
|
||||
CALL 'NOT(Boolean): Boolean' type=kotlin.Boolean origin=EXCLEQ
|
||||
arg0: CALL 'ieee754equals(Float?, Float?): Boolean' type=kotlin.Boolean origin=EXCLEQ
|
||||
arg0: GET_VAR 'value-parameter x: Float' type=kotlin.Float origin=null
|
||||
arg1: GET_VAR 'value-parameter y: Float?' type=kotlin.Float? origin=null
|
||||
FUN name:test3f visibility:public modality:FINAL <> (x:kotlin.Float, y:kotlin.Any) returnType:Boolean flags:
|
||||
VALUE_PARAMETER name:x index:0 type:kotlin.Float flags:
|
||||
VALUE_PARAMETER name:y index:1 type:kotlin.Any flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='test3f(Float, Any): Boolean'
|
||||
CALL 'NOT(Boolean): Boolean' type=kotlin.Boolean origin=EXCLEQ
|
||||
arg0: CALL 'EQEQ(Any?, Any?): Boolean' type=kotlin.Boolean origin=EXCLEQ
|
||||
arg0: GET_VAR 'value-parameter x: Float' type=kotlin.Float origin=null
|
||||
arg1: GET_VAR 'value-parameter y: Any' type=kotlin.Any origin=null
|
||||
FUN name:test4f visibility:public modality:FINAL <> (x:kotlin.Float, y:kotlin.Number) returnType:Boolean flags:
|
||||
VALUE_PARAMETER name:x index:0 type:kotlin.Float flags:
|
||||
VALUE_PARAMETER name:y index:1 type:kotlin.Number flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='test4f(Float, Number): Boolean'
|
||||
CALL 'NOT(Boolean): Boolean' type=kotlin.Boolean origin=EXCLEQ
|
||||
arg0: CALL 'EQEQ(Any?, Any?): Boolean' type=kotlin.Boolean origin=EXCLEQ
|
||||
arg0: GET_VAR 'value-parameter x: Float' type=kotlin.Float origin=null
|
||||
arg1: GET_VAR 'value-parameter y: Number' type=kotlin.Number origin=null
|
||||
FUN name:test5f visibility:public modality:FINAL <> (x:kotlin.Float, y:kotlin.Any) returnType:Boolean flags:
|
||||
VALUE_PARAMETER name:x index:0 type:kotlin.Float flags:
|
||||
VALUE_PARAMETER name:y index:1 type:kotlin.Any flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='test5f(Float, Any): Boolean'
|
||||
WHEN type=kotlin.Boolean origin=ANDAND
|
||||
BRANCH
|
||||
if: TYPE_OP type=kotlin.Boolean origin=INSTANCEOF typeOperand=kotlin.Float
|
||||
GET_VAR 'value-parameter y: Any' type=kotlin.Any origin=null
|
||||
then: CALL 'NOT(Boolean): Boolean' type=kotlin.Boolean origin=EXCLEQ
|
||||
arg0: CALL 'ieee754equals(Float?, Float?): Boolean' type=kotlin.Boolean origin=EXCLEQ
|
||||
arg0: GET_VAR 'value-parameter x: Float' type=kotlin.Float origin=null
|
||||
arg1: TYPE_OP type=kotlin.Float? origin=IMPLICIT_CAST typeOperand=kotlin.Float?
|
||||
GET_VAR 'value-parameter y: Any' type=kotlin.Any origin=null
|
||||
BRANCH
|
||||
if: CONST Boolean type=kotlin.Boolean value=true
|
||||
then: CONST Boolean type=kotlin.Boolean value=false
|
||||
FUN name:test6f visibility:public modality:FINAL <> (x:kotlin.Any, y:kotlin.Any) returnType:Boolean flags:
|
||||
VALUE_PARAMETER name:x index:0 type:kotlin.Any flags:
|
||||
VALUE_PARAMETER name:y index:1 type:kotlin.Any flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='test6f(Any, Any): Boolean'
|
||||
WHEN type=kotlin.Boolean origin=ANDAND
|
||||
BRANCH
|
||||
if: WHEN type=kotlin.Boolean origin=ANDAND
|
||||
BRANCH
|
||||
if: TYPE_OP type=kotlin.Boolean origin=INSTANCEOF typeOperand=kotlin.Float
|
||||
GET_VAR 'value-parameter x: Any' type=kotlin.Any origin=null
|
||||
then: TYPE_OP type=kotlin.Boolean origin=INSTANCEOF typeOperand=kotlin.Float
|
||||
GET_VAR 'value-parameter y: Any' type=kotlin.Any origin=null
|
||||
BRANCH
|
||||
if: CONST Boolean type=kotlin.Boolean value=true
|
||||
then: CONST Boolean type=kotlin.Boolean value=false
|
||||
then: CALL 'NOT(Boolean): Boolean' type=kotlin.Boolean origin=EXCLEQ
|
||||
arg0: CALL 'ieee754equals(Float?, Float?): Boolean' type=kotlin.Boolean origin=EXCLEQ
|
||||
arg0: TYPE_OP type=kotlin.Float? origin=IMPLICIT_CAST typeOperand=kotlin.Float?
|
||||
GET_VAR 'value-parameter x: Any' type=kotlin.Any origin=null
|
||||
arg1: TYPE_OP type=kotlin.Float? origin=IMPLICIT_CAST typeOperand=kotlin.Float?
|
||||
GET_VAR 'value-parameter y: Any' type=kotlin.Any origin=null
|
||||
BRANCH
|
||||
if: CONST Boolean type=kotlin.Boolean value=true
|
||||
then: CONST Boolean type=kotlin.Boolean value=false
|
||||
FUN name:testFD visibility:public modality:FINAL <> (x:kotlin.Any, y:kotlin.Any) returnType:Boolean flags:
|
||||
VALUE_PARAMETER name:x index:0 type:kotlin.Any flags:
|
||||
VALUE_PARAMETER name:y index:1 type:kotlin.Any flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='testFD(Any, Any): Boolean'
|
||||
WHEN type=kotlin.Boolean origin=ANDAND
|
||||
BRANCH
|
||||
if: WHEN type=kotlin.Boolean origin=ANDAND
|
||||
BRANCH
|
||||
if: TYPE_OP type=kotlin.Boolean origin=INSTANCEOF typeOperand=kotlin.Float
|
||||
GET_VAR 'value-parameter x: Any' type=kotlin.Any origin=null
|
||||
then: TYPE_OP type=kotlin.Boolean origin=INSTANCEOF typeOperand=kotlin.Double
|
||||
GET_VAR 'value-parameter y: Any' type=kotlin.Any origin=null
|
||||
BRANCH
|
||||
if: CONST Boolean type=kotlin.Boolean value=true
|
||||
then: CONST Boolean type=kotlin.Boolean value=false
|
||||
then: CALL 'NOT(Boolean): Boolean' type=kotlin.Boolean origin=EXCLEQ
|
||||
arg0: CALL 'ieee754equals(Double?, Double?): Boolean' type=kotlin.Boolean origin=EXCLEQ
|
||||
arg0: CALL 'toDouble(): Double' type=kotlin.Double origin=null
|
||||
$this: TYPE_OP type=kotlin.Float origin=IMPLICIT_CAST typeOperand=kotlin.Float
|
||||
GET_VAR 'value-parameter x: Any' type=kotlin.Any origin=null
|
||||
arg1: TYPE_OP type=kotlin.Double? origin=IMPLICIT_CAST typeOperand=kotlin.Double?
|
||||
GET_VAR 'value-parameter y: Any' type=kotlin.Any origin=null
|
||||
BRANCH
|
||||
if: CONST Boolean type=kotlin.Boolean value=true
|
||||
then: CONST Boolean type=kotlin.Boolean value=false
|
||||
FUN name:testDF visibility:public modality:FINAL <> (x:kotlin.Any, y:kotlin.Any) returnType:Boolean flags:
|
||||
VALUE_PARAMETER name:x index:0 type:kotlin.Any flags:
|
||||
VALUE_PARAMETER name:y index:1 type:kotlin.Any flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='testDF(Any, Any): Boolean'
|
||||
WHEN type=kotlin.Boolean origin=ANDAND
|
||||
BRANCH
|
||||
if: WHEN type=kotlin.Boolean origin=ANDAND
|
||||
BRANCH
|
||||
if: TYPE_OP type=kotlin.Boolean origin=INSTANCEOF typeOperand=kotlin.Double
|
||||
GET_VAR 'value-parameter x: Any' type=kotlin.Any origin=null
|
||||
then: TYPE_OP type=kotlin.Boolean origin=INSTANCEOF typeOperand=kotlin.Float
|
||||
GET_VAR 'value-parameter y: Any' type=kotlin.Any origin=null
|
||||
BRANCH
|
||||
if: CONST Boolean type=kotlin.Boolean value=true
|
||||
then: CONST Boolean type=kotlin.Boolean value=false
|
||||
then: CALL 'NOT(Boolean): Boolean' type=kotlin.Boolean origin=EXCLEQ
|
||||
arg0: CALL 'ieee754equals(Double?, Double?): Boolean' type=kotlin.Boolean origin=EXCLEQ
|
||||
arg0: TYPE_OP type=kotlin.Double? origin=IMPLICIT_CAST typeOperand=kotlin.Double?
|
||||
GET_VAR 'value-parameter x: Any' type=kotlin.Any origin=null
|
||||
arg1: CALL 'toDouble(): Double' type=kotlin.Double origin=null
|
||||
$this: TYPE_OP type=kotlin.Float origin=IMPLICIT_CAST typeOperand=kotlin.Float
|
||||
GET_VAR 'value-parameter y: Any' type=kotlin.Any origin=null
|
||||
BRANCH
|
||||
if: CONST Boolean type=kotlin.Boolean value=true
|
||||
then: CONST Boolean type=kotlin.Boolean value=false
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
fun test1d(x: Double, y: Double) = x < y
|
||||
fun test2d(x: Double, y: Any) = y is Double && x < y
|
||||
fun test3d(x: Any, y: Any) = x is Double && y is Double && x < y
|
||||
|
||||
fun test1f(x: Float, y: Float) = x < y
|
||||
fun test2f(x: Float, y: Any) = y is Float && x < y
|
||||
fun test3f(x: Any, y: Any) = x is Float && y is Float && x < y
|
||||
|
||||
fun testFD(x: Any, y: Any) = x is Float && y is Double && x < y
|
||||
fun testDF(x: Any, y: Any) = x is Double && y is Float && x < y
|
||||
+147
@@ -0,0 +1,147 @@
|
||||
FILE fqName:<root> fileName:/floatingPointLess.kt
|
||||
FUN name:test1d visibility:public modality:FINAL <> (x:kotlin.Double, y:kotlin.Double) returnType:Boolean flags:
|
||||
VALUE_PARAMETER name:x index:0 type:kotlin.Double flags:
|
||||
VALUE_PARAMETER name:y index:1 type:kotlin.Double flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='test1d(Double, Double): Boolean'
|
||||
CALL 'less(Double, Double): Boolean' type=kotlin.Boolean origin=LT
|
||||
arg0: GET_VAR 'value-parameter x: Double' type=kotlin.Double origin=null
|
||||
arg1: GET_VAR 'value-parameter y: Double' type=kotlin.Double origin=null
|
||||
FUN name:test2d visibility:public modality:FINAL <> (x:kotlin.Double, y:kotlin.Any) returnType:Boolean flags:
|
||||
VALUE_PARAMETER name:x index:0 type:kotlin.Double flags:
|
||||
VALUE_PARAMETER name:y index:1 type:kotlin.Any flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='test2d(Double, Any): Boolean'
|
||||
WHEN type=kotlin.Boolean origin=ANDAND
|
||||
BRANCH
|
||||
if: TYPE_OP type=kotlin.Boolean origin=INSTANCEOF typeOperand=kotlin.Double
|
||||
GET_VAR 'value-parameter y: Any' type=kotlin.Any origin=null
|
||||
then: CALL 'less(Double, Double): Boolean' type=kotlin.Boolean origin=LT
|
||||
arg0: GET_VAR 'value-parameter x: Double' type=kotlin.Double origin=null
|
||||
arg1: TYPE_OP type=kotlin.Double origin=IMPLICIT_CAST typeOperand=kotlin.Double
|
||||
GET_VAR 'value-parameter y: Any' type=kotlin.Any origin=null
|
||||
BRANCH
|
||||
if: CONST Boolean type=kotlin.Boolean value=true
|
||||
then: CONST Boolean type=kotlin.Boolean value=false
|
||||
FUN name:test3d visibility:public modality:FINAL <> (x:kotlin.Any, y:kotlin.Any) returnType:Boolean flags:
|
||||
VALUE_PARAMETER name:x index:0 type:kotlin.Any flags:
|
||||
VALUE_PARAMETER name:y index:1 type:kotlin.Any flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='test3d(Any, Any): Boolean'
|
||||
WHEN type=kotlin.Boolean origin=ANDAND
|
||||
BRANCH
|
||||
if: WHEN type=kotlin.Boolean origin=ANDAND
|
||||
BRANCH
|
||||
if: TYPE_OP type=kotlin.Boolean origin=INSTANCEOF typeOperand=kotlin.Double
|
||||
GET_VAR 'value-parameter x: Any' type=kotlin.Any origin=null
|
||||
then: TYPE_OP type=kotlin.Boolean origin=INSTANCEOF typeOperand=kotlin.Double
|
||||
GET_VAR 'value-parameter y: Any' type=kotlin.Any origin=null
|
||||
BRANCH
|
||||
if: CONST Boolean type=kotlin.Boolean value=true
|
||||
then: CONST Boolean type=kotlin.Boolean value=false
|
||||
then: CALL 'less(Double, Double): Boolean' type=kotlin.Boolean origin=LT
|
||||
arg0: TYPE_OP type=kotlin.Double origin=IMPLICIT_CAST typeOperand=kotlin.Double
|
||||
GET_VAR 'value-parameter x: Any' type=kotlin.Any origin=null
|
||||
arg1: TYPE_OP type=kotlin.Double origin=IMPLICIT_CAST typeOperand=kotlin.Double
|
||||
GET_VAR 'value-parameter y: Any' type=kotlin.Any origin=null
|
||||
BRANCH
|
||||
if: CONST Boolean type=kotlin.Boolean value=true
|
||||
then: CONST Boolean type=kotlin.Boolean value=false
|
||||
FUN name:test1f visibility:public modality:FINAL <> (x:kotlin.Float, y:kotlin.Float) returnType:Boolean flags:
|
||||
VALUE_PARAMETER name:x index:0 type:kotlin.Float flags:
|
||||
VALUE_PARAMETER name:y index:1 type:kotlin.Float flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='test1f(Float, Float): Boolean'
|
||||
CALL 'less(Float, Float): Boolean' type=kotlin.Boolean origin=LT
|
||||
arg0: GET_VAR 'value-parameter x: Float' type=kotlin.Float origin=null
|
||||
arg1: GET_VAR 'value-parameter y: Float' type=kotlin.Float origin=null
|
||||
FUN name:test2f visibility:public modality:FINAL <> (x:kotlin.Float, y:kotlin.Any) returnType:Boolean flags:
|
||||
VALUE_PARAMETER name:x index:0 type:kotlin.Float flags:
|
||||
VALUE_PARAMETER name:y index:1 type:kotlin.Any flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='test2f(Float, Any): Boolean'
|
||||
WHEN type=kotlin.Boolean origin=ANDAND
|
||||
BRANCH
|
||||
if: TYPE_OP type=kotlin.Boolean origin=INSTANCEOF typeOperand=kotlin.Float
|
||||
GET_VAR 'value-parameter y: Any' type=kotlin.Any origin=null
|
||||
then: CALL 'less(Float, Float): Boolean' type=kotlin.Boolean origin=LT
|
||||
arg0: GET_VAR 'value-parameter x: Float' type=kotlin.Float origin=null
|
||||
arg1: TYPE_OP type=kotlin.Float origin=IMPLICIT_CAST typeOperand=kotlin.Float
|
||||
GET_VAR 'value-parameter y: Any' type=kotlin.Any origin=null
|
||||
BRANCH
|
||||
if: CONST Boolean type=kotlin.Boolean value=true
|
||||
then: CONST Boolean type=kotlin.Boolean value=false
|
||||
FUN name:test3f visibility:public modality:FINAL <> (x:kotlin.Any, y:kotlin.Any) returnType:Boolean flags:
|
||||
VALUE_PARAMETER name:x index:0 type:kotlin.Any flags:
|
||||
VALUE_PARAMETER name:y index:1 type:kotlin.Any flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='test3f(Any, Any): Boolean'
|
||||
WHEN type=kotlin.Boolean origin=ANDAND
|
||||
BRANCH
|
||||
if: WHEN type=kotlin.Boolean origin=ANDAND
|
||||
BRANCH
|
||||
if: TYPE_OP type=kotlin.Boolean origin=INSTANCEOF typeOperand=kotlin.Float
|
||||
GET_VAR 'value-parameter x: Any' type=kotlin.Any origin=null
|
||||
then: TYPE_OP type=kotlin.Boolean origin=INSTANCEOF typeOperand=kotlin.Float
|
||||
GET_VAR 'value-parameter y: Any' type=kotlin.Any origin=null
|
||||
BRANCH
|
||||
if: CONST Boolean type=kotlin.Boolean value=true
|
||||
then: CONST Boolean type=kotlin.Boolean value=false
|
||||
then: CALL 'less(Float, Float): Boolean' type=kotlin.Boolean origin=LT
|
||||
arg0: TYPE_OP type=kotlin.Float origin=IMPLICIT_CAST typeOperand=kotlin.Float
|
||||
GET_VAR 'value-parameter x: Any' type=kotlin.Any origin=null
|
||||
arg1: TYPE_OP type=kotlin.Float origin=IMPLICIT_CAST typeOperand=kotlin.Float
|
||||
GET_VAR 'value-parameter y: Any' type=kotlin.Any origin=null
|
||||
BRANCH
|
||||
if: CONST Boolean type=kotlin.Boolean value=true
|
||||
then: CONST Boolean type=kotlin.Boolean value=false
|
||||
FUN name:testFD visibility:public modality:FINAL <> (x:kotlin.Any, y:kotlin.Any) returnType:Boolean flags:
|
||||
VALUE_PARAMETER name:x index:0 type:kotlin.Any flags:
|
||||
VALUE_PARAMETER name:y index:1 type:kotlin.Any flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='testFD(Any, Any): Boolean'
|
||||
WHEN type=kotlin.Boolean origin=ANDAND
|
||||
BRANCH
|
||||
if: WHEN type=kotlin.Boolean origin=ANDAND
|
||||
BRANCH
|
||||
if: TYPE_OP type=kotlin.Boolean origin=INSTANCEOF typeOperand=kotlin.Float
|
||||
GET_VAR 'value-parameter x: Any' type=kotlin.Any origin=null
|
||||
then: TYPE_OP type=kotlin.Boolean origin=INSTANCEOF typeOperand=kotlin.Double
|
||||
GET_VAR 'value-parameter y: Any' type=kotlin.Any origin=null
|
||||
BRANCH
|
||||
if: CONST Boolean type=kotlin.Boolean value=true
|
||||
then: CONST Boolean type=kotlin.Boolean value=false
|
||||
then: CALL 'less(Double, Double): Boolean' type=kotlin.Boolean origin=LT
|
||||
arg0: CALL 'toDouble(): Double' type=kotlin.Double origin=null
|
||||
$this: TYPE_OP type=kotlin.Float origin=IMPLICIT_CAST typeOperand=kotlin.Float
|
||||
GET_VAR 'value-parameter x: Any' type=kotlin.Any origin=null
|
||||
arg1: TYPE_OP type=kotlin.Double origin=IMPLICIT_CAST typeOperand=kotlin.Double
|
||||
GET_VAR 'value-parameter y: Any' type=kotlin.Any origin=null
|
||||
BRANCH
|
||||
if: CONST Boolean type=kotlin.Boolean value=true
|
||||
then: CONST Boolean type=kotlin.Boolean value=false
|
||||
FUN name:testDF visibility:public modality:FINAL <> (x:kotlin.Any, y:kotlin.Any) returnType:Boolean flags:
|
||||
VALUE_PARAMETER name:x index:0 type:kotlin.Any flags:
|
||||
VALUE_PARAMETER name:y index:1 type:kotlin.Any flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='testDF(Any, Any): Boolean'
|
||||
WHEN type=kotlin.Boolean origin=ANDAND
|
||||
BRANCH
|
||||
if: WHEN type=kotlin.Boolean origin=ANDAND
|
||||
BRANCH
|
||||
if: TYPE_OP type=kotlin.Boolean origin=INSTANCEOF typeOperand=kotlin.Double
|
||||
GET_VAR 'value-parameter x: Any' type=kotlin.Any origin=null
|
||||
then: TYPE_OP type=kotlin.Boolean origin=INSTANCEOF typeOperand=kotlin.Float
|
||||
GET_VAR 'value-parameter y: Any' type=kotlin.Any origin=null
|
||||
BRANCH
|
||||
if: CONST Boolean type=kotlin.Boolean value=true
|
||||
then: CONST Boolean type=kotlin.Boolean value=false
|
||||
then: CALL 'less(Double, Double): Boolean' type=kotlin.Boolean origin=LT
|
||||
arg0: TYPE_OP type=kotlin.Double origin=IMPLICIT_CAST typeOperand=kotlin.Double
|
||||
GET_VAR 'value-parameter x: Any' type=kotlin.Any origin=null
|
||||
arg1: CALL 'toDouble(): Double' type=kotlin.Double origin=null
|
||||
$this: TYPE_OP type=kotlin.Float origin=IMPLICIT_CAST typeOperand=kotlin.Float
|
||||
GET_VAR 'value-parameter y: Any' type=kotlin.Any origin=null
|
||||
BRANCH
|
||||
if: CONST Boolean type=kotlin.Boolean value=true
|
||||
then: CONST Boolean type=kotlin.Boolean value=false
|
||||
Vendored
+2
@@ -0,0 +1,2 @@
|
||||
fun test(x: Any?, y: Double) =
|
||||
x is Int && x < y
|
||||
Vendored
+18
@@ -0,0 +1,18 @@
|
||||
FILE fqName:<root> fileName:/nullableAnyAsIntToDouble.kt
|
||||
FUN name:test visibility:public modality:FINAL <> (x:kotlin.Any?, y:kotlin.Double) returnType:Boolean flags:
|
||||
VALUE_PARAMETER name:x index:0 type:kotlin.Any? flags:
|
||||
VALUE_PARAMETER name:y index:1 type:kotlin.Double flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='test(Any?, Double): Boolean'
|
||||
WHEN type=kotlin.Boolean origin=ANDAND
|
||||
BRANCH
|
||||
if: TYPE_OP type=kotlin.Boolean origin=INSTANCEOF typeOperand=kotlin.Int
|
||||
GET_VAR 'value-parameter x: Any?' type=kotlin.Any? origin=null
|
||||
then: CALL 'less(Double, Double): Boolean' type=kotlin.Boolean origin=LT
|
||||
arg0: CALL 'toDouble(): Double' type=kotlin.Double origin=null
|
||||
$this: TYPE_OP type=kotlin.Int origin=IMPLICIT_CAST typeOperand=kotlin.Int
|
||||
GET_VAR 'value-parameter x: Any?' type=kotlin.Any? origin=null
|
||||
arg1: GET_VAR 'value-parameter y: Double' type=kotlin.Double origin=null
|
||||
BRANCH
|
||||
if: CONST Boolean type=kotlin.Boolean value=true
|
||||
then: CONST Boolean type=kotlin.Boolean value=false
|
||||
Vendored
+3
@@ -0,0 +1,3 @@
|
||||
fun testDD(x: Double?, y: Double?) = x == y
|
||||
fun testDF(x: Double?, y: Any?) = y is Float? && x == y
|
||||
fun testDI(x: Double?, y: Any?) = y is Int? && x == y
|
||||
Vendored
+43
@@ -0,0 +1,43 @@
|
||||
FILE fqName:<root> fileName:/nullableFloatingPointEqeq.kt
|
||||
FUN name:testDD visibility:public modality:FINAL <> (x:kotlin.Double?, y:kotlin.Double?) returnType:Boolean flags:
|
||||
VALUE_PARAMETER name:x index:0 type:kotlin.Double? flags:
|
||||
VALUE_PARAMETER name:y index:1 type:kotlin.Double? flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='testDD(Double?, Double?): Boolean'
|
||||
CALL 'ieee754equals(Double?, Double?): Boolean' type=kotlin.Boolean origin=EQEQ
|
||||
arg0: GET_VAR 'value-parameter x: Double?' type=kotlin.Double? origin=null
|
||||
arg1: GET_VAR 'value-parameter y: Double?' type=kotlin.Double? origin=null
|
||||
FUN name:testDF visibility:public modality:FINAL <> (x:kotlin.Double?, y:kotlin.Any?) returnType:Boolean flags:
|
||||
VALUE_PARAMETER name:x index:0 type:kotlin.Double? flags:
|
||||
VALUE_PARAMETER name:y index:1 type:kotlin.Any? flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='testDF(Double?, Any?): Boolean'
|
||||
WHEN type=kotlin.Boolean origin=ANDAND
|
||||
BRANCH
|
||||
if: TYPE_OP type=kotlin.Boolean origin=INSTANCEOF typeOperand=kotlin.Float?
|
||||
GET_VAR 'value-parameter y: Any?' type=kotlin.Any? origin=null
|
||||
then: CALL 'ieee754equals(Double?, Double?): Boolean' type=kotlin.Boolean origin=EQEQ
|
||||
arg0: GET_VAR 'value-parameter x: Double?' type=kotlin.Double? origin=null
|
||||
arg1: CALL 'toDouble(): Double' type=kotlin.Double origin=null
|
||||
$this: TYPE_OP type=kotlin.Float origin=IMPLICIT_CAST typeOperand=kotlin.Float
|
||||
GET_VAR 'value-parameter y: Any?' type=kotlin.Any? origin=null
|
||||
BRANCH
|
||||
if: CONST Boolean type=kotlin.Boolean value=true
|
||||
then: CONST Boolean type=kotlin.Boolean value=false
|
||||
FUN name:testDI visibility:public modality:FINAL <> (x:kotlin.Double?, y:kotlin.Any?) returnType:Boolean flags:
|
||||
VALUE_PARAMETER name:x index:0 type:kotlin.Double? flags:
|
||||
VALUE_PARAMETER name:y index:1 type:kotlin.Any? flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='testDI(Double?, Any?): Boolean'
|
||||
WHEN type=kotlin.Boolean origin=ANDAND
|
||||
BRANCH
|
||||
if: TYPE_OP type=kotlin.Boolean origin=INSTANCEOF typeOperand=kotlin.Int?
|
||||
GET_VAR 'value-parameter y: Any?' type=kotlin.Any? origin=null
|
||||
then: CALL 'ieee754equals(Double?, Double?): Boolean' type=kotlin.Boolean origin=EQEQ
|
||||
arg0: GET_VAR 'value-parameter x: Double?' type=kotlin.Double? origin=null
|
||||
arg1: CALL 'toDouble(): Double' type=kotlin.Double origin=null
|
||||
$this: TYPE_OP type=kotlin.Int origin=IMPLICIT_CAST typeOperand=kotlin.Int
|
||||
GET_VAR 'value-parameter y: Any?' type=kotlin.Any? origin=null
|
||||
BRANCH
|
||||
if: CONST Boolean type=kotlin.Boolean value=true
|
||||
then: CONST Boolean type=kotlin.Boolean value=false
|
||||
@@ -57,11 +57,10 @@ FILE fqName:<root> fileName:/forWithImplicitReceivers.kt
|
||||
$receiver: VALUE_PARAMETER name:<this> type:IntCell flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='hasNext() on IntCell: Boolean'
|
||||
CALL 'GT0(Int): Boolean' type=kotlin.Boolean origin=GT
|
||||
arg0: CALL 'compareTo(Int): Int' type=kotlin.Int origin=GT
|
||||
$this: CALL '<get-value>(): Int' type=kotlin.Int origin=GET_PROPERTY
|
||||
$this: GET_VAR 'this@hasNext: IntCell' type=IntCell origin=null
|
||||
other: CONST Int type=kotlin.Int value=0
|
||||
CALL 'greater(Int, Int): Boolean' type=kotlin.Boolean origin=GT
|
||||
arg0: CALL '<get-value>(): Int' type=kotlin.Int origin=GET_PROPERTY
|
||||
$this: GET_VAR 'this@hasNext: IntCell' type=IntCell origin=null
|
||||
arg1: CONST Int type=kotlin.Int value=0
|
||||
FUN name:next visibility:public modality:OPEN <> ($this:IReceiver, $receiver:IntCell) returnType:Int flags:
|
||||
$this: VALUE_PARAMETER name:<this> type:IReceiver flags:
|
||||
$receiver: VALUE_PARAMETER name:<this> type:IntCell flags:
|
||||
@@ -106,4 +105,3 @@ FILE fqName:<root> fileName:/forWithImplicitReceivers.kt
|
||||
BLOCK type=kotlin.Unit origin=null
|
||||
CALL 'println(Int): Unit' type=kotlin.Unit origin=null
|
||||
message: GET_VAR 'i: Int' type=kotlin.Int origin=null
|
||||
|
||||
|
||||
+6
-9
@@ -5,18 +5,15 @@ FILE fqName:<root> fileName:/ifElseIf.kt
|
||||
RETURN type=kotlin.Nothing from='test(Int): Int'
|
||||
WHEN type=kotlin.Int origin=WHEN
|
||||
BRANCH
|
||||
if: CALL 'GT0(Int): Boolean' type=kotlin.Boolean origin=GT
|
||||
arg0: CALL 'compareTo(Int): Int' type=kotlin.Int origin=GT
|
||||
$this: GET_VAR 'value-parameter i: Int' type=kotlin.Int origin=null
|
||||
other: CONST Int type=kotlin.Int value=0
|
||||
if: CALL 'greater(Int, Int): Boolean' type=kotlin.Boolean origin=GT
|
||||
arg0: GET_VAR 'value-parameter i: Int' type=kotlin.Int origin=null
|
||||
arg1: CONST Int type=kotlin.Int value=0
|
||||
then: CONST Int type=kotlin.Int value=1
|
||||
BRANCH
|
||||
if: CALL 'LT0(Int): Boolean' type=kotlin.Boolean origin=LT
|
||||
arg0: CALL 'compareTo(Int): Int' type=kotlin.Int origin=LT
|
||||
$this: GET_VAR 'value-parameter i: Int' type=kotlin.Int origin=null
|
||||
other: CONST Int type=kotlin.Int value=0
|
||||
if: CALL 'less(Int, Int): Boolean' type=kotlin.Boolean origin=LT
|
||||
arg0: GET_VAR 'value-parameter i: Int' type=kotlin.Int origin=null
|
||||
arg1: CONST Int type=kotlin.Int value=0
|
||||
then: CONST Int type=kotlin.Int value=-1
|
||||
BRANCH
|
||||
if: CONST Boolean type=kotlin.Boolean value=true
|
||||
then: CONST Int type=kotlin.Int value=0
|
||||
|
||||
|
||||
@@ -4,215 +4,206 @@ FILE fqName:<root> fileName:/primitiveComparisons.kt
|
||||
VALUE_PARAMETER name:b index:1 type:kotlin.Byte flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='btest1(Byte, Byte): Boolean'
|
||||
CALL 'GT0(Int): Boolean' type=kotlin.Boolean origin=GT
|
||||
arg0: CALL 'compareTo(Byte): Int' type=kotlin.Int origin=GT
|
||||
CALL 'greater(Int, Int): Boolean' type=kotlin.Boolean origin=GT
|
||||
arg0: CALL 'toInt(): Int' type=kotlin.Int origin=null
|
||||
$this: GET_VAR 'value-parameter a: Byte' type=kotlin.Byte origin=null
|
||||
other: GET_VAR 'value-parameter b: Byte' type=kotlin.Byte origin=null
|
||||
arg1: CALL 'toInt(): Int' type=kotlin.Int origin=null
|
||||
$this: GET_VAR 'value-parameter b: Byte' type=kotlin.Byte origin=null
|
||||
FUN name:btest2 visibility:public modality:FINAL <> (a:kotlin.Byte, b:kotlin.Byte) returnType:Boolean flags:
|
||||
VALUE_PARAMETER name:a index:0 type:kotlin.Byte flags:
|
||||
VALUE_PARAMETER name:b index:1 type:kotlin.Byte flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='btest2(Byte, Byte): Boolean'
|
||||
CALL 'LT0(Int): Boolean' type=kotlin.Boolean origin=LT
|
||||
arg0: CALL 'compareTo(Byte): Int' type=kotlin.Int origin=LT
|
||||
CALL 'less(Int, Int): Boolean' type=kotlin.Boolean origin=LT
|
||||
arg0: CALL 'toInt(): Int' type=kotlin.Int origin=null
|
||||
$this: GET_VAR 'value-parameter a: Byte' type=kotlin.Byte origin=null
|
||||
other: GET_VAR 'value-parameter b: Byte' type=kotlin.Byte origin=null
|
||||
arg1: CALL 'toInt(): Int' type=kotlin.Int origin=null
|
||||
$this: GET_VAR 'value-parameter b: Byte' type=kotlin.Byte origin=null
|
||||
FUN name:btest3 visibility:public modality:FINAL <> (a:kotlin.Byte, b:kotlin.Byte) returnType:Boolean flags:
|
||||
VALUE_PARAMETER name:a index:0 type:kotlin.Byte flags:
|
||||
VALUE_PARAMETER name:b index:1 type:kotlin.Byte flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='btest3(Byte, Byte): Boolean'
|
||||
CALL 'GTEQ0(Int): Boolean' type=kotlin.Boolean origin=GTEQ
|
||||
arg0: CALL 'compareTo(Byte): Int' type=kotlin.Int origin=GTEQ
|
||||
CALL 'greaterOrEqual(Int, Int): Boolean' type=kotlin.Boolean origin=GTEQ
|
||||
arg0: CALL 'toInt(): Int' type=kotlin.Int origin=null
|
||||
$this: GET_VAR 'value-parameter a: Byte' type=kotlin.Byte origin=null
|
||||
other: GET_VAR 'value-parameter b: Byte' type=kotlin.Byte origin=null
|
||||
arg1: CALL 'toInt(): Int' type=kotlin.Int origin=null
|
||||
$this: GET_VAR 'value-parameter b: Byte' type=kotlin.Byte origin=null
|
||||
FUN name:btest4 visibility:public modality:FINAL <> (a:kotlin.Byte, b:kotlin.Byte) returnType:Boolean flags:
|
||||
VALUE_PARAMETER name:a index:0 type:kotlin.Byte flags:
|
||||
VALUE_PARAMETER name:b index:1 type:kotlin.Byte flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='btest4(Byte, Byte): Boolean'
|
||||
CALL 'LTEQ0(Int): Boolean' type=kotlin.Boolean origin=LTEQ
|
||||
arg0: CALL 'compareTo(Byte): Int' type=kotlin.Int origin=LTEQ
|
||||
CALL 'lessOrEqual(Int, Int): Boolean' type=kotlin.Boolean origin=LTEQ
|
||||
arg0: CALL 'toInt(): Int' type=kotlin.Int origin=null
|
||||
$this: GET_VAR 'value-parameter a: Byte' type=kotlin.Byte origin=null
|
||||
other: GET_VAR 'value-parameter b: Byte' type=kotlin.Byte origin=null
|
||||
arg1: CALL 'toInt(): Int' type=kotlin.Int origin=null
|
||||
$this: GET_VAR 'value-parameter b: Byte' type=kotlin.Byte origin=null
|
||||
FUN name:stest1 visibility:public modality:FINAL <> (a:kotlin.Short, b:kotlin.Short) returnType:Boolean flags:
|
||||
VALUE_PARAMETER name:a index:0 type:kotlin.Short flags:
|
||||
VALUE_PARAMETER name:b index:1 type:kotlin.Short flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='stest1(Short, Short): Boolean'
|
||||
CALL 'GT0(Int): Boolean' type=kotlin.Boolean origin=GT
|
||||
arg0: CALL 'compareTo(Short): Int' type=kotlin.Int origin=GT
|
||||
CALL 'greater(Int, Int): Boolean' type=kotlin.Boolean origin=GT
|
||||
arg0: CALL 'toInt(): Int' type=kotlin.Int origin=null
|
||||
$this: GET_VAR 'value-parameter a: Short' type=kotlin.Short origin=null
|
||||
other: GET_VAR 'value-parameter b: Short' type=kotlin.Short origin=null
|
||||
arg1: CALL 'toInt(): Int' type=kotlin.Int origin=null
|
||||
$this: GET_VAR 'value-parameter b: Short' type=kotlin.Short origin=null
|
||||
FUN name:stest2 visibility:public modality:FINAL <> (a:kotlin.Short, b:kotlin.Short) returnType:Boolean flags:
|
||||
VALUE_PARAMETER name:a index:0 type:kotlin.Short flags:
|
||||
VALUE_PARAMETER name:b index:1 type:kotlin.Short flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='stest2(Short, Short): Boolean'
|
||||
CALL 'LT0(Int): Boolean' type=kotlin.Boolean origin=LT
|
||||
arg0: CALL 'compareTo(Short): Int' type=kotlin.Int origin=LT
|
||||
CALL 'less(Int, Int): Boolean' type=kotlin.Boolean origin=LT
|
||||
arg0: CALL 'toInt(): Int' type=kotlin.Int origin=null
|
||||
$this: GET_VAR 'value-parameter a: Short' type=kotlin.Short origin=null
|
||||
other: GET_VAR 'value-parameter b: Short' type=kotlin.Short origin=null
|
||||
arg1: CALL 'toInt(): Int' type=kotlin.Int origin=null
|
||||
$this: GET_VAR 'value-parameter b: Short' type=kotlin.Short origin=null
|
||||
FUN name:stest3 visibility:public modality:FINAL <> (a:kotlin.Short, b:kotlin.Short) returnType:Boolean flags:
|
||||
VALUE_PARAMETER name:a index:0 type:kotlin.Short flags:
|
||||
VALUE_PARAMETER name:b index:1 type:kotlin.Short flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='stest3(Short, Short): Boolean'
|
||||
CALL 'GTEQ0(Int): Boolean' type=kotlin.Boolean origin=GTEQ
|
||||
arg0: CALL 'compareTo(Short): Int' type=kotlin.Int origin=GTEQ
|
||||
CALL 'greaterOrEqual(Int, Int): Boolean' type=kotlin.Boolean origin=GTEQ
|
||||
arg0: CALL 'toInt(): Int' type=kotlin.Int origin=null
|
||||
$this: GET_VAR 'value-parameter a: Short' type=kotlin.Short origin=null
|
||||
other: GET_VAR 'value-parameter b: Short' type=kotlin.Short origin=null
|
||||
arg1: CALL 'toInt(): Int' type=kotlin.Int origin=null
|
||||
$this: GET_VAR 'value-parameter b: Short' type=kotlin.Short origin=null
|
||||
FUN name:stest4 visibility:public modality:FINAL <> (a:kotlin.Short, b:kotlin.Short) returnType:Boolean flags:
|
||||
VALUE_PARAMETER name:a index:0 type:kotlin.Short flags:
|
||||
VALUE_PARAMETER name:b index:1 type:kotlin.Short flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='stest4(Short, Short): Boolean'
|
||||
CALL 'LTEQ0(Int): Boolean' type=kotlin.Boolean origin=LTEQ
|
||||
arg0: CALL 'compareTo(Short): Int' type=kotlin.Int origin=LTEQ
|
||||
CALL 'lessOrEqual(Int, Int): Boolean' type=kotlin.Boolean origin=LTEQ
|
||||
arg0: CALL 'toInt(): Int' type=kotlin.Int origin=null
|
||||
$this: GET_VAR 'value-parameter a: Short' type=kotlin.Short origin=null
|
||||
other: GET_VAR 'value-parameter b: Short' type=kotlin.Short origin=null
|
||||
arg1: CALL 'toInt(): Int' type=kotlin.Int origin=null
|
||||
$this: GET_VAR 'value-parameter b: Short' type=kotlin.Short origin=null
|
||||
FUN name:itest1 visibility:public modality:FINAL <> (a:kotlin.Int, b:kotlin.Int) returnType:Boolean flags:
|
||||
VALUE_PARAMETER name:a index:0 type:kotlin.Int flags:
|
||||
VALUE_PARAMETER name:b index:1 type:kotlin.Int flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='itest1(Int, Int): Boolean'
|
||||
CALL 'GT0(Int): Boolean' type=kotlin.Boolean origin=GT
|
||||
arg0: CALL 'compareTo(Int): Int' type=kotlin.Int origin=GT
|
||||
$this: GET_VAR 'value-parameter a: Int' type=kotlin.Int origin=null
|
||||
other: GET_VAR 'value-parameter b: Int' type=kotlin.Int origin=null
|
||||
CALL 'greater(Int, Int): Boolean' type=kotlin.Boolean origin=GT
|
||||
arg0: GET_VAR 'value-parameter a: Int' type=kotlin.Int origin=null
|
||||
arg1: GET_VAR 'value-parameter b: Int' type=kotlin.Int origin=null
|
||||
FUN name:itest2 visibility:public modality:FINAL <> (a:kotlin.Int, b:kotlin.Int) returnType:Boolean flags:
|
||||
VALUE_PARAMETER name:a index:0 type:kotlin.Int flags:
|
||||
VALUE_PARAMETER name:b index:1 type:kotlin.Int flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='itest2(Int, Int): Boolean'
|
||||
CALL 'LT0(Int): Boolean' type=kotlin.Boolean origin=LT
|
||||
arg0: CALL 'compareTo(Int): Int' type=kotlin.Int origin=LT
|
||||
$this: GET_VAR 'value-parameter a: Int' type=kotlin.Int origin=null
|
||||
other: GET_VAR 'value-parameter b: Int' type=kotlin.Int origin=null
|
||||
CALL 'less(Int, Int): Boolean' type=kotlin.Boolean origin=LT
|
||||
arg0: GET_VAR 'value-parameter a: Int' type=kotlin.Int origin=null
|
||||
arg1: GET_VAR 'value-parameter b: Int' type=kotlin.Int origin=null
|
||||
FUN name:itest3 visibility:public modality:FINAL <> (a:kotlin.Int, b:kotlin.Int) returnType:Boolean flags:
|
||||
VALUE_PARAMETER name:a index:0 type:kotlin.Int flags:
|
||||
VALUE_PARAMETER name:b index:1 type:kotlin.Int flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='itest3(Int, Int): Boolean'
|
||||
CALL 'GTEQ0(Int): Boolean' type=kotlin.Boolean origin=GTEQ
|
||||
arg0: CALL 'compareTo(Int): Int' type=kotlin.Int origin=GTEQ
|
||||
$this: GET_VAR 'value-parameter a: Int' type=kotlin.Int origin=null
|
||||
other: GET_VAR 'value-parameter b: Int' type=kotlin.Int origin=null
|
||||
CALL 'greaterOrEqual(Int, Int): Boolean' type=kotlin.Boolean origin=GTEQ
|
||||
arg0: GET_VAR 'value-parameter a: Int' type=kotlin.Int origin=null
|
||||
arg1: GET_VAR 'value-parameter b: Int' type=kotlin.Int origin=null
|
||||
FUN name:itest4 visibility:public modality:FINAL <> (a:kotlin.Int, b:kotlin.Int) returnType:Boolean flags:
|
||||
VALUE_PARAMETER name:a index:0 type:kotlin.Int flags:
|
||||
VALUE_PARAMETER name:b index:1 type:kotlin.Int flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='itest4(Int, Int): Boolean'
|
||||
CALL 'LTEQ0(Int): Boolean' type=kotlin.Boolean origin=LTEQ
|
||||
arg0: CALL 'compareTo(Int): Int' type=kotlin.Int origin=LTEQ
|
||||
$this: GET_VAR 'value-parameter a: Int' type=kotlin.Int origin=null
|
||||
other: GET_VAR 'value-parameter b: Int' type=kotlin.Int origin=null
|
||||
CALL 'lessOrEqual(Int, Int): Boolean' type=kotlin.Boolean origin=LTEQ
|
||||
arg0: GET_VAR 'value-parameter a: Int' type=kotlin.Int origin=null
|
||||
arg1: GET_VAR 'value-parameter b: Int' type=kotlin.Int origin=null
|
||||
FUN name:ltest1 visibility:public modality:FINAL <> (a:kotlin.Long, b:kotlin.Long) returnType:Boolean flags:
|
||||
VALUE_PARAMETER name:a index:0 type:kotlin.Long flags:
|
||||
VALUE_PARAMETER name:b index:1 type:kotlin.Long flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='ltest1(Long, Long): Boolean'
|
||||
CALL 'GT0(Int): Boolean' type=kotlin.Boolean origin=GT
|
||||
arg0: CALL 'compareTo(Long): Int' type=kotlin.Int origin=GT
|
||||
$this: GET_VAR 'value-parameter a: Long' type=kotlin.Long origin=null
|
||||
other: GET_VAR 'value-parameter b: Long' type=kotlin.Long origin=null
|
||||
CALL 'greater(Long, Long): Boolean' type=kotlin.Boolean origin=GT
|
||||
arg0: GET_VAR 'value-parameter a: Long' type=kotlin.Long origin=null
|
||||
arg1: GET_VAR 'value-parameter b: Long' type=kotlin.Long origin=null
|
||||
FUN name:ltest2 visibility:public modality:FINAL <> (a:kotlin.Long, b:kotlin.Long) returnType:Boolean flags:
|
||||
VALUE_PARAMETER name:a index:0 type:kotlin.Long flags:
|
||||
VALUE_PARAMETER name:b index:1 type:kotlin.Long flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='ltest2(Long, Long): Boolean'
|
||||
CALL 'LT0(Int): Boolean' type=kotlin.Boolean origin=LT
|
||||
arg0: CALL 'compareTo(Long): Int' type=kotlin.Int origin=LT
|
||||
$this: GET_VAR 'value-parameter a: Long' type=kotlin.Long origin=null
|
||||
other: GET_VAR 'value-parameter b: Long' type=kotlin.Long origin=null
|
||||
CALL 'less(Long, Long): Boolean' type=kotlin.Boolean origin=LT
|
||||
arg0: GET_VAR 'value-parameter a: Long' type=kotlin.Long origin=null
|
||||
arg1: GET_VAR 'value-parameter b: Long' type=kotlin.Long origin=null
|
||||
FUN name:ltest3 visibility:public modality:FINAL <> (a:kotlin.Long, b:kotlin.Long) returnType:Boolean flags:
|
||||
VALUE_PARAMETER name:a index:0 type:kotlin.Long flags:
|
||||
VALUE_PARAMETER name:b index:1 type:kotlin.Long flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='ltest3(Long, Long): Boolean'
|
||||
CALL 'GTEQ0(Int): Boolean' type=kotlin.Boolean origin=GTEQ
|
||||
arg0: CALL 'compareTo(Long): Int' type=kotlin.Int origin=GTEQ
|
||||
$this: GET_VAR 'value-parameter a: Long' type=kotlin.Long origin=null
|
||||
other: GET_VAR 'value-parameter b: Long' type=kotlin.Long origin=null
|
||||
CALL 'greaterOrEqual(Long, Long): Boolean' type=kotlin.Boolean origin=GTEQ
|
||||
arg0: GET_VAR 'value-parameter a: Long' type=kotlin.Long origin=null
|
||||
arg1: GET_VAR 'value-parameter b: Long' type=kotlin.Long origin=null
|
||||
FUN name:ltest4 visibility:public modality:FINAL <> (a:kotlin.Long, b:kotlin.Long) returnType:Boolean flags:
|
||||
VALUE_PARAMETER name:a index:0 type:kotlin.Long flags:
|
||||
VALUE_PARAMETER name:b index:1 type:kotlin.Long flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='ltest4(Long, Long): Boolean'
|
||||
CALL 'LTEQ0(Int): Boolean' type=kotlin.Boolean origin=LTEQ
|
||||
arg0: CALL 'compareTo(Long): Int' type=kotlin.Int origin=LTEQ
|
||||
$this: GET_VAR 'value-parameter a: Long' type=kotlin.Long origin=null
|
||||
other: GET_VAR 'value-parameter b: Long' type=kotlin.Long origin=null
|
||||
CALL 'lessOrEqual(Long, Long): Boolean' type=kotlin.Boolean origin=LTEQ
|
||||
arg0: GET_VAR 'value-parameter a: Long' type=kotlin.Long origin=null
|
||||
arg1: GET_VAR 'value-parameter b: Long' type=kotlin.Long origin=null
|
||||
FUN name:ftest1 visibility:public modality:FINAL <> (a:kotlin.Float, b:kotlin.Float) returnType:Boolean flags:
|
||||
VALUE_PARAMETER name:a index:0 type:kotlin.Float flags:
|
||||
VALUE_PARAMETER name:b index:1 type:kotlin.Float flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='ftest1(Float, Float): Boolean'
|
||||
CALL 'GT0(Int): Boolean' type=kotlin.Boolean origin=GT
|
||||
arg0: CALL 'compareTo(Float): Int' type=kotlin.Int origin=GT
|
||||
$this: GET_VAR 'value-parameter a: Float' type=kotlin.Float origin=null
|
||||
other: GET_VAR 'value-parameter b: Float' type=kotlin.Float origin=null
|
||||
CALL 'greater(Float, Float): Boolean' type=kotlin.Boolean origin=GT
|
||||
arg0: GET_VAR 'value-parameter a: Float' type=kotlin.Float origin=null
|
||||
arg1: GET_VAR 'value-parameter b: Float' type=kotlin.Float origin=null
|
||||
FUN name:ftest2 visibility:public modality:FINAL <> (a:kotlin.Float, b:kotlin.Float) returnType:Boolean flags:
|
||||
VALUE_PARAMETER name:a index:0 type:kotlin.Float flags:
|
||||
VALUE_PARAMETER name:b index:1 type:kotlin.Float flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='ftest2(Float, Float): Boolean'
|
||||
CALL 'LT0(Int): Boolean' type=kotlin.Boolean origin=LT
|
||||
arg0: CALL 'compareTo(Float): Int' type=kotlin.Int origin=LT
|
||||
$this: GET_VAR 'value-parameter a: Float' type=kotlin.Float origin=null
|
||||
other: GET_VAR 'value-parameter b: Float' type=kotlin.Float origin=null
|
||||
CALL 'less(Float, Float): Boolean' type=kotlin.Boolean origin=LT
|
||||
arg0: GET_VAR 'value-parameter a: Float' type=kotlin.Float origin=null
|
||||
arg1: GET_VAR 'value-parameter b: Float' type=kotlin.Float origin=null
|
||||
FUN name:ftest3 visibility:public modality:FINAL <> (a:kotlin.Float, b:kotlin.Float) returnType:Boolean flags:
|
||||
VALUE_PARAMETER name:a index:0 type:kotlin.Float flags:
|
||||
VALUE_PARAMETER name:b index:1 type:kotlin.Float flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='ftest3(Float, Float): Boolean'
|
||||
CALL 'GTEQ0(Int): Boolean' type=kotlin.Boolean origin=GTEQ
|
||||
arg0: CALL 'compareTo(Float): Int' type=kotlin.Int origin=GTEQ
|
||||
$this: GET_VAR 'value-parameter a: Float' type=kotlin.Float origin=null
|
||||
other: GET_VAR 'value-parameter b: Float' type=kotlin.Float origin=null
|
||||
CALL 'greaterOrEqual(Float, Float): Boolean' type=kotlin.Boolean origin=GTEQ
|
||||
arg0: GET_VAR 'value-parameter a: Float' type=kotlin.Float origin=null
|
||||
arg1: GET_VAR 'value-parameter b: Float' type=kotlin.Float origin=null
|
||||
FUN name:ftest4 visibility:public modality:FINAL <> (a:kotlin.Float, b:kotlin.Float) returnType:Boolean flags:
|
||||
VALUE_PARAMETER name:a index:0 type:kotlin.Float flags:
|
||||
VALUE_PARAMETER name:b index:1 type:kotlin.Float flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='ftest4(Float, Float): Boolean'
|
||||
CALL 'LTEQ0(Int): Boolean' type=kotlin.Boolean origin=LTEQ
|
||||
arg0: CALL 'compareTo(Float): Int' type=kotlin.Int origin=LTEQ
|
||||
$this: GET_VAR 'value-parameter a: Float' type=kotlin.Float origin=null
|
||||
other: GET_VAR 'value-parameter b: Float' type=kotlin.Float origin=null
|
||||
CALL 'lessOrEqual(Float, Float): Boolean' type=kotlin.Boolean origin=LTEQ
|
||||
arg0: GET_VAR 'value-parameter a: Float' type=kotlin.Float origin=null
|
||||
arg1: GET_VAR 'value-parameter b: Float' type=kotlin.Float origin=null
|
||||
FUN name:dtest1 visibility:public modality:FINAL <> (a:kotlin.Double, b:kotlin.Double) returnType:Boolean flags:
|
||||
VALUE_PARAMETER name:a index:0 type:kotlin.Double flags:
|
||||
VALUE_PARAMETER name:b index:1 type:kotlin.Double flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='dtest1(Double, Double): Boolean'
|
||||
CALL 'GT0(Int): Boolean' type=kotlin.Boolean origin=GT
|
||||
arg0: CALL 'compareTo(Double): Int' type=kotlin.Int origin=GT
|
||||
$this: GET_VAR 'value-parameter a: Double' type=kotlin.Double origin=null
|
||||
other: GET_VAR 'value-parameter b: Double' type=kotlin.Double origin=null
|
||||
CALL 'greater(Double, Double): Boolean' type=kotlin.Boolean origin=GT
|
||||
arg0: GET_VAR 'value-parameter a: Double' type=kotlin.Double origin=null
|
||||
arg1: GET_VAR 'value-parameter b: Double' type=kotlin.Double origin=null
|
||||
FUN name:dtest2 visibility:public modality:FINAL <> (a:kotlin.Double, b:kotlin.Double) returnType:Boolean flags:
|
||||
VALUE_PARAMETER name:a index:0 type:kotlin.Double flags:
|
||||
VALUE_PARAMETER name:b index:1 type:kotlin.Double flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='dtest2(Double, Double): Boolean'
|
||||
CALL 'LT0(Int): Boolean' type=kotlin.Boolean origin=LT
|
||||
arg0: CALL 'compareTo(Double): Int' type=kotlin.Int origin=LT
|
||||
$this: GET_VAR 'value-parameter a: Double' type=kotlin.Double origin=null
|
||||
other: GET_VAR 'value-parameter b: Double' type=kotlin.Double origin=null
|
||||
CALL 'less(Double, Double): Boolean' type=kotlin.Boolean origin=LT
|
||||
arg0: GET_VAR 'value-parameter a: Double' type=kotlin.Double origin=null
|
||||
arg1: GET_VAR 'value-parameter b: Double' type=kotlin.Double origin=null
|
||||
FUN name:dtest3 visibility:public modality:FINAL <> (a:kotlin.Double, b:kotlin.Double) returnType:Boolean flags:
|
||||
VALUE_PARAMETER name:a index:0 type:kotlin.Double flags:
|
||||
VALUE_PARAMETER name:b index:1 type:kotlin.Double flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='dtest3(Double, Double): Boolean'
|
||||
CALL 'GTEQ0(Int): Boolean' type=kotlin.Boolean origin=GTEQ
|
||||
arg0: CALL 'compareTo(Double): Int' type=kotlin.Int origin=GTEQ
|
||||
$this: GET_VAR 'value-parameter a: Double' type=kotlin.Double origin=null
|
||||
other: GET_VAR 'value-parameter b: Double' type=kotlin.Double origin=null
|
||||
CALL 'greaterOrEqual(Double, Double): Boolean' type=kotlin.Boolean origin=GTEQ
|
||||
arg0: GET_VAR 'value-parameter a: Double' type=kotlin.Double origin=null
|
||||
arg1: GET_VAR 'value-parameter b: Double' type=kotlin.Double origin=null
|
||||
FUN name:dtest4 visibility:public modality:FINAL <> (a:kotlin.Double, b:kotlin.Double) returnType:Boolean flags:
|
||||
VALUE_PARAMETER name:a index:0 type:kotlin.Double flags:
|
||||
VALUE_PARAMETER name:b index:1 type:kotlin.Double flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='dtest4(Double, Double): Boolean'
|
||||
CALL 'LTEQ0(Int): Boolean' type=kotlin.Boolean origin=LTEQ
|
||||
arg0: CALL 'compareTo(Double): Int' type=kotlin.Int origin=LTEQ
|
||||
$this: GET_VAR 'value-parameter a: Double' type=kotlin.Double origin=null
|
||||
other: GET_VAR 'value-parameter b: Double' type=kotlin.Double origin=null
|
||||
|
||||
CALL 'lessOrEqual(Double, Double): Boolean' type=kotlin.Boolean origin=LTEQ
|
||||
arg0: GET_VAR 'value-parameter a: Double' type=kotlin.Double origin=null
|
||||
arg1: GET_VAR 'value-parameter b: Double' type=kotlin.Double origin=null
|
||||
|
||||
@@ -4,35 +4,38 @@ FILE fqName:<root> fileName:/stringComparisons.kt
|
||||
VALUE_PARAMETER name:b index:1 type:kotlin.String flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='test1(String, String): Boolean'
|
||||
CALL 'GT0(Int): Boolean' type=kotlin.Boolean origin=GT
|
||||
CALL 'greater(Int, Int): Boolean' type=kotlin.Boolean origin=GT
|
||||
arg0: CALL 'compareTo(String): Int' type=kotlin.Int origin=GT
|
||||
$this: GET_VAR 'value-parameter a: String' type=kotlin.String origin=null
|
||||
other: GET_VAR 'value-parameter b: String' type=kotlin.String origin=null
|
||||
arg1: CONST Int type=kotlin.Int value=0
|
||||
FUN name:test2 visibility:public modality:FINAL <> (a:kotlin.String, b:kotlin.String) returnType:Boolean flags:
|
||||
VALUE_PARAMETER name:a index:0 type:kotlin.String flags:
|
||||
VALUE_PARAMETER name:b index:1 type:kotlin.String flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='test2(String, String): Boolean'
|
||||
CALL 'LT0(Int): Boolean' type=kotlin.Boolean origin=LT
|
||||
CALL 'less(Int, Int): Boolean' type=kotlin.Boolean origin=LT
|
||||
arg0: CALL 'compareTo(String): Int' type=kotlin.Int origin=LT
|
||||
$this: GET_VAR 'value-parameter a: String' type=kotlin.String origin=null
|
||||
other: GET_VAR 'value-parameter b: String' type=kotlin.String origin=null
|
||||
arg1: CONST Int type=kotlin.Int value=0
|
||||
FUN name:test3 visibility:public modality:FINAL <> (a:kotlin.String, b:kotlin.String) returnType:Boolean flags:
|
||||
VALUE_PARAMETER name:a index:0 type:kotlin.String flags:
|
||||
VALUE_PARAMETER name:b index:1 type:kotlin.String flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='test3(String, String): Boolean'
|
||||
CALL 'GTEQ0(Int): Boolean' type=kotlin.Boolean origin=GTEQ
|
||||
CALL 'greaterOrEqual(Int, Int): Boolean' type=kotlin.Boolean origin=GTEQ
|
||||
arg0: CALL 'compareTo(String): Int' type=kotlin.Int origin=GTEQ
|
||||
$this: GET_VAR 'value-parameter a: String' type=kotlin.String origin=null
|
||||
other: GET_VAR 'value-parameter b: String' type=kotlin.String origin=null
|
||||
arg1: CONST Int type=kotlin.Int value=0
|
||||
FUN name:test4 visibility:public modality:FINAL <> (a:kotlin.String, b:kotlin.String) returnType:Boolean flags:
|
||||
VALUE_PARAMETER name:a index:0 type:kotlin.String flags:
|
||||
VALUE_PARAMETER name:b index:1 type:kotlin.String flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='test4(String, String): Boolean'
|
||||
CALL 'LTEQ0(Int): Boolean' type=kotlin.Boolean origin=LTEQ
|
||||
CALL 'lessOrEqual(Int, Int): Boolean' type=kotlin.Boolean origin=LTEQ
|
||||
arg0: CALL 'compareTo(String): Int' type=kotlin.Int origin=LTEQ
|
||||
$this: GET_VAR 'value-parameter a: String' type=kotlin.String origin=null
|
||||
other: GET_VAR 'value-parameter b: String' type=kotlin.String origin=null
|
||||
|
||||
arg1: CONST Int type=kotlin.Int value=0
|
||||
|
||||
+18
-25
@@ -4,15 +4,13 @@ FILE fqName:<root> fileName:/whileDoWhile.kt
|
||||
VAR name:x type:kotlin.Int flags:var
|
||||
CONST Int type=kotlin.Int value=0
|
||||
WHILE label=null origin=WHILE_LOOP
|
||||
condition: CALL 'LT0(Int): Boolean' type=kotlin.Boolean origin=LT
|
||||
arg0: CALL 'compareTo(Int): Int' type=kotlin.Int origin=LT
|
||||
$this: GET_VAR 'x: Int' type=kotlin.Int origin=null
|
||||
other: CONST Int type=kotlin.Int value=0
|
||||
condition: CALL 'less(Int, Int): Boolean' type=kotlin.Boolean origin=LT
|
||||
arg0: GET_VAR 'x: Int' type=kotlin.Int origin=null
|
||||
arg1: CONST Int type=kotlin.Int value=0
|
||||
WHILE label=null origin=WHILE_LOOP
|
||||
condition: CALL 'LT0(Int): Boolean' type=kotlin.Boolean origin=LT
|
||||
arg0: CALL 'compareTo(Int): Int' type=kotlin.Int origin=LT
|
||||
$this: GET_VAR 'x: Int' type=kotlin.Int origin=null
|
||||
other: CONST Int type=kotlin.Int value=5
|
||||
condition: CALL 'less(Int, Int): Boolean' type=kotlin.Boolean origin=LT
|
||||
arg0: GET_VAR 'x: Int' type=kotlin.Int origin=null
|
||||
arg1: CONST Int type=kotlin.Int value=5
|
||||
body: TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
|
||||
BLOCK type=kotlin.Int origin=POSTFIX_INCR
|
||||
VAR IR_TEMPORARY_VARIABLE name:tmp0 type:kotlin.Int flags:val
|
||||
@@ -22,10 +20,9 @@ FILE fqName:<root> fileName:/whileDoWhile.kt
|
||||
$this: GET_VAR 'tmp0: Int' type=kotlin.Int origin=null
|
||||
GET_VAR 'tmp0: Int' type=kotlin.Int origin=null
|
||||
WHILE label=null origin=WHILE_LOOP
|
||||
condition: CALL 'LT0(Int): Boolean' type=kotlin.Boolean origin=LT
|
||||
arg0: CALL 'compareTo(Int): Int' type=kotlin.Int origin=LT
|
||||
$this: GET_VAR 'x: Int' type=kotlin.Int origin=null
|
||||
other: CONST Int type=kotlin.Int value=10
|
||||
condition: CALL 'less(Int, Int): Boolean' type=kotlin.Boolean origin=LT
|
||||
arg0: GET_VAR 'x: Int' type=kotlin.Int origin=null
|
||||
arg1: CONST Int type=kotlin.Int value=10
|
||||
body: BLOCK type=kotlin.Unit origin=null
|
||||
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
|
||||
BLOCK type=kotlin.Int origin=POSTFIX_INCR
|
||||
@@ -37,10 +34,9 @@ FILE fqName:<root> fileName:/whileDoWhile.kt
|
||||
GET_VAR 'tmp1: Int' type=kotlin.Int origin=null
|
||||
BLOCK type=kotlin.Unit origin=null
|
||||
DO_WHILE label=null origin=DO_WHILE_LOOP
|
||||
condition: CALL 'LT0(Int): Boolean' type=kotlin.Boolean origin=LT
|
||||
arg0: CALL 'compareTo(Int): Int' type=kotlin.Int origin=LT
|
||||
$this: GET_VAR 'x: Int' type=kotlin.Int origin=null
|
||||
other: CONST Int type=kotlin.Int value=0
|
||||
condition: CALL 'less(Int, Int): Boolean' type=kotlin.Boolean origin=LT
|
||||
arg0: GET_VAR 'x: Int' type=kotlin.Int origin=null
|
||||
arg1: CONST Int type=kotlin.Int value=0
|
||||
BLOCK type=kotlin.Unit origin=null
|
||||
DO_WHILE label=null origin=DO_WHILE_LOOP
|
||||
body: TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
|
||||
@@ -51,10 +47,9 @@ FILE fqName:<root> fileName:/whileDoWhile.kt
|
||||
CALL 'inc(): Int' type=kotlin.Int origin=POSTFIX_INCR
|
||||
$this: GET_VAR 'tmp2: Int' type=kotlin.Int origin=null
|
||||
GET_VAR 'tmp2: Int' type=kotlin.Int origin=null
|
||||
condition: CALL 'LT0(Int): Boolean' type=kotlin.Boolean origin=LT
|
||||
arg0: CALL 'compareTo(Int): Int' type=kotlin.Int origin=LT
|
||||
$this: GET_VAR 'x: Int' type=kotlin.Int origin=null
|
||||
other: CONST Int type=kotlin.Int value=15
|
||||
condition: CALL 'less(Int, Int): Boolean' type=kotlin.Boolean origin=LT
|
||||
arg0: GET_VAR 'x: Int' type=kotlin.Int origin=null
|
||||
arg1: CONST Int type=kotlin.Int value=15
|
||||
BLOCK type=kotlin.Unit origin=null
|
||||
DO_WHILE label=null origin=DO_WHILE_LOOP
|
||||
body: COMPOSITE type=kotlin.Unit origin=null
|
||||
@@ -66,10 +61,9 @@ FILE fqName:<root> fileName:/whileDoWhile.kt
|
||||
CALL 'inc(): Int' type=kotlin.Int origin=POSTFIX_INCR
|
||||
$this: GET_VAR 'tmp3: Int' type=kotlin.Int origin=null
|
||||
GET_VAR 'tmp3: Int' type=kotlin.Int origin=null
|
||||
condition: CALL 'LT0(Int): Boolean' type=kotlin.Boolean origin=LT
|
||||
arg0: CALL 'compareTo(Int): Int' type=kotlin.Int origin=LT
|
||||
$this: GET_VAR 'x: Int' type=kotlin.Int origin=null
|
||||
other: CONST Int type=kotlin.Int value=20
|
||||
condition: CALL 'less(Int, Int): Boolean' type=kotlin.Boolean origin=LT
|
||||
arg0: GET_VAR 'x: Int' type=kotlin.Int origin=null
|
||||
arg1: CONST Int type=kotlin.Int value=20
|
||||
FUN name:testSmartcastInCondition visibility:public modality:FINAL <> () returnType:Unit flags:
|
||||
BLOCK_BODY
|
||||
VAR name:a type:kotlin.Any? flags:val
|
||||
@@ -88,4 +82,3 @@ FILE fqName:<root> fileName:/whileDoWhile.kt
|
||||
body: COMPOSITE type=kotlin.Unit origin=null
|
||||
condition: TYPE_OP type=kotlin.Boolean origin=IMPLICIT_CAST typeOperand=kotlin.Boolean
|
||||
GET_VAR 'a: Any?' type=kotlin.Any? origin=null
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@ FILE fqName:<root> fileName:/coercionInLoop.kt
|
||||
WHEN type=kotlin.Unit origin=null
|
||||
BRANCH
|
||||
if: CALL 'NOT(Boolean): Boolean' type=kotlin.Boolean origin=EXCLEQ
|
||||
arg0: CALL 'EQEQ(Any?, Any?): Boolean' type=kotlin.Boolean origin=EXCLEQ
|
||||
arg0: CALL 'ieee754equals(Double?, Double?): Boolean' type=kotlin.Boolean origin=EXCLEQ
|
||||
arg0: CALL 'get(Int): Double' type=kotlin.Double origin=GET_ARRAY_ELEMENT
|
||||
$this: GET_VAR 'a: DoubleArray' type=kotlin.DoubleArray origin=null
|
||||
index: GET_VAR 'i: Int' type=kotlin.Int origin=null
|
||||
@@ -36,4 +36,3 @@ FILE fqName:<root> fileName:/coercionInLoop.kt
|
||||
GET_VAR 'tmp0: Int' type=kotlin.Int origin=null
|
||||
RETURN type=kotlin.Nothing from='box(): String'
|
||||
CONST String type=kotlin.String value=OK
|
||||
|
||||
|
||||
Reference in New Issue
Block a user