[JS IR] Fix a IC dependency building for class methods.

The patch fixes lost IC dependencies for inherited class or interface methods.
 Especially between a fake override function and its implementation.
 Since IrSymbolDeserializer doesn't provide all class methods,
 they are collected from the class definitions.

^KT-53063 Fixed
This commit is contained in:
Alexander Korepanov
2022-07-05 12:34:54 +02:00
committed by Space
parent edbccd0add
commit 6525f7a7ac
42 changed files with 504 additions and 30 deletions
@@ -0,0 +1,3 @@
interface Module2Interface {
public suspend fun testFunction2() = 2
}
@@ -0,0 +1,4 @@
interface Module2Interface {
public suspend fun testFunction2() = 2
public fun testFunction22() = 22
}
@@ -0,0 +1,4 @@
interface Module2Interface {
public fun testFunction2() = 2
public fun testFunction22() = 22
}
@@ -0,0 +1,7 @@
interface Module2Interface {
public fun testFunction2() = 2
public fun testFunction22() = 22
public val testField222: Int
get() = 222
}
@@ -0,0 +1,7 @@
interface Module2Interface {
public fun testFunction2() = 20
public fun testFunction22() = 220
public val testField222: Int
get() = 2220
}
@@ -0,0 +1,2 @@
interface Module2Interface {
}
@@ -0,0 +1,34 @@
STEP 0:
modifications:
U : l1.0.kt -> l1.kt
added file: l1.kt
STEP 1:
modifications:
U : l1.1.kt -> l1.kt
modified ir: l1.kt
updated exports: l1.kt
STEP 2:
modifications:
U : l1.2.kt -> l1.kt
modified ir: l1.kt
STEP 3:
modifications:
U : l1.3.kt -> l1.kt
modified ir: l1.kt
STEP 4:
updated exports: l1.kt
STEP 5:
modifications:
U : l1.5.kt -> l1.kt
modified ir: l1.kt
STEP 6:
modifications:
U : l1.6.kt -> l1.kt
modified ir: l1.kt
updated exports: l1.kt
STEP 7:
modifications:
U : l1.0.kt -> l1.kt
modified ir: l1.kt
STEP 8:
updated exports: l1.kt