[JS IR] Fix inline functions call graph in IC
Add a dependency for inline function references, because in some cases the references may be inlined. ^KT-55144 Fixed
This commit is contained in:
committed by
Space Team
parent
c31705240a
commit
d8ab9498ab
+5
@@ -0,0 +1,5 @@
|
||||
private val prop = "0"
|
||||
|
||||
internal inline fun foo(lambda: () -> String = ::prop): String {
|
||||
return lambda()
|
||||
}
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
private val prop = "1"
|
||||
|
||||
internal inline fun foo(lambda: () -> String = ::prop): String {
|
||||
return lambda()
|
||||
}
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
private object Obj {
|
||||
val x = "10"
|
||||
}
|
||||
|
||||
private inline fun bar() = Obj.x
|
||||
|
||||
internal inline fun foo(lambda: () -> String = ::bar): String {
|
||||
return lambda()
|
||||
}
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
private object Obj {
|
||||
val x = "11"
|
||||
}
|
||||
|
||||
private inline fun bar() = Obj.x
|
||||
|
||||
internal inline fun foo(lambda: () -> String = ::bar): String {
|
||||
return lambda()
|
||||
}
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
private object Obj {
|
||||
inline val x get() = "12"
|
||||
}
|
||||
|
||||
private inline fun bar() = Obj.x
|
||||
|
||||
internal inline fun foo(lambda: () -> String = ::bar): String {
|
||||
return lambda()
|
||||
}
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
private object Obj {
|
||||
inline val x get() = "13"
|
||||
}
|
||||
|
||||
private inline fun bar() = Obj.x
|
||||
|
||||
internal inline fun foo(lambda: () -> String = ::bar): String {
|
||||
return lambda()
|
||||
}
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
private val prop get() = "2"
|
||||
|
||||
internal inline fun foo(lambda: () -> String = ::prop): String {
|
||||
return lambda()
|
||||
}
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
private fun prop() = "3"
|
||||
|
||||
internal inline fun foo(lambda: () -> String = ::prop): String {
|
||||
return lambda()
|
||||
}
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
private fun prop() = "3"
|
||||
|
||||
internal inline fun foo(lambda: () -> String = { "4" }): String {
|
||||
return lambda()
|
||||
}
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
internal inline fun foo(lambda: () -> String = { "5" }): String {
|
||||
return lambda()
|
||||
}
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
private inline fun prop() = "6"
|
||||
|
||||
internal inline fun foo(lambda: () -> String = ::prop): String {
|
||||
return lambda()
|
||||
}
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
private inline fun prop() = "7"
|
||||
|
||||
internal inline fun foo(lambda: () -> String = ::prop): String {
|
||||
return lambda()
|
||||
}
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
private object Obj {
|
||||
val x = "8"
|
||||
|
||||
override fun toString() = x
|
||||
}
|
||||
|
||||
internal inline fun foo(lambda: () -> String = { "$Obj" } ): String {
|
||||
return lambda()
|
||||
}
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
private object Obj {
|
||||
val x = "9"
|
||||
|
||||
override fun toString() = x
|
||||
}
|
||||
|
||||
internal inline fun foo(lambda: () -> String = { "$Obj" } ): String {
|
||||
return lambda()
|
||||
}
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
fun box(stepId: Int): String {
|
||||
val x = foo().toInt()
|
||||
if (x != stepId) {
|
||||
return "Fail $x != $stepId"
|
||||
}
|
||||
return "OK"
|
||||
}
|
||||
+65
@@ -0,0 +1,65 @@
|
||||
STEP 0:
|
||||
modifications:
|
||||
U : f.0.kt -> f.kt
|
||||
added file: m.kt, f.kt
|
||||
STEP 1:
|
||||
modifications:
|
||||
U : f.1.kt -> f.kt
|
||||
modified ir: f.kt
|
||||
STEP 2:
|
||||
modifications:
|
||||
U : f.2.kt -> f.kt
|
||||
modified ir: f.kt
|
||||
STEP 3:
|
||||
modifications:
|
||||
U : f.3.kt -> f.kt
|
||||
modified ir: f.kt
|
||||
updated imports: m.kt
|
||||
STEP 4:
|
||||
modifications:
|
||||
U : f.4.kt -> f.kt
|
||||
modified ir: f.kt
|
||||
updated imports: m.kt
|
||||
STEP 5:
|
||||
modifications:
|
||||
U : f.5.kt -> f.kt
|
||||
modified ir: f.kt
|
||||
updated imports: m.kt
|
||||
STEP 6:
|
||||
modifications:
|
||||
U : f.6.kt -> f.kt
|
||||
modified ir: f.kt
|
||||
updated imports: m.kt
|
||||
STEP 7:
|
||||
modifications:
|
||||
U : f.7.kt -> f.kt
|
||||
modified ir: f.kt
|
||||
updated imports: m.kt
|
||||
STEP 8:
|
||||
modifications:
|
||||
U : f.8.kt -> f.kt
|
||||
modified ir: f.kt
|
||||
updated imports: m.kt
|
||||
STEP 9:
|
||||
modifications:
|
||||
U : f.9.kt -> f.kt
|
||||
modified ir: f.kt
|
||||
STEP 10:
|
||||
modifications:
|
||||
U : f.10.kt -> f.kt
|
||||
modified ir: f.kt
|
||||
updated imports: m.kt
|
||||
STEP 11:
|
||||
modifications:
|
||||
U : f.11.kt -> f.kt
|
||||
modified ir: f.kt
|
||||
STEP 12:
|
||||
modifications:
|
||||
U : f.12.kt -> f.kt
|
||||
modified ir: f.kt
|
||||
updated imports: m.kt
|
||||
STEP 13:
|
||||
modifications:
|
||||
U : f.13.kt -> f.kt
|
||||
modified ir: f.kt
|
||||
updated imports: m.kt
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
MODULES: main
|
||||
|
||||
STEP 0..13:
|
||||
libs: main
|
||||
dirty js: main
|
||||
Reference in New Issue
Block a user