JVM_IR optimize temporary vals initialized with other vals
This commit is contained in:
committed by
TeamCityServer
parent
939f25333e
commit
568958492a
+9
@@ -0,0 +1,9 @@
|
||||
fun test(xs: IntArray, dx: Int) {
|
||||
for (i in xs.indices) {
|
||||
xs[i] += dx
|
||||
}
|
||||
}
|
||||
|
||||
// JVM_IR_TEMPLATES
|
||||
// 5 ALOAD
|
||||
// 6 ILOAD
|
||||
@@ -0,0 +1,8 @@
|
||||
class A(val b: B)
|
||||
class B(val c: C)
|
||||
class C(val s: String)
|
||||
|
||||
fun test(an: A?) = an?.b?.c?.s
|
||||
|
||||
// JVM_IR_TEMPLATES
|
||||
// 0 ASTORE
|
||||
@@ -0,0 +1,8 @@
|
||||
class A(val bn: B?)
|
||||
class B(val cn: C?)
|
||||
class C(val s: String)
|
||||
|
||||
fun test(an: A?) = an?.bn?.cn?.s
|
||||
|
||||
// JVM_IR_TEMPLATES
|
||||
// 0 ASTORE
|
||||
+14
@@ -0,0 +1,14 @@
|
||||
class A
|
||||
class B
|
||||
class C
|
||||
|
||||
object Host {
|
||||
val A.b: B get() = B()
|
||||
val B.c: C get() = C()
|
||||
val C.s: String get() = "s"
|
||||
|
||||
fun test(an: A?) = an?.b?.c?.s
|
||||
}
|
||||
|
||||
// JVM_IR_TEMPLATES
|
||||
// 0 ASTORE
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
import Host.b
|
||||
import Host.c
|
||||
import Host.s
|
||||
|
||||
class A
|
||||
class B
|
||||
class C
|
||||
|
||||
object Host {
|
||||
val A.b: B get() = B()
|
||||
val B.c: C get() = C()
|
||||
val C.s: String get() = "s"
|
||||
}
|
||||
|
||||
fun test(an: A?) = an?.b?.c?.s
|
||||
|
||||
// JVM_IR_TEMPLATES
|
||||
// 0 ASTORE
|
||||
Reference in New Issue
Block a user