diff --git a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/ir/interop/cenum/CEnumCompanionGenerator.kt b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/ir/interop/cenum/CEnumCompanionGenerator.kt index eafb782eda2..eb9202dcf65 100644 --- a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/ir/interop/cenum/CEnumCompanionGenerator.kt +++ b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/ir/interop/cenum/CEnumCompanionGenerator.kt @@ -54,9 +54,7 @@ internal class CEnumCompanionGenerator( it.body = irBuilder(irBuiltIns, it.symbol, SYNTHETIC_OFFSET, SYNTHETIC_OFFSET).irBlockBody { +IrDelegatingConstructorCallImpl.fromSymbolDescriptor( startOffset, endOffset, context.irBuiltIns.unitType, - superConstructorSymbol, - superConstructorSymbol.owner.typeParameters.size, - superConstructorSymbol.owner.valueParameters.size + superConstructorSymbol ) +irInstanceInitializer(symbolTable.referenceClass(companionObjectDescriptor)) } diff --git a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/ir/interop/cenum/CEnumVarClassGenerator.kt b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/ir/interop/cenum/CEnumVarClassGenerator.kt index aa0a04c6abf..5cea0c767f9 100644 --- a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/ir/interop/cenum/CEnumVarClassGenerator.kt +++ b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/ir/interop/cenum/CEnumVarClassGenerator.kt @@ -57,10 +57,8 @@ internal class CEnumVarClassGenerator( interopBuiltIns.cEnumVar.unsubstitutedPrimaryConstructor!! ) irConstructor.body = irBuilder(irBuiltIns, irConstructor.symbol, SYNTHETIC_OFFSET, SYNTHETIC_OFFSET).irBlockBody { - +IrDelegatingConstructorCallImpl( - startOffset, endOffset, context.irBuiltIns.unitType, enumVarConstructorSymbol, - enumVarConstructorSymbol.owner.typeParameters.size, - enumVarConstructorSymbol.owner.valueParameters.size + +IrDelegatingConstructorCallImpl.fromSymbolDescriptor( + startOffset, endOffset, context.irBuiltIns.unitType, enumVarConstructorSymbol ).also { it.putValueArgument(0, irGet(irConstructor.valueParameters[0])) } @@ -83,9 +81,7 @@ internal class CEnumVarClassGenerator( it.body = irBuilder(irBuiltIns, it.symbol, SYNTHETIC_OFFSET, SYNTHETIC_OFFSET).irBlockBody { +IrDelegatingConstructorCallImpl.fromSymbolDescriptor( startOffset, endOffset, context.irBuiltIns.unitType, - superConstructorSymbol, - superConstructorSymbol.owner.typeParameters.size, - superConstructorSymbol.owner.valueParameters.size + superConstructorSymbol ).also { it.putValueArgument(0, irInt(typeSize)) } diff --git a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/ir/interop/cstruct/CStructVarClassGenerator.kt b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/ir/interop/cstruct/CStructVarClassGenerator.kt index 8ab3200b262..e844c8aa444 100644 --- a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/ir/interop/cstruct/CStructVarClassGenerator.kt +++ b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/ir/interop/cstruct/CStructVarClassGenerator.kt @@ -64,9 +64,7 @@ internal class CStructVarClassGenerator( irConstructor.body = irBuilder(irBuiltIns, irConstructor.symbol, SYNTHETIC_OFFSET, SYNTHETIC_OFFSET).irBlockBody { +IrDelegatingConstructorCallImpl.fromSymbolDescriptor( startOffset, endOffset, - context.irBuiltIns.unitType, enumVarConstructorSymbol, - irConstructor.typeParameters.size, - 1 + context.irBuiltIns.unitType, enumVarConstructorSymbol ).also { it.putValueArgument(0, irGet(irConstructor.valueParameters[0])) } diff --git a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/ir/interop/cstruct/CStructVarCompanionGenerator.kt b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/ir/interop/cstruct/CStructVarCompanionGenerator.kt index 2277c7b704d..133df36ea76 100644 --- a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/ir/interop/cstruct/CStructVarCompanionGenerator.kt +++ b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/ir/interop/cstruct/CStructVarCompanionGenerator.kt @@ -48,9 +48,7 @@ internal class CStructVarCompanionGenerator( irConstructor.body = irBuilder(irBuiltIns, irConstructor.symbol, SYNTHETIC_OFFSET, SYNTHETIC_OFFSET).irBlockBody { +IrDelegatingConstructorCallImpl.fromSymbolDescriptor( startOffset, endOffset, context.irBuiltIns.unitType, - superConstructorSymbol, - irConstructor.typeParameters.size, - 2 + superConstructorSymbol ).also { it.putValueArgument(0, irLong(size)) it.putValueArgument(1, irInt(align)) diff --git a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/EnumConstructorsLowering.kt b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/EnumConstructorsLowering.kt index cf85928b404..6208ec8a143 100644 --- a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/EnumConstructorsLowering.kt +++ b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/EnumConstructorsLowering.kt @@ -179,10 +179,8 @@ internal class EnumConstructorsLowering(val context: Context) : ClassLoweringPas val result = IrDelegatingConstructorCallImpl.fromSymbolDescriptor( startOffset, endOffset, context.irBuiltIns.unitType, - enumConstructorCall.symbol, - enumConstructorCall.symbol.owner.typeParameters.size, - enumConstructorCall.symbol.owner.valueParameters.size) - + enumConstructorCall.symbol + ) assert(result.symbol.owner.valueParameters.size == 2) { "Enum(String, Int) constructor call expected:\n${result.dump()}" } @@ -216,10 +214,8 @@ internal class EnumConstructorsLowering(val context: Context) : ClassLoweringPas val result = IrDelegatingConstructorCallImpl.fromSymbolDescriptor( startOffset, endOffset, context.irBuiltIns.unitType, - loweredDelegatingConstructor.symbol, - loweredDelegatingConstructor.symbol.owner.typeParameters.size, - loweredDelegatingConstructor.symbol.owner.valueParameters.size) - + loweredDelegatingConstructor.symbol + ) val firstParameter = enumClassConstructor.valueParameters[0] result.putValueArgument(0, IrGetValueImpl(startOffset, endOffset, firstParameter.type, firstParameter.symbol)) diff --git a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/InteropLowering.kt b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/InteropLowering.kt index 3d640b3af4b..062f8353be9 100644 --- a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/InteropLowering.kt +++ b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/InteropLowering.kt @@ -500,11 +500,8 @@ private class InteropLoweringPart1(val context: Context) : BaseInteropIrTransfor startOffset, endOffset, context.irBuiltIns.unitType, - superConstructor, - 0, - superConstructor.owner.valueParameters.size + superConstructor ) - +irCall(symbols.interopObjCObjectSuperInitCheck).apply { extensionReceiver = irGet(constructedClass.thisReceiver!!) putValueArgument(0, initCall)