Write kotlin metadata on class-files for coroutine state machines

Otherwise it breaks JPS assumptions, that leads to exceptions like:
Error:Kotlin: [Internal Error] java.lang.AssertionError: Couldn't load KotlinClass from /Users/jetbrains/IdeaProjects/KotlinPlaygroundBeta11/out/production/KotlinPlaygroundBeta11/Counter$both$1.class; it may happen because class doesn't have valid Kotlin annotations
    at org.jetbrains.kotlin.build.GeneratedJvmClass.<init>(generatedFiles.kt:36)
    at org.jetbrains.kotlin.jps.build.KotlinBuilder.getGeneratedFiles(KotlinBuilder.kt:469)
    at org.jetbrains.kotlin.jps.build.KotlinBuilder.doBuild(KotlinBuilder.kt:241)
    at org.jetbrains.kotlin.jps.build.KotlinBuilder.build(KotlinBuilder.kt:140)
...
This commit is contained in:
Denis Zharkov
2017-01-16 16:40:26 +03:00
parent 93b2c56bb4
commit 9f217de10b
9 changed files with 53 additions and 4 deletions
@@ -1,3 +1,4 @@
@kotlin.Metadata
final class Controller$multipleSuspensions$1 {
synthetic final field this$0: Controller
inner class Controller$multipleSuspensions$1
@@ -5,6 +6,7 @@ final class Controller$multipleSuspensions$1 {
public final @org.jetbrains.annotations.Nullable method doResume(@org.jetbrains.annotations.Nullable p0: java.lang.Object, @org.jetbrains.annotations.Nullable p1: java.lang.Throwable): java.lang.Object
}
@kotlin.Metadata
final class Controller$nonTailCall$1 {
synthetic final field this$0: Controller
inner class Controller$nonTailCall$1