[JS, Wasm] Don't generate unused constructors for interfaces
This commit is contained in:
committed by
Space Team
parent
23301e3369
commit
951b8026f5
+2
-1
@@ -17,6 +17,7 @@ import org.jetbrains.kotlin.ir.expressions.IrInstanceInitializerCall
|
||||
import org.jetbrains.kotlin.ir.expressions.impl.IrDelegatingConstructorCallImpl
|
||||
import org.jetbrains.kotlin.ir.expressions.impl.IrInstanceInitializerCallImpl
|
||||
import org.jetbrains.kotlin.ir.util.constructors
|
||||
import org.jetbrains.kotlin.ir.util.isInterface
|
||||
import org.jetbrains.kotlin.ir.util.parentAsClass
|
||||
import org.jetbrains.kotlin.ir.visitors.IrElementTransformerVoid
|
||||
import org.jetbrains.kotlin.ir.visitors.transformChildrenVoid
|
||||
@@ -27,7 +28,7 @@ class PrimaryConstructorLowering(val context: JsCommonBackendContext) : Declarat
|
||||
private var IrClass.syntheticPrimaryConstructor by context.mapping.classToSyntheticPrimaryConstructor
|
||||
|
||||
override fun transformFlat(declaration: IrDeclaration): List<IrDeclaration>? {
|
||||
if (declaration is IrClass) {
|
||||
if (declaration is IrClass && !declaration.isInterface) {
|
||||
val constructors = declaration.constructors
|
||||
|
||||
if (constructors.any { it.isPrimary }) return null
|
||||
|
||||
+1
-1
@@ -19,4 +19,4 @@ val o = object : I {
|
||||
}
|
||||
|
||||
// LINES(JS): 1 2 3 2 2 2 2 2 2 2 * 11 12 12 12 15 15 15 16 18 17 17
|
||||
// LINES(JS_IR): 11 11 * 11 11 * 1 1 3 3 1 1 1 1 1 1 1 1 1 5 11 11 12 12 12 16 17 17 15 15 15 * 1 * 11
|
||||
// LINES(JS_IR): 11 11 * 11 11 * 1 1 3 3 1 1 1 1 1 1 1 1 1 * 11 11 12 12 12 16 17 17 15 15 15 * 1 * 11
|
||||
|
||||
Reference in New Issue
Block a user