JVM_IR: Generate suspend fun main wrapper as class instead of reference

This way, there is no getName, getOwner and getSignature generated.
 #KT-37404: Open
This commit is contained in:
Ilmir Usmanov
2020-03-10 15:42:12 +01:00
parent e495c35ad7
commit fd70b10b17
9 changed files with 122 additions and 22 deletions
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JVM_IR
// WITH_RUNTIME
@file:JvmMultifileClass
@file:JvmName("Foo")
@@ -0,0 +1,22 @@
@kotlin.Metadata
public final class Hello/Foo {
public final static method main(@org.jetbrains.annotations.NotNull p0: java.lang.String[]): void
public final static @org.jetbrains.annotations.Nullable method main(@org.jetbrains.annotations.NotNull p0: java.lang.String[], @org.jetbrains.annotations.NotNull p1: kotlin.coroutines.Continuation): java.lang.Object
}
@kotlin.Metadata
synthetic final class Hello/Foo__MultifileSuspendKt$main$2 {
private field args: java.lang.String[]
inner class Hello/Foo__MultifileSuspendKt$main$2
method <init>(@org.jetbrains.annotations.NotNull p0: java.lang.String[]): void
public final @org.jetbrains.annotations.Nullable method invoke(@org.jetbrains.annotations.NotNull p0: kotlin.coroutines.Continuation): java.lang.Object
public synthetic bridge @org.jetbrains.annotations.Nullable method invoke(@org.jetbrains.annotations.Nullable p0: java.lang.Object): java.lang.Object
}
@kotlin.Metadata
@kotlin.jvm.JvmName
synthetic final class Hello/Foo__MultifileSuspendKt {
inner class Hello/Foo__MultifileSuspendKt$main$2
public synthetic final static method main(@org.jetbrains.annotations.NotNull p0: java.lang.String[]): void
public final static @org.jetbrains.annotations.Nullable method main(@org.jetbrains.annotations.NotNull p0: java.lang.String[], @org.jetbrains.annotations.NotNull p1: kotlin.coroutines.Continuation): java.lang.Object
}
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JVM_IR
// WITH_RUNTIME
fun main() {}
@@ -0,0 +1,5 @@
@kotlin.Metadata
public final class ParameterlessMainKt {
public final static method main(): void
public synthetic final static method main(@org.jetbrains.annotations.NotNull p0: java.lang.String[]): void
}
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JVM_IR
// WITH_RUNTIME
suspend fun main(args: Array<String>) {}
@@ -1,4 +1,5 @@
// !LANGUAGE: -ExtendedMainConvention -ReleaseCoroutines
// Does not run on JVM_IR since it uses experimental coroutines
// IGNORE_BACKEND: JVM_IR
// WITH_RUNTIME
@@ -0,0 +1,15 @@
@kotlin.Metadata
synthetic final class SuspendMainKt$main$2 {
private field args: java.lang.String[]
inner class SuspendMainKt$main$2
method <init>(@org.jetbrains.annotations.NotNull p0: java.lang.String[]): void
public final @org.jetbrains.annotations.Nullable method invoke(@org.jetbrains.annotations.NotNull p0: kotlin.coroutines.Continuation): java.lang.Object
public synthetic bridge @org.jetbrains.annotations.Nullable method invoke(@org.jetbrains.annotations.Nullable p0: java.lang.Object): java.lang.Object
}
@kotlin.Metadata
public final class SuspendMainKt {
inner class SuspendMainKt$main$2
public synthetic final static method main(@org.jetbrains.annotations.NotNull p0: java.lang.String[]): void
public final static @org.jetbrains.annotations.Nullable method main(@org.jetbrains.annotations.NotNull p0: java.lang.String[], @org.jetbrains.annotations.NotNull p1: kotlin.coroutines.Continuation): java.lang.Object
}