JPS: Fix JvmMultifileClass processing for IR backend

#KT-44644 Fixed
This commit is contained in:
Aleksei.Cherepanov
2021-02-01 13:08:43 +03:00
parent ca4ec997ee
commit aa683d3b2a
14 changed files with 127 additions and 29 deletions
@@ -5,7 +5,11 @@ Cleaning output files:
out/production/module/test/Test.class
out/production/module/test/Test__BKt.class
End of files
Cleaning output files:
out/production/module/test/Test__AKt.class
End of files
Compiling files:
src/a.kt
src/b.kt
End of files
Marked as dirty by Kotlin:
@@ -14,12 +18,9 @@ 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
@@ -3,5 +3,20 @@
Compiling files:
src/b.kt
End of files
Exit code: OK
Marked as dirty by Kotlin:
src/a.kt
src/b.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/test/Test__BKt.class
End of files
Compiling files:
src/a.kt
src/b.kt
End of files
Exit code: OK
------------------------------------------
@@ -5,8 +5,12 @@ Cleaning output files:
out/production/module/test/Test.class
out/production/module/test/Test__BKt.class
End of files
Cleaning output files:
out/production/module/test/Test__AKt.class
End of files
Compiling files:
src/a.kt
src/b.kt
End of files
Exit code: OK
------------------------------------------
------------------------------------------
@@ -0,0 +1,25 @@
================ Step #1 =================
Marked as dirty by Kotlin:
src/partB.kt
src/usagePartB.kt
Cleaning output files:
out/production/module/META-INF/module.kotlin_module
out/production/module/OuterClass$InnerClass.class
out/production/module/OuterClass.class
out/production/module/UsagePartBKt.class
out/production/module/Utils.class
out/production/module/Utils__PartBKt.class
End of files
Cleaning output files:
out/production/module/Utils__PartAKt.class
End of files
Compiling files:
src/partA.kt
src/partB.kt
src/usagePartB.kt
End of files
Exit code: ABORT
------------------------------------------
COMPILATION FAILED
Unresolved reference: OuterClass
@@ -0,0 +1,4 @@
@file:JvmName("Utils")
@file:JvmMultifileClass
val aVal: Int get() = 0
@@ -0,0 +1,10 @@
@file:JvmName("Utils")
@file:JvmMultifileClass
val bVal: Int get() = 0
class OuterClass{
inner class InnerClass {
val getZero: Int get() = 0
}
}
@@ -0,0 +1,4 @@
@file:JvmName("Utils")
@file:JvmMultifileClass
val bVal: Int get() = 0
@@ -0,0 +1 @@
fun zero() = OuterClass().InnerClass().getZero
@@ -5,11 +5,16 @@ Cleaning output files:
out/production/module/Utils.class
out/production/module/Utils__PartBKt.class
End of files
Cleaning output files:
out/production/module/Utils__PartAKt.class
out/production/module/Utils__PartCKt.class
End of files
Compiling files:
src/partA.kt
src/partB.kt
src/partC.kt
End of files
Marked as dirty by Kotlin:
src/partA.kt
src/useFooF.kt
src/useFooG.kt
Exit code: ADDITIONAL_PASS_REQUIRED
@@ -18,15 +23,10 @@ Cleaning output files:
out/production/module/META-INF/module.kotlin_module
out/production/module/UseFooFKt.class
out/production/module/UseFooGKt.class
out/production/module/Utils.class
out/production/module/Utils__PartAKt.class
out/production/module/Utils__PartCKt.class
End of files
Compiling files:
src/partA.kt
src/partC.kt
src/useFooF.kt
src/useFooG.kt
End of files
Exit code: OK
------------------------------------------
------------------------------------------
@@ -5,18 +5,12 @@ Cleaning output files:
out/production/module/Utils.class
out/production/module/Utils__PartBKt.class
End of files
Compiling files:
src/partB.kt
End of files
Exit code: OK
------------------------------------------
Cleaning output files:
out/production/module/META-INF/module.kotlin_module
out/production/module/Utils.class
out/production/module/Utils__PartAKt.class
End of files
Compiling files:
src/partA.kt
src/partB.kt
End of files
Exit code: OK
------------------------------------------