[JS IR] Add tests for JS IR IC + PL

^KT-57347 related
This commit is contained in:
Alexander Korepanov
2023-05-08 16:54:30 +02:00
committed by Space Team
parent 97620030c6
commit 82a1242f22
96 changed files with 710 additions and 3 deletions
@@ -0,0 +1,3 @@
interface Foo {
fun getSomething() = 0
}
@@ -0,0 +1,3 @@
open class Foo {
fun getSomething() = 77
}
@@ -0,0 +1,3 @@
interface Foo {
fun getSomething() = 2
}
@@ -0,0 +1,3 @@
open class Foo {
open fun getSomething() = 7
}
@@ -0,0 +1,21 @@
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
STEP 2:
modifications:
U : l1.2.kt -> l1.kt
modified ir: l1.kt
STEP 3..4:
STEP 5:
modifications:
U : l1.5.kt -> l1.kt
modified ir: l1.kt
STEP 6:
updated exports: l1.kt
STEP 7:
@@ -0,0 +1,2 @@
open class Bar : Foo {
}
@@ -0,0 +1,3 @@
open class Bar : Foo {
override fun getSomething() = 3
}
@@ -0,0 +1,3 @@
interface Bar : Foo {
override fun getSomething() = 4
}
@@ -0,0 +1,3 @@
open class Bar : Foo() {
override fun getSomething() = 6
}
@@ -0,0 +1,2 @@
open class Bar : Foo() {
}
@@ -0,0 +1,34 @@
STEP 0:
dependencies: lib1
modifications:
U : l2.0.kt -> l2.kt
added file: l2.kt
STEP 1..2:
dependencies: lib1
rebuild klib: false
updated imports: l2.kt
STEP 3:
dependencies: lib1
modifications:
U : l2.3.kt -> l2.kt
modified ir: l2.kt
STEP 4:
dependencies: lib1
modifications:
U : l2.4.kt -> l2.kt
modified ir: l2.kt
STEP 5:
dependencies: lib1
rebuild klib: false
updated exports: l2.kt
updated imports: l2.kt
STEP 6:
dependencies: lib1
modifications:
U : l2.6.kt -> l2.kt
modified ir: l2.kt
STEP 7:
dependencies: lib1
modifications:
U : l2.7.kt -> l2.kt
modified ir: l2.kt
@@ -0,0 +1,2 @@
class Klass: Bar() {
}
@@ -0,0 +1,2 @@
class Klass: Bar {
}
@@ -0,0 +1,3 @@
class Klass: Bar() {
override fun getSomething() = super.getSomething()
}
@@ -0,0 +1,5 @@
fun box(stepId: Int): String {
val x = test()
if (stepId != x) return "Fail; got $x"
return "OK"
}
@@ -0,0 +1,35 @@
STEP 0:
dependencies: lib1, lib2
modifications:
U : klass.0.kt -> klass.kt
U : test.0.kt -> test.kt
added file: m.kt, test.kt, klass.kt
STEP 1..2:
dependencies: lib1, lib2
rebuild klib: false
updated imports: test.kt, klass.kt
STEP 3:
dependencies: lib1, lib2
rebuild klib: false
STEP 4:
dependencies: lib1, lib2
modifications:
U : klass.4.kt -> klass.kt
U : test.4.kt -> test.kt
modified ir: klass.kt, test.kt
STEP 5:
dependencies: lib1, lib2
rebuild klib: false
updated exports: klass.kt
updated imports: test.kt, klass.kt
STEP 6:
dependencies: lib1, lib2
modifications:
U : klass.6.kt -> klass.kt
modified ir: klass.kt
updated exports: klass.kt
updated imports: test.kt
STEP 7:
dependencies: lib1, lib2
rebuild klib: false
updated imports: klass.kt
@@ -0,0 +1,7 @@
fun test(): Int {
try {
return Klass().getSomething()
} catch (e: Error) {
return 1
}
}
@@ -0,0 +1,7 @@
fun test(): Int {
try {
return Klass().getSomething()
} catch (e: Error) {
return 5
}
}
@@ -0,0 +1,17 @@
MODULES: lib1, lib2, main
STEP 0..2:
libs: lib1, lib2, main
dirty js: lib1, lib2, main
STEP 3:
libs: lib1, lib2, main
dirty js: lib1, lib2
STEP 4:
libs: lib1, lib2, main
dirty js: lib2, main
STEP 5..6:
libs: lib1, lib2, main
dirty js: lib1, lib2, main
STEP 7:
libs: lib1, lib2, main
dirty js: lib2, main