[K/JS] Implement file merging for clashed file during per-file compilation
This commit is contained in:
Generated
+6
@@ -175,6 +175,12 @@ public class JsFirInvalidationPerFileTestGenerated extends AbstractJsFirInvalida
|
||||
runTest("js/js.translator/testData/incremental/invalidation/fastPath2/");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("fileNameClash")
|
||||
public void testFileNameClash() throws Exception {
|
||||
runTest("js/js.translator/testData/incremental/invalidation/fileNameClash/");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("friendDependency")
|
||||
public void testFriendDependency() throws Exception {
|
||||
|
||||
Generated
+6
@@ -175,6 +175,12 @@ public class JsFirInvalidationPerModuleTestGenerated extends AbstractJsFirInvali
|
||||
runTest("js/js.translator/testData/incremental/invalidation/fastPath2/");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("fileNameClash")
|
||||
public void testFileNameClash() throws Exception {
|
||||
runTest("js/js.translator/testData/incremental/invalidation/fileNameClash/");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("friendDependency")
|
||||
public void testFriendDependency() throws Exception {
|
||||
|
||||
Generated
+6
@@ -175,6 +175,12 @@ public class JsIrES6InvalidationPerFileTestGenerated extends AbstractJsIrES6Inva
|
||||
runTest("js/js.translator/testData/incremental/invalidation/fastPath2/");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("fileNameClash")
|
||||
public void testFileNameClash() throws Exception {
|
||||
runTest("js/js.translator/testData/incremental/invalidation/fileNameClash/");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("friendDependency")
|
||||
public void testFriendDependency() throws Exception {
|
||||
|
||||
+6
@@ -175,6 +175,12 @@ public class JsIrES6InvalidationPerModuleTestGenerated extends AbstractJsIrES6In
|
||||
runTest("js/js.translator/testData/incremental/invalidation/fastPath2/");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("fileNameClash")
|
||||
public void testFileNameClash() throws Exception {
|
||||
runTest("js/js.translator/testData/incremental/invalidation/fileNameClash/");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("friendDependency")
|
||||
public void testFriendDependency() throws Exception {
|
||||
|
||||
Generated
+6
@@ -175,6 +175,12 @@ public class JsIrInvalidationPerFileTestGenerated extends AbstractJsIrInvalidati
|
||||
runTest("js/js.translator/testData/incremental/invalidation/fastPath2/");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("fileNameClash")
|
||||
public void testFileNameClash() throws Exception {
|
||||
runTest("js/js.translator/testData/incremental/invalidation/fileNameClash/");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("friendDependency")
|
||||
public void testFriendDependency() throws Exception {
|
||||
|
||||
Generated
+6
@@ -175,6 +175,12 @@ public class JsIrInvalidationPerModuleTestGenerated extends AbstractJsIrInvalida
|
||||
runTest("js/js.translator/testData/incremental/invalidation/fastPath2/");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("fileNameClash")
|
||||
public void testFileNameClash() throws Exception {
|
||||
runTest("js/js.translator/testData/incremental/invalidation/fileNameClash/");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("friendDependency")
|
||||
public void testFriendDependency() throws Exception {
|
||||
|
||||
+6
@@ -2349,6 +2349,12 @@ public class FirJsBoxTestGenerated extends AbstractFirJsBoxTest {
|
||||
runTest("js/js.translator/testData/box/esModules/export/exportTopLevelProperty.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("fileNameClash.kt")
|
||||
public void testFileNameClash() throws Exception {
|
||||
runTest("js/js.translator/testData/box/esModules/export/fileNameClash.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("nonIndetifierModuleName.kt")
|
||||
public void testNonIndetifierModuleName() throws Exception {
|
||||
|
||||
+6
@@ -2455,6 +2455,12 @@ public class FirJsES6BoxTestGenerated extends AbstractFirJsES6BoxTest {
|
||||
runTest("js/js.translator/testData/box/esModules/export/exportTopLevelProperty.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("fileNameClash.kt")
|
||||
public void testFileNameClash() throws Exception {
|
||||
runTest("js/js.translator/testData/box/esModules/export/fileNameClash.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("nonIndetifierModuleName.kt")
|
||||
public void testNonIndetifierModuleName() throws Exception {
|
||||
|
||||
+6
@@ -2455,6 +2455,12 @@ public class IrBoxJsES6TestGenerated extends AbstractIrBoxJsES6Test {
|
||||
runTest("js/js.translator/testData/box/esModules/export/exportTopLevelProperty.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("fileNameClash.kt")
|
||||
public void testFileNameClash() throws Exception {
|
||||
runTest("js/js.translator/testData/box/esModules/export/fileNameClash.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("nonIndetifierModuleName.kt")
|
||||
public void testNonIndetifierModuleName() throws Exception {
|
||||
|
||||
+6
@@ -2349,6 +2349,12 @@ public class IrBoxJsTestGenerated extends AbstractIrBoxJsTest {
|
||||
runTest("js/js.translator/testData/box/esModules/export/exportTopLevelProperty.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("fileNameClash.kt")
|
||||
public void testFileNameClash() throws Exception {
|
||||
runTest("js/js.translator/testData/box/esModules/export/fileNameClash.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("nonIndetifierModuleName.kt")
|
||||
public void testNonIndetifierModuleName() throws Exception {
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
// DONT_TARGET_EXACT_BACKEND: JS
|
||||
// ES_MODULES
|
||||
|
||||
// MODULE: name_clash
|
||||
// FILE: test1/lib.kt
|
||||
package foo
|
||||
|
||||
@JsExport
|
||||
open class A<T> {
|
||||
open fun foo(value: T): T = value
|
||||
}
|
||||
|
||||
// FILE: test2/lib.kt
|
||||
package foo
|
||||
|
||||
@JsExport
|
||||
class B: A<String>() {
|
||||
override fun foo(value: String): String = value
|
||||
}
|
||||
|
||||
// FILE: entry.mjs
|
||||
// ENTRY_ES_MODULE
|
||||
import { A, B } from "./fileNameClash-name_clash_v5.mjs";
|
||||
|
||||
export function box() {
|
||||
var a = new A()
|
||||
var aFoo = a.foo("ok")
|
||||
if (aFoo != "ok") return "fail 1"
|
||||
|
||||
var b = new B()
|
||||
var bFoo = b.foo("ok")
|
||||
if (bFoo != "ok") return "fail 2"
|
||||
|
||||
return "OK"
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
package foo
|
||||
|
||||
fun test1() = test2()
|
||||
@@ -0,0 +1,4 @@
|
||||
package foo
|
||||
|
||||
@JsExport
|
||||
fun test1() = test2()
|
||||
@@ -0,0 +1,3 @@
|
||||
package foo
|
||||
|
||||
fun test1() = "OK"
|
||||
@@ -0,0 +1,5 @@
|
||||
@file:JsFileName("f1")
|
||||
|
||||
package foo
|
||||
|
||||
fun test2() = "OK"
|
||||
@@ -0,0 +1,6 @@
|
||||
@file:JsFileName("f1")
|
||||
|
||||
package foo
|
||||
|
||||
@JsExport
|
||||
fun test2() = "OK"
|
||||
@@ -0,0 +1,3 @@
|
||||
package foo
|
||||
|
||||
fun test2() = "OK"
|
||||
+22
@@ -0,0 +1,22 @@
|
||||
STEP 0:
|
||||
added file: f1.kt
|
||||
STEP 1:
|
||||
modifications:
|
||||
U : f1.1.kt -> f1.kt
|
||||
U : f2.1.kt -> f2.kt
|
||||
modified ir: f1.kt
|
||||
added file: f2.kt
|
||||
STEP 2:
|
||||
modifications:
|
||||
U : f2.2.kt -> f2.kt
|
||||
modified ir: f2.kt
|
||||
updated imports: f1.kt
|
||||
STEP 3:
|
||||
modifications:
|
||||
U : f1.3.kt -> f1.kt
|
||||
modified ir: f1.kt
|
||||
STEP 4:
|
||||
modifications:
|
||||
U : f2.4.kt -> f2.kt
|
||||
modified ir: f2.kt
|
||||
updated imports: f1.kt
|
||||
@@ -0,0 +1,3 @@
|
||||
import foo.test1
|
||||
|
||||
fun box() = test1()
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
STEP 0:
|
||||
dependencies: lib
|
||||
added file: m.kt
|
||||
STEP 1:
|
||||
dependencies: lib
|
||||
STEP 2:
|
||||
dependencies: lib
|
||||
STEP 3:
|
||||
dependencies: lib
|
||||
updated imports: m.kt
|
||||
STEP 4:
|
||||
dependencies: lib
|
||||
+22
@@ -0,0 +1,22 @@
|
||||
MODULES: lib, main
|
||||
|
||||
STEP 0:
|
||||
libs: lib, main
|
||||
dirty js modules: main, lib
|
||||
dirty js files: lib/foo/f1, main/m, main/m.export, main
|
||||
STEP 1:
|
||||
libs: lib, main
|
||||
dirty js modules: lib
|
||||
dirty js files: lib/foo/f1
|
||||
STEP 2:
|
||||
libs: lib, main
|
||||
dirty js modules: lib
|
||||
dirty js files: lib/foo/f1, lib/foo/f1.export, lib
|
||||
STEP 3:
|
||||
libs: lib, main
|
||||
dirty js modules: lib, main
|
||||
dirty js files: lib/foo/f1, lib/foo/f1.export, main/m
|
||||
STEP 4:
|
||||
libs: lib, main
|
||||
dirty js modules: lib
|
||||
dirty js files: lib/foo/f1, lib/foo/f2, lib/foo/f1.export
|
||||
Reference in New Issue
Block a user