[JS IR] IC: Propagate dependencies from nested declaration to parent

JsIrLinker can't load nested declarations,
 therefore it is required to load their parent.
 This patch adds a dependency in the incremental cache graph
 between nested declaration user and nested declaration parent.

^KT-53931 Fixed
^KT-54120 Fixed
This commit is contained in:
Alexander Korepanov
2022-09-23 18:55:08 +02:00
committed by Space
parent bd085fbf43
commit 252dc01dd5
34 changed files with 372 additions and 13 deletions
@@ -0,0 +1 @@
inline fun foo() = MyClass1.companionMethod()
@@ -0,0 +1 @@
inline fun foo() = MyClass1.InternalClass.companionMethod()
@@ -0,0 +1,6 @@
inline fun foo(): Int {
bar(null)
return MyClass1.InternalClass.companionMethod() + 1
}
fun bar(x: Any?): Any = (x as? MyClass1) ?: 1
@@ -0,0 +1,6 @@
inline fun foo(): Int {
bar(null)
return MyClass1.InternalClass.companionMethod() + 1
}
fun bar(x: Any?): Any = x ?: MyClass1()
@@ -0,0 +1,27 @@
STEP 0:
dependencies: lib1
modifications:
U : l2.0.kt -> l2.kt
added file: l2.kt
STEP 1:
dependencies: lib1
updated imports: l2.kt
STEP 2:
dependencies: lib1
modifications:
U : l2.2.kt -> l2.kt
modified ir: l2.kt
STEP 3:
dependencies: lib1
updated imports: l2.kt
STEP 4:
dependencies: lib1
modifications:
U : l2.4.kt -> l2.kt
modified ir: l2.kt
STEP 5:
dependencies: lib1
modifications:
U : l2.5.kt -> l2.kt
modified ir: l2.kt