[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.IrDelegatingConstructorCallImpl
|
||||||
import org.jetbrains.kotlin.ir.expressions.impl.IrInstanceInitializerCallImpl
|
import org.jetbrains.kotlin.ir.expressions.impl.IrInstanceInitializerCallImpl
|
||||||
import org.jetbrains.kotlin.ir.util.constructors
|
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.util.parentAsClass
|
||||||
import org.jetbrains.kotlin.ir.visitors.IrElementTransformerVoid
|
import org.jetbrains.kotlin.ir.visitors.IrElementTransformerVoid
|
||||||
import org.jetbrains.kotlin.ir.visitors.transformChildrenVoid
|
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
|
private var IrClass.syntheticPrimaryConstructor by context.mapping.classToSyntheticPrimaryConstructor
|
||||||
|
|
||||||
override fun transformFlat(declaration: IrDeclaration): List<IrDeclaration>? {
|
override fun transformFlat(declaration: IrDeclaration): List<IrDeclaration>? {
|
||||||
if (declaration is IrClass) {
|
if (declaration is IrClass && !declaration.isInterface) {
|
||||||
val constructors = declaration.constructors
|
val constructors = declaration.constructors
|
||||||
|
|
||||||
if (constructors.any { it.isPrimary }) return null
|
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): 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