[JS IR IC] Interface default implementations affect IC hash

Adding or removing a method or property with
a default implementation to an interface should
invalidate all children: we must regenerate JS code for them

^KT-56237 Fixed
This commit is contained in:
Alexander Korepanov
2023-04-25 14:53:34 +02:00
committed by Space Team
parent bad5c58952
commit 81b591ed21
45 changed files with 391 additions and 70 deletions
@@ -0,0 +1,3 @@
class Module2Class: Module1Interface {
fun testFunction1() = 1
}
@@ -1,3 +0,0 @@
class Module1Class: Module2Interface {
fun testFunction1() = 1
}
@@ -1,25 +1,28 @@
STEP 0:
dependencies: lib1
added file: l2.kt
added file: class2.kt, object2.kt
STEP 1:
dependencies: lib1
updated exports: l2.kt
updated exports: class2.kt, object2.kt
updated imports: class2.kt, object2.kt
STEP 2:
dependencies: lib1
updated imports: l2.kt
updated imports: class2.kt, object2.kt
STEP 3:
dependencies: lib1
updated imports: class2.kt, object2.kt
STEP 4:
dependencies: lib1
updated exports: l2.kt
updated exports: class2.kt, object2.kt
STEP 5:
dependencies: lib1
STEP 6:
dependencies: lib1
updated imports: l2.kt
updated exports: l2.kt
updated imports: class2.kt, object2.kt
updated exports: class2.kt, object2.kt
STEP 7:
dependencies: lib1
updated imports: class2.kt, object2.kt
STEP 8:
dependencies: lib1
updated exports: l2.kt
updated exports: class2.kt, object2.kt
@@ -0,0 +1,3 @@
object Module2Object: Module1Interface {
fun testFunction1() = 1
}