Fix incremental recompilation of JvmMultifileClass with top level function

See 53b584f and previous changes where this behavior was broken (this was
untested, however). Fixes EA-90065
This commit is contained in:
Alexander Udalov
2016-10-18 16:06:39 +03:00
parent 0ac461927c
commit 7b2a80ffa4
10 changed files with 104 additions and 9 deletions
@@ -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()
}