JVM_IR: Do not copy static init blocks to inline class's constructor

#KT-58593 Fixed
This commit is contained in:
Ilmir Usmanov
2023-05-19 10:56:45 +02:00
committed by Space Team
parent 74c57e6057
commit a0484de1a6
18 changed files with 172 additions and 0 deletions
@@ -0,0 +1,32 @@
// WITH_STDLIB
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses
// CHECK_BYTECODE_LISTING
// IGNORE_BACKEND: JVM
var res = ""
OPTIONAL_JVM_INLINE_ANNOTATION
value class IC(val s: String) {
init {
res += "IC"
}
companion object {
init {
res += "companion"
}
val ok = "OK"
}
}
fun box(): String {
IC.ok
if (res != "companion") return "FAIL 1: $res"
res = ""
IC("")
if (res != "IC") return "FAIL 2: $res"
return "OK"
}
@@ -0,0 +1,43 @@
@kotlin.Metadata
public final class IC$Companion {
// source: 'initInCompanion.kt'
private method <init>(): void
public synthetic method <init>(p0: kotlin.jvm.internal.DefaultConstructorMarker): void
public final @org.jetbrains.annotations.NotNull method getOk(): java.lang.String
public final inner class IC$Companion
}
@kotlin.jvm.JvmInline
@kotlin.Metadata
public final class IC {
// source: 'initInCompanion.kt'
public final static @org.jetbrains.annotations.NotNull field Companion: IC$Companion
private final static @org.jetbrains.annotations.NotNull field ok: java.lang.String
private final @org.jetbrains.annotations.NotNull field s: java.lang.String
static method <clinit>(): void
private synthetic method <init>(p0: java.lang.String): void
public synthetic final static method access$getOk$cp(): java.lang.String
public synthetic final static method box-impl(p0: java.lang.String): IC
public static @org.jetbrains.annotations.NotNull method constructor-impl(@org.jetbrains.annotations.NotNull p0: java.lang.String): java.lang.String
public method equals(p0: java.lang.Object): boolean
public static method equals-impl(p0: java.lang.String, p1: java.lang.Object): boolean
public final static method equals-impl0(p0: java.lang.String, p1: java.lang.String): boolean
public final @org.jetbrains.annotations.NotNull method getS(): java.lang.String
public method hashCode(): int
public static method hashCode-impl(p0: java.lang.String): int
public method toString(): java.lang.String
public static method toString-impl(p0: java.lang.String): java.lang.String
public synthetic final method unbox-impl(): java.lang.String
public final inner class IC$Companion
}
@kotlin.Metadata
public final class InitInCompanionKt {
// source: 'initInCompanion.kt'
private static @org.jetbrains.annotations.NotNull field res: java.lang.String
static method <clinit>(): void
public final static @org.jetbrains.annotations.NotNull method box(): java.lang.String
public final static @org.jetbrains.annotations.NotNull method getRes(): java.lang.String
public final static method setRes(@org.jetbrains.annotations.NotNull p0: java.lang.String): void
public final inner class IC$Companion
}