diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrConstructorImpl.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrConstructorImpl.kt index 8e4248d7fc0..3c3a5b32bbc 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrConstructorImpl.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrConstructorImpl.kt @@ -7,6 +7,7 @@ package org.jetbrains.kotlin.ir.declarations.impl import org.jetbrains.kotlin.descriptors.ClassConstructorDescriptor import org.jetbrains.kotlin.descriptors.DescriptorVisibility +import org.jetbrains.kotlin.ir.IrImplementationDetail import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI import org.jetbrains.kotlin.ir.declarations.* import org.jetbrains.kotlin.ir.expressions.IrBody @@ -18,7 +19,7 @@ import org.jetbrains.kotlin.ir.types.impl.ReturnTypeIsNotInitializedException import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedContainerSource -class IrConstructorImpl( +class IrConstructorImpl @IrImplementationDetail constructor( override val startOffset: Int, override val endOffset: Int, override var origin: IrDeclarationOrigin, diff --git a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/cgen/CBridgeGen.kt b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/cgen/CBridgeGen.kt index 7c2c74cbf88..79069c83119 100644 --- a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/cgen/CBridgeGen.kt +++ b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/cgen/CBridgeGen.kt @@ -1142,14 +1142,17 @@ private class ObjCBlockPointerValuePassing( ) irClass.addChild(blockHolderField) - val constructor = IrConstructorImpl( - startOffset, endOffset, + val constructor = context.irFactory.createConstructor( + startOffset, + endOffset, OBJC_BLOCK_FUNCTION_IMPL, - IrConstructorSymbolImpl(), Name.special(""), DescriptorVisibilities.PUBLIC, + isInline = false, + isExpect = false, irClass.defaultType, - isInline = false, isExternal = false, isPrimary = true, isExpect = false + IrConstructorSymbolImpl(), + isPrimary = true, ) irClass.addChild(constructor) diff --git a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/ir/interop/DescriptorToIrTranslationUtils.kt b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/ir/interop/DescriptorToIrTranslationUtils.kt index b3dbc1293c2..14e65fb0177 100644 --- a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/ir/interop/DescriptorToIrTranslationUtils.kt +++ b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/ir/interop/DescriptorToIrTranslationUtils.kt @@ -11,11 +11,10 @@ import org.jetbrains.kotlin.ir.IrBuiltIns import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI import org.jetbrains.kotlin.ir.builders.IrBuilder import org.jetbrains.kotlin.ir.declarations.* -import org.jetbrains.kotlin.ir.declarations.impl.IrConstructorImpl +import org.jetbrains.kotlin.ir.declarations.impl.IrFactoryImpl import org.jetbrains.kotlin.ir.expressions.IrExpression import org.jetbrains.kotlin.ir.expressions.impl.IrInstanceInitializerCallImpl import org.jetbrains.kotlin.ir.symbols.IrClassSymbol -import org.jetbrains.kotlin.ir.symbols.IrConstructorSymbol import org.jetbrains.kotlin.ir.symbols.IrSymbol import org.jetbrains.kotlin.ir.types.impl.IrUninitializedType import org.jetbrains.kotlin.ir.util.* @@ -88,9 +87,18 @@ internal interface DescriptorToIrTranslationMixin { fun createConstructor(constructorDescriptor: ClassConstructorDescriptor): IrConstructor { val irConstructor = symbolTable.descriptorExtension.declareConstructor(constructorDescriptor) { with(constructorDescriptor) { - IrConstructorImpl( - SYNTHETIC_OFFSET, SYNTHETIC_OFFSET, IrDeclarationOrigin.IR_EXTERNAL_DECLARATION_STUB, it, name, visibility, - IrUninitializedType, isInline, isEffectivelyExternal(), isPrimary, isExpect + symbolTable.irFactory.createConstructor( + SYNTHETIC_OFFSET, + SYNTHETIC_OFFSET, + IrDeclarationOrigin.IR_EXTERNAL_DECLARATION_STUB, + name, + visibility, + isInline, + isExpect, + IrUninitializedType, + it, + isPrimary, + isEffectivelyExternal(), ) } } 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 b9518b8a003..cdfb3609fe9 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 @@ -12,7 +12,6 @@ import org.jetbrains.kotlin.descriptors.ClassKind import org.jetbrains.kotlin.descriptors.DescriptorVisibilities import org.jetbrains.kotlin.ir.IrStatement import org.jetbrains.kotlin.ir.declarations.* -import org.jetbrains.kotlin.ir.declarations.impl.IrConstructorImpl import org.jetbrains.kotlin.ir.declarations.impl.IrValueParameterImpl import org.jetbrains.kotlin.ir.expressions.* import org.jetbrains.kotlin.ir.expressions.impl.* @@ -106,23 +105,23 @@ internal class EnumConstructorsLowering(val context: Context) : ClassLoweringPas val startOffset = constructor.startOffset val endOffset = constructor.endOffset val loweredConstructor = - IrConstructorImpl( - startOffset, endOffset, - constructor.origin, - IrConstructorSymbolImpl(), - constructor.name, - DescriptorVisibilities.PROTECTED, - constructor.returnType, - isInline = false, - isExternal = false, - isPrimary = constructor.isPrimary, - isExpect = false - ).apply { - parent = constructor.parent - val body = constructor.body!! - this.body = body // Will be transformed later. - body.setDeclarationsParent(this) - } + context.irFactory.createConstructor( + startOffset, + endOffset, + constructor.origin, + constructor.name, + DescriptorVisibilities.PROTECTED, + isInline = false, + isExpect = false, + constructor.returnType, + IrConstructorSymbolImpl(), + isPrimary = constructor.isPrimary, + ).apply { + parent = constructor.parent + val body = constructor.body!! + this.body = body // Will be transformed later. + body.setDeclarationsParent(this) + } fun createSynthesizedValueParameter(index: Int, name: String, type: IrType): IrValueParameter = IrValueParameterImpl( diff --git a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/TestProcessor.kt b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/TestProcessor.kt index ed812f86b1d..8b9408b5cee 100644 --- a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/TestProcessor.kt +++ b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/TestProcessor.kt @@ -21,7 +21,6 @@ import org.jetbrains.kotlin.ir.IrStatement import org.jetbrains.kotlin.ir.builders.* import org.jetbrains.kotlin.ir.builders.declarations.buildField import org.jetbrains.kotlin.ir.declarations.* -import org.jetbrains.kotlin.ir.declarations.impl.IrConstructorImpl import org.jetbrains.kotlin.ir.declarations.impl.IrFunctionImpl import org.jetbrains.kotlin.ir.expressions.IrExpression import org.jetbrains.kotlin.ir.expressions.impl.* @@ -420,17 +419,17 @@ internal class TestProcessor (val context: Context) { owner: IrClass, functions: Collection, ignored: Boolean): IrConstructor = - IrConstructorImpl( - testSuite.owner.startOffset, testSuite.owner.endOffset, + context.irFactory.createConstructor( + testSuite.owner.startOffset, + testSuite.owner.endOffset, TEST_SUITE_GENERATED_MEMBER, - IrConstructorSymbolImpl(), Name.special(""), DescriptorVisibilities.PUBLIC, - testSuite.starProjectedType, isInline = false, - isExternal = false, + isExpect = false, + testSuite.starProjectedType, + IrConstructorSymbolImpl(), isPrimary = true, - isExpect = false ).apply { parent = owner