Fix incremental recompilation of JvmMultifileClass with top level function

See 7a679eb and previous changes where this behavior was broken (this was
untested, however). Fixes EA-90065

Original commit: 7b2a80ffa4
This commit is contained in:
Alexander Udalov
2016-10-18 16:06:39 +03:00
parent 1b59000669
commit be828cd3cf
8 changed files with 83 additions and 0 deletions
@@ -581,6 +581,12 @@ public class ExperimentalIncrementalJpsTestGenerated extends AbstractExperimenta
doTest(fileName);
}
@TestMetadata("multifileClassAddTopLevelFunWithDefault")
public void testMultifileClassAddTopLevelFunWithDefault() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/pureKotlin/multifileClassAddTopLevelFunWithDefault/");
doTest(fileName);
}
@TestMetadata("multifileClassFileAdded")
public void testMultifileClassFileAdded() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/pureKotlin/multifileClassFileAdded/");
@@ -581,6 +581,12 @@ public class IncrementalJpsTestGenerated extends AbstractIncrementalJpsTest {
doTest(fileName);
}
@TestMetadata("multifileClassAddTopLevelFunWithDefault")
public void testMultifileClassAddTopLevelFunWithDefault() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/pureKotlin/multifileClassAddTopLevelFunWithDefault/");
doTest(fileName);
}
@TestMetadata("multifileClassFileAdded")
public void testMultifileClassFileAdded() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/pureKotlin/multifileClassFileAdded/");
@@ -0,0 +1,4 @@
@file:[JvmName("Test") JvmMultifileClass]
package test
fun a() = "a"
@@ -0,0 +1,4 @@
@file:[JvmName("Test") JvmMultifileClass]
package test
fun b() = ""
@@ -0,0 +1,5 @@
@file:[JvmName("Test") JvmMultifileClass]
package test
fun b() = ""
fun b(s: String = "") = s
@@ -0,0 +1,24 @@
================ Step #1 =================
Cleaning output files:
out/production/module/META-INF/module.kotlin_module
out/production/module/test/Test.class
out/production/module/test/Test__BKt.class
End of files
Compiling files:
src/b.kt
End of files
Exit code: ADDITIONAL_PASS_REQUIRED
------------------------------------------
Cleaning output files:
out/production/module/META-INF/module.kotlin_module
out/production/module/test/Test.class
out/production/module/test/Test__AKt.class
out/production/module/usage/UsageKt.class
End of files
Compiling files:
src/a.kt
src/usage.kt
End of files
Exit code: OK
------------------------------------------
@@ -0,0 +1,26 @@
================ Step #1 =================
Cleaning output files:
out/production/module/META-INF/module.kotlin_module
out/production/module/test/Test.class
out/production/module/test/Test__BKt.class
End of files
Compiling files:
src/b.kt
End of files
Marked as dirty by Kotlin:
src/usage.kt
Exit code: ADDITIONAL_PASS_REQUIRED
------------------------------------------
Cleaning output files:
out/production/module/META-INF/module.kotlin_module
out/production/module/test/Test.class
out/production/module/test/Test__AKt.class
out/production/module/usage/UsageKt.class
End of files
Compiling files:
src/a.kt
src/usage.kt
End of files
Exit code: OK
------------------------------------------
@@ -0,0 +1,8 @@
package usage
import test.*
fun usage() {
a()
b()
}