KT-44378 don't generate no-arg constructor for sealed classes
This commit is contained in:
committed by
TeamCityServer
parent
ee93efc19d
commit
0c463d3260
+4
-1
@@ -14,6 +14,7 @@ import org.jetbrains.kotlin.backend.jvm.JvmBackendContext
|
||||
import org.jetbrains.kotlin.backend.jvm.lower.inlineclasses.hasMangledParameters
|
||||
import org.jetbrains.kotlin.descriptors.ClassKind
|
||||
import org.jetbrains.kotlin.descriptors.DescriptorVisibilities
|
||||
import org.jetbrains.kotlin.descriptors.Modality
|
||||
import org.jetbrains.kotlin.ir.builders.declarations.addConstructor
|
||||
import org.jetbrains.kotlin.ir.builders.irBlockBody
|
||||
import org.jetbrains.kotlin.ir.builders.irDelegatingConstructorCall
|
||||
@@ -36,7 +37,9 @@ internal val jvmDefaultConstructorPhase = makeIrFilePhase(
|
||||
private class JvmDefaultConstructorLowering(val context: JvmBackendContext) : ClassLoweringPass {
|
||||
|
||||
override fun lower(irClass: IrClass) {
|
||||
if (irClass.kind != ClassKind.CLASS || irClass.visibility == DescriptorVisibilities.LOCAL || irClass.isInline || irClass.isInner)
|
||||
if (irClass.kind != ClassKind.CLASS || irClass.visibility == DescriptorVisibilities.LOCAL || irClass.isInline || irClass.isInner ||
|
||||
irClass.modality == Modality.SEALED
|
||||
)
|
||||
return
|
||||
|
||||
val primaryConstructor = irClass.constructors.firstOrNull { it.isPrimary } ?: return
|
||||
|
||||
Reference in New Issue
Block a user