JVM_IR fold safe calls and elvises
This commit is contained in:
committed by
teamcityserver
parent
7370d096ee
commit
9325660f06
+2
-2
@@ -14,5 +14,5 @@ class A(val x: String) {
|
||||
|
||||
// JVM_IR_TEMPLATES
|
||||
// 4 IFNULL
|
||||
// 2 IFNONNULL
|
||||
// 2 ACONST_NULL
|
||||
// 0 IFNONNULL
|
||||
// 0 ACONST_NULL
|
||||
|
||||
+1
@@ -7,3 +7,4 @@ fun test(xs: IntArray, dx: Int) {
|
||||
// JVM_IR_TEMPLATES
|
||||
// 5 ALOAD
|
||||
// 6 ILOAD
|
||||
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
fun test(a: Any?, b: Any?, c: Any) =
|
||||
a ?: b ?: c
|
||||
|
||||
// 2 IFNONNULL
|
||||
// 0 IFNULL
|
||||
// 0 ACONST_NULL
|
||||
+5
-4
@@ -5,13 +5,14 @@ class C(val s: String)
|
||||
fun test(na: A?) =
|
||||
na?.b?.c?.s
|
||||
|
||||
// 1 POP
|
||||
// 1 ACONST_NULL
|
||||
|
||||
// JVM_IR_TEMPLATES
|
||||
// 1 DUP
|
||||
// 1 IFNULL
|
||||
// 0 IFNONNULL
|
||||
// 1 ACONST_NULL
|
||||
|
||||
// JVM_TEMPLATES
|
||||
// 3 DUP
|
||||
// 3 IFNULL
|
||||
// 3 IFNULL
|
||||
// 0 IFNONNULL
|
||||
// 1 ACONST_NULL
|
||||
@@ -6,3 +6,6 @@ fun test(an: A?) = an?.b?.c?.s
|
||||
|
||||
// JVM_IR_TEMPLATES
|
||||
// 0 ASTORE
|
||||
// 1 IFNULL
|
||||
// 0 IFNONNULL
|
||||
// 1 ACONST_NULL
|
||||
@@ -6,3 +6,6 @@ fun test(an: A?) = an?.bn?.cn?.s
|
||||
|
||||
// JVM_IR_TEMPLATES
|
||||
// 0 ASTORE
|
||||
// 1 ACONST_NULL
|
||||
// 3 IFNULL
|
||||
// 0 IFNONNULL
|
||||
|
||||
+3
@@ -12,3 +12,6 @@ object Host {
|
||||
|
||||
// JVM_IR_TEMPLATES
|
||||
// 0 ASTORE
|
||||
// 1 ACONST_NULL
|
||||
// 1 IFNULL
|
||||
// 0 IFNONNULL
|
||||
+3
@@ -16,3 +16,6 @@ fun test(an: A?) = an?.b?.c?.s
|
||||
|
||||
// JVM_IR_TEMPLATES
|
||||
// 0 ASTORE
|
||||
// 1 ACONST_NULL
|
||||
// 1 IFNULL
|
||||
// 0 IFNONNULL
|
||||
Vendored
+5
-4
@@ -1,11 +1,12 @@
|
||||
fun test(a: Any?, b: Any?, c: String) =
|
||||
a?.toString() ?: b?.toString() ?: c
|
||||
|
||||
// 2 IFNULL
|
||||
// 1 ACONST_NULL
|
||||
|
||||
// JVM_IR_TEMPLATES
|
||||
// 1 IFNONNULL
|
||||
// 2 IFNULL
|
||||
// 0 IFNONNULL
|
||||
// 0 ACONST_NULL
|
||||
|
||||
// JVM_TEMPLATES
|
||||
// 2 IFNULL
|
||||
// 1 ACONST_NULL
|
||||
// 2 IFNONNULL
|
||||
@@ -11,7 +11,11 @@ fun test(a: Any?) =
|
||||
// JVM_IR_TEMPLATES
|
||||
// 1 DUP
|
||||
// 1 IFNULL
|
||||
// 0 ACONST_NULL
|
||||
// 0 IFNONNULL
|
||||
|
||||
// JVM_TEMPLATES
|
||||
// 2 DUP
|
||||
// 2 IFNULL
|
||||
// 0 ACONST_NULL
|
||||
// 0 IFNONNULL
|
||||
|
||||
Reference in New Issue
Block a user