[JS IR] Enable DTS generation in IC

^KT-54398 Fixed
This commit is contained in:
Alexander Korepanov
2022-12-02 14:33:50 +01:00
committed by Space Team
parent d21cbfe02e
commit 9edaebf235
24 changed files with 231 additions and 18 deletions
@@ -0,0 +1 @@
fun foo() = 0
@@ -0,0 +1,2 @@
@JsExport
fun foo() = 0
@@ -0,0 +1,3 @@
@JsExport
@JsName("bar")
fun foo() = 0
@@ -0,0 +1,18 @@
STEP 0:
modifications:
U : l1.0.4.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:
STEP 4:
modifications:
U : l1.0.4.kt -> l1.kt
modified ir: l1.kt
STEP 5..6:
@@ -0,0 +1,4 @@
class MyClass(val stepId: Int) {
fun qux() = foo() + stepId
}
@@ -0,0 +1,5 @@
@JsExport
class MyClass(val stepId: Int) {
fun qux() = foo() + stepId
}
@@ -0,0 +1,6 @@
@JsExport
class MyClass(val stepId: Int) {
@JsName("baz")
fun qux() = foo() + stepId
}
@@ -0,0 +1,6 @@
@JsExport
class MyClass(val stepId: Int) {
@JsName("bar")
fun qux() = foo() + stepId
}
@@ -0,0 +1,26 @@
STEP 0:
dependencies: lib1
modifications:
U : l2.0.kt -> l2.kt
added file: l2.kt
STEP 1..2:
dependencies: lib1
updated imports: l2.kt
STEP 3:
dependencies: lib1
modifications:
U : l2.3.kt -> l2.kt
modified ir: l2.kt
STEP 4:
dependencies: lib1
updated imports: l2.kt
STEP 5:
dependencies: lib1
modifications:
U : l2.5.kt -> l2.kt
modified ir: l2.kt
STEP 6:
dependencies: lib1
modifications:
U : l2.6.kt -> l2.kt
modified ir: l2.kt
@@ -0,0 +1,4 @@
declare namespace kotlin_main {
type Nullable<T> = T | null | undefined
function box(stepId: number): string;
}
@@ -0,0 +1,5 @@
declare namespace kotlin_main {
type Nullable<T> = T | null | undefined
function foo(): number;
function box(stepId: number): string;
}
@@ -0,0 +1,5 @@
declare namespace kotlin_main {
type Nullable<T> = T | null | undefined
function bar(): number;
function box(stepId: number): string;
}
@@ -0,0 +1,10 @@
declare namespace kotlin_main {
type Nullable<T> = T | null | undefined
function bar(): number;
class MyClass {
constructor(stepId: number);
get stepId(): number;
qux(): number;
}
function box(stepId: number): string;
}
@@ -0,0 +1,9 @@
declare namespace kotlin_main {
type Nullable<T> = T | null | undefined
class MyClass {
constructor(stepId: number);
get stepId(): number;
qux(): number;
}
function box(stepId: number): string;
}
@@ -0,0 +1,9 @@
declare namespace kotlin_main {
type Nullable<T> = T | null | undefined
class MyClass {
constructor(stepId: number);
get stepId(): number;
baz(): number;
}
function box(stepId: number): string;
}
@@ -0,0 +1,9 @@
declare namespace kotlin_main {
type Nullable<T> = T | null | undefined
class MyClass {
constructor(stepId: number);
get stepId(): number;
bar(): number;
}
function box(stepId: number): string;
}
@@ -0,0 +1,7 @@
fun box(stepId: Int): String {
val x = MyClass(stepId).qux()
if (x != stepId) {
return "Fail: $x != $stepId"
}
return "OK"
}
@@ -0,0 +1,25 @@
STEP 0:
dependencies: lib1, lib2
added file: m.kt
expected dts: m.0.d.ts
STEP 1:
dependencies: lib1, lib2
expected dts: m.1.d.ts
STEP 2:
dependencies: lib1, lib2
expected dts: m.2.d.ts
STEP 3:
dependencies: lib1, lib2
updated imports: m.kt
expected dts: m.3.d.ts
STEP 4:
dependencies: lib1, lib2
expected dts: m.4.d.ts
STEP 5:
dependencies: lib1, lib2
updated imports: m.kt
expected dts: m.5.d.ts
STEP 6:
dependencies: lib1, lib2
updated imports: m.kt
expected dts: m.6.d.ts
@@ -0,0 +1,17 @@
MODULES: lib1, lib2, main
STEP 0..1:
libs: lib1, lib2, main
dirty js: lib1, lib2, main
STEP 2:
libs: lib1, lib2, main
dirty js: lib1, lib2
STEP 3:
libs: lib1, lib2, main
dirty js: lib2, main
STEP 4:
libs: lib1, lib2, main
dirty js: lib1, lib2, main
STEP 5..6:
libs: lib1, lib2, main
dirty js: lib2, main