JVM_IR simplify null check on trivially initialized vals only
This commit is contained in:
committed by
TeamCityServer
parent
ae1288948a
commit
aea2db97c5
+18
@@ -0,0 +1,18 @@
|
||||
abstract class Base() {
|
||||
init {
|
||||
foo()
|
||||
}
|
||||
|
||||
abstract fun foo()
|
||||
}
|
||||
|
||||
class Derived(val x: String) : Base() {
|
||||
override fun foo() {
|
||||
x?.length
|
||||
}
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
Derived("")
|
||||
return "OK"
|
||||
}
|
||||
+1
-1
@@ -14,5 +14,5 @@ class A(val x: String) {
|
||||
|
||||
// JVM_IR_TEMPLATES
|
||||
// 4 IFNULL
|
||||
// 0 IFNONNULL
|
||||
// 2 IFNONNULL
|
||||
// 0 ACONST_NULL
|
||||
|
||||
+2
-2
@@ -6,8 +6,8 @@ fun test(na: A?) =
|
||||
na?.b?.c?.s
|
||||
|
||||
// JVM_IR_TEMPLATES
|
||||
// 1 DUP
|
||||
// 1 IFNULL
|
||||
// 3 DUP
|
||||
// 3 IFNULL
|
||||
// 0 IFNONNULL
|
||||
// 1 ACONST_NULL
|
||||
|
||||
|
||||
@@ -6,6 +6,6 @@ fun test(an: A?) = an?.b?.c?.s
|
||||
|
||||
// JVM_IR_TEMPLATES
|
||||
// 0 ASTORE
|
||||
// 1 IFNULL
|
||||
// 3 IFNULL
|
||||
// 0 IFNONNULL
|
||||
// 1 ACONST_NULL
|
||||
+1
-1
@@ -13,5 +13,5 @@ object Host {
|
||||
// JVM_IR_TEMPLATES
|
||||
// 0 ASTORE
|
||||
// 1 ACONST_NULL
|
||||
// 1 IFNULL
|
||||
// 3 IFNULL
|
||||
// 0 IFNONNULL
|
||||
+1
-1
@@ -17,5 +17,5 @@ fun test(an: A?) = an?.b?.c?.s
|
||||
// JVM_IR_TEMPLATES
|
||||
// 0 ASTORE
|
||||
// 1 ACONST_NULL
|
||||
// 1 IFNULL
|
||||
// 3 IFNULL
|
||||
// 0 IFNONNULL
|
||||
Vendored
+1
-1
@@ -3,7 +3,7 @@ fun test(a: Any?, b: Any?, c: String) =
|
||||
|
||||
// JVM_IR_TEMPLATES
|
||||
// 2 IFNULL
|
||||
// 0 IFNONNULL
|
||||
// 1 IFNONNULL
|
||||
// 0 ACONST_NULL
|
||||
|
||||
// JVM_TEMPLATES
|
||||
|
||||
@@ -9,8 +9,8 @@ fun test(a: Any?) =
|
||||
// 0 valueOf
|
||||
|
||||
// JVM_IR_TEMPLATES
|
||||
// 1 DUP
|
||||
// 1 IFNULL
|
||||
// 2 DUP
|
||||
// 2 IFNULL
|
||||
// 0 ACONST_NULL
|
||||
// 0 IFNONNULL
|
||||
|
||||
|
||||
Reference in New Issue
Block a user