From 0ae95b39c35b380574af417d25e3b7a99ad4a13c Mon Sep 17 00:00:00 2001 From: Sergej Jaskiewicz Date: Tue, 13 Jun 2023 19:25:05 +0200 Subject: [PATCH] [IR] Reorder parameters in IrFactory#createConstructor This is to prepare for IrFactory auto-generation (KT-59308). --- .../fir/backend/Fir2IrDeclarationStorage.kt | 15 +++++++++---- .../kotlin/fir/backend/IrBuiltInsOverFir.kt | 13 +++++++++-- .../backend/jvm/lower/ScriptLowering.kt | 18 ++++++++++----- .../wasm/lower/WasmSharedVariablesManager.kt | 14 +++++++++--- .../psi2ir/generators/FunctionGenerator.kt | 13 +++++++++-- .../psi2ir/generators/ScriptGenerator.kt | 16 +++++++++----- .../StandaloneDeclarationGenerator.kt | 13 +++++++++-- .../fragments/FragmentDeclarationGenerator.kt | 16 +++++--------- .../declarations/declarationBuilders.kt | 18 ++++++++++----- .../kotlin/ir/declarations/IrFactory.kt | 8 +++---- .../ir/declarations/impl/IrFactoryImpl.kt | 8 +++---- .../declarations/impl/IrFactoryImplForJsIC.kt | 16 +++++++------- .../ir/declarations/lazy/LazyIrFactory.kt | 22 ++++++++++++++----- .../ir/util/DeepCopyIrTreeWithSymbols.kt | 17 +++++++------- .../MissingDeclarationStubGenerator.kt | 8 +++---- .../IrDeclarationDeserializer.kt | 20 +++++++++-------- 16 files changed, 152 insertions(+), 83 deletions(-) diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrDeclarationStorage.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrDeclarationStorage.kt index 3f3daa57cb4..853cadc85b6 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrDeclarationStorage.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrDeclarationStorage.kt @@ -665,10 +665,17 @@ class Fir2IrDeclarationStorage( declareIrConstructor(signature) { symbol -> classifierStorage.preCacheTypeParameters(constructor, symbol) irFactory.createConstructor( - startOffset, endOffset, origin, symbol, - SpecialNames.INIT, components.visibilityConverter.convertToDescriptorVisibility(visibility), - constructor.returnTypeRef.toIrType(), - isInline = false, isExternal = false, isPrimary = isPrimary, isExpect = constructor.isExpect + startOffset = startOffset, + endOffset = endOffset, + origin = origin, + name = SpecialNames.INIT, + visibility = components.visibilityConverter.convertToDescriptorVisibility(visibility), + isInline = false, + isExpect = constructor.isExpect, + returnType = constructor.returnTypeRef.toIrType(), + symbol = symbol, + isPrimary = isPrimary, + isExternal = false, ).apply { metadata = FirMetadataSource.Function(constructor) // Add to cache before generating parameters to prevent an infinite loop when an annotation value parameter is annotated diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/IrBuiltInsOverFir.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/IrBuiltInsOverFir.kt index ccc308541ac..caf8a6f772f 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/IrBuiltInsOverFir.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/IrBuiltInsOverFir.kt @@ -796,8 +796,17 @@ class IrBuiltInsOverFir( ): IrConstructorSymbol { val name = SpecialNames.INIT val ctor = irFactory.createConstructor( - UNDEFINED_OFFSET, UNDEFINED_OFFSET, origin, IrConstructorSymbolImpl(), name, visibility, defaultType, - isInline = false, isExternal = false, isPrimary = isPrimary, isExpect = false + startOffset = UNDEFINED_OFFSET, + endOffset = UNDEFINED_OFFSET, + origin = origin, + name = name, + visibility = visibility, + isInline = false, + isExpect = false, + returnType = defaultType, + symbol = IrConstructorSymbolImpl(), + isPrimary = isPrimary, + isExternal = false, ) ctor.parent = this ctor.build() diff --git a/compiler/ir/backend.jvm/lower/src/org/jetbrains/kotlin/backend/jvm/lower/ScriptLowering.kt b/compiler/ir/backend.jvm/lower/src/org/jetbrains/kotlin/backend/jvm/lower/ScriptLowering.kt index 69616a36383..d8b85b1b2eb 100644 --- a/compiler/ir/backend.jvm/lower/src/org/jetbrains/kotlin/backend/jvm/lower/ScriptLowering.kt +++ b/compiler/ir/backend.jvm/lower/src/org/jetbrains/kotlin/backend/jvm/lower/ScriptLowering.kt @@ -334,12 +334,18 @@ private class ScriptsToClassesLowering(val context: JvmBackendContext, val inner returnType = irScriptClass.thisReceiver!!.type as IrSimpleType }) { irScriptClass.factory.createConstructor( - startOffset, endOffset, origin, - IrConstructorSymbolImpl(), - SpecialNames.INIT, - visibility, returnType, - isInline = isInline, isExternal = isExternal, isPrimary = isPrimary, isExpect = isExpect, - containerSource = containerSource + startOffset = startOffset, + endOffset = endOffset, + origin = origin, + name = SpecialNames.INIT, + visibility = visibility, + isInline = isInline, + isExpect = isExpect, + returnType = returnType, + symbol = IrConstructorSymbolImpl(), + isPrimary = isPrimary, + isExternal = isExternal, + containerSource = containerSource, ) }.also { irConstructor -> irConstructor.valueParameters = buildList { diff --git a/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/lower/WasmSharedVariablesManager.kt b/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/lower/WasmSharedVariablesManager.kt index a4db182c426..1fd60203405 100644 --- a/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/lower/WasmSharedVariablesManager.kt +++ b/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/lower/WasmSharedVariablesManager.kt @@ -192,9 +192,17 @@ class WasmSharedVariablesManager(val context: JsCommonBackendContext, val builtI val symbol = IrConstructorSymbolImpl() val declaration = context.irFactory.createConstructor( - UNDEFINED_OFFSET, UNDEFINED_OFFSET, JsLoweredDeclarationOrigin.JS_CLOSURE_BOX_CLASS_DECLARATION, symbol, - SpecialNames.INIT, DescriptorVisibilities.PUBLIC, closureBoxClassDeclaration.defaultType, - isInline = false, isExternal = false, isPrimary = true, isExpect = false + startOffset = UNDEFINED_OFFSET, + endOffset = UNDEFINED_OFFSET, + origin = JsLoweredDeclarationOrigin.JS_CLOSURE_BOX_CLASS_DECLARATION, + name = SpecialNames.INIT, + visibility = DescriptorVisibilities.PUBLIC, + isInline = false, + isExpect = false, + returnType = closureBoxClassDeclaration.defaultType, + symbol = symbol, + isPrimary = true, + isExternal = false, ) declaration.parent = closureBoxClassDeclaration diff --git a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/FunctionGenerator.kt b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/FunctionGenerator.kt index 7eb94e41667..32a04a925fe 100644 --- a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/FunctionGenerator.kt +++ b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/FunctionGenerator.kt @@ -284,8 +284,17 @@ internal class FunctionGenerator(declarationGenerator: DeclarationGenerator) : D return context.symbolTable.declareConstructor(constructorDescriptor) { with(constructorDescriptor) { context.irFactory.createConstructor( - startOffset, endOffset, origin, it, context.symbolTable.nameProvider.nameForDeclaration(this), - visibility, IrUninitializedType, isInline, isEffectivelyExternal(), isPrimary, isExpect + startOffset = startOffset, + endOffset = endOffset, + origin = origin, + name = context.symbolTable.nameProvider.nameForDeclaration(this), + visibility = visibility, + isInline = isInline, + isExpect = isExpect, + returnType = IrUninitializedType, + symbol = it, + isPrimary = isPrimary, + isExternal = isEffectivelyExternal(), ) }.apply { metadata = DescriptorMetadataSource.Function(it.descriptor) diff --git a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/ScriptGenerator.kt b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/ScriptGenerator.kt index e9a76fbcaea..54e27ea8b82 100644 --- a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/ScriptGenerator.kt +++ b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/ScriptGenerator.kt @@ -156,11 +156,17 @@ internal class ScriptGenerator(declarationGenerator: DeclarationGenerator) : Dec returnType = irScript.thisReceiver!!.type as IrSimpleType }) { irScript.factory.createConstructor( - startOffset, endOffset, origin, - context.symbolTable.referenceConstructor(descriptor.unsubstitutedPrimaryConstructor), - SpecialNames.INIT, - visibility, returnType, - isInline = isInline, isExternal = isExternal, isPrimary = isPrimary, isExpect = isExpect, + startOffset = startOffset, + endOffset = endOffset, + origin = origin, + name = SpecialNames.INIT, + visibility = visibility, + isInline = isInline, + isExpect = isExpect, + returnType = returnType, + symbol = context.symbolTable.referenceConstructor(descriptor.unsubstitutedPrimaryConstructor), + isPrimary = isPrimary, + isExternal = isExternal, containerSource = containerSource ) }.also { irConstructor -> diff --git a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/StandaloneDeclarationGenerator.kt b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/StandaloneDeclarationGenerator.kt index ab45a8d58a3..a452af860e7 100644 --- a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/StandaloneDeclarationGenerator.kt +++ b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/StandaloneDeclarationGenerator.kt @@ -167,8 +167,17 @@ internal class StandaloneDeclarationGenerator(private val context: GeneratorCont ): IrConstructor { val irConstructor = with(descriptor) { irFactory.createConstructor( - startOffset, endOffset, origin, symbol, name, visibility, IrUninitializedType, isInline, - isEffectivelyExternal(), isPrimary, isExpect + startOffset = startOffset, + endOffset = endOffset, + origin = origin, + name = name, + visibility = visibility, + isInline = isInline, + isExpect = isExpect, + returnType = IrUninitializedType, + symbol = symbol, + isPrimary = isPrimary, + isExternal = isEffectivelyExternal(), ) } irConstructor.metadata = DescriptorMetadataSource.Function(descriptor) diff --git a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/fragments/FragmentDeclarationGenerator.kt b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/fragments/FragmentDeclarationGenerator.kt index 560fb344b5b..40bbc1f7c14 100644 --- a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/fragments/FragmentDeclarationGenerator.kt +++ b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/fragments/FragmentDeclarationGenerator.kt @@ -11,14 +11,10 @@ import org.jetbrains.kotlin.ir.IrStatement import org.jetbrains.kotlin.ir.UNDEFINED_OFFSET import org.jetbrains.kotlin.ir.declarations.* import org.jetbrains.kotlin.ir.expressions.impl.IrDelegatingConstructorCallImpl -import org.jetbrains.kotlin.ir.expressions.impl.IrInstanceInitializerCallImpl import org.jetbrains.kotlin.ir.symbols.impl.IrConstructorPublicSymbolImpl -import org.jetbrains.kotlin.ir.types.classOrNull import org.jetbrains.kotlin.ir.util.* import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.psi.KtBlockCodeFragment -import org.jetbrains.kotlin.psi.psiUtil.pureEndOffset -import org.jetbrains.kotlin.psi.psiUtil.pureStartOffset import org.jetbrains.kotlin.psi2ir.generators.Generator import org.jetbrains.kotlin.psi2ir.generators.GeneratorContext import org.jetbrains.kotlin.psi2ir.generators.createBodyGenerator @@ -66,14 +62,14 @@ open class FragmentDeclarationGenerator( startOffset = UNDEFINED_OFFSET, endOffset = UNDEFINED_OFFSET, origin = IrDeclarationOrigin.DEFINED, - symbol = IrConstructorPublicSymbolImpl(context.symbolTable.signaturer.composeSignature(irClass.descriptor)!!), - Name.special(""), - irClass.visibility, - irClass.defaultType, + name = Name.special(""), + visibility = irClass.visibility, isInline = false, - isExternal = false, + isExpect = false, + returnType = irClass.defaultType, + symbol = IrConstructorPublicSymbolImpl(context.symbolTable.signaturer.composeSignature(irClass.descriptor)!!), isPrimary = true, - isExpect = false + isExternal = false ) constructor.parent = irClass constructor.body = context.irFactory.createBlockBody(UNDEFINED_OFFSET, UNDEFINED_OFFSET).apply { diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/builders/declarations/declarationBuilders.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/builders/declarations/declarationBuilders.kt index e05d19ce752..d5ba671e1bb 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/builders/declarations/declarationBuilders.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/builders/declarations/declarationBuilders.kt @@ -173,12 +173,18 @@ internal fun IrFactory.buildFunction(builder: IrFunctionBuilder): IrSimpleFuncti @PublishedApi internal fun IrFactory.buildConstructor(builder: IrFunctionBuilder): IrConstructor = with(builder) { return createConstructor( - startOffset, endOffset, origin, - IrConstructorSymbolImpl(), - SpecialNames.INIT, - visibility, returnType, - isInline = isInline, isExternal = isExternal, isPrimary = isPrimary, isExpect = isExpect, - containerSource = containerSource + startOffset = startOffset, + endOffset = endOffset, + origin = origin, + name = SpecialNames.INIT, + visibility = visibility, + isInline = isInline, + isExpect = isExpect, + returnType = returnType, + symbol = IrConstructorSymbolImpl(), + isPrimary = isPrimary, + isExternal = isExternal, + containerSource = containerSource, ) } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrFactory.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrFactory.kt index d2553948ca2..eccd92da2c6 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrFactory.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrFactory.kt @@ -50,14 +50,14 @@ interface IrFactory { startOffset: Int, endOffset: Int, origin: IrDeclarationOrigin, - symbol: IrConstructorSymbol, name: Name, visibility: DescriptorVisibility, - returnType: IrType, isInline: Boolean, - isExternal: Boolean, - isPrimary: Boolean, isExpect: Boolean, + returnType: IrType, + symbol: IrConstructorSymbol, + isPrimary: Boolean, + isExternal: Boolean, containerSource: DeserializedContainerSource? = null ): IrConstructor diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrFactoryImpl.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrFactoryImpl.kt index e4a63caed9d..bbe29ce967b 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrFactoryImpl.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrFactoryImpl.kt @@ -62,14 +62,14 @@ abstract class AbstractIrFactoryImpl : IrFactory { startOffset: Int, endOffset: Int, origin: IrDeclarationOrigin, - symbol: IrConstructorSymbol, name: Name, visibility: DescriptorVisibility, - returnType: IrType, isInline: Boolean, - isExternal: Boolean, - isPrimary: Boolean, isExpect: Boolean, + returnType: IrType, + symbol: IrConstructorSymbol, + isPrimary: Boolean, + isExternal: Boolean, containerSource: DeserializedContainerSource?, ): IrConstructor = IrConstructorImpl( diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrFactoryImplForJsIC.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrFactoryImplForJsIC.kt index b38dceea73d..f81e4ffc32c 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrFactoryImplForJsIC.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrFactoryImplForJsIC.kt @@ -88,28 +88,28 @@ class IrFactoryImplForJsIC(override val stageController: StageController) : Abst startOffset: Int, endOffset: Int, origin: IrDeclarationOrigin, - symbol: IrConstructorSymbol, name: Name, visibility: DescriptorVisibility, - returnType: IrType, isInline: Boolean, - isExternal: Boolean, - isPrimary: Boolean, isExpect: Boolean, + returnType: IrType, + symbol: IrConstructorSymbol, + isPrimary: Boolean, + isExternal: Boolean, containerSource: DeserializedContainerSource? ): IrConstructor { return super.createConstructor( startOffset, endOffset, origin, - symbol, name, visibility, - returnType, isInline, - isExternal, - isPrimary, isExpect, + returnType, + symbol, + isPrimary, + isExternal, containerSource, ).register() } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/lazy/LazyIrFactory.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/lazy/LazyIrFactory.kt index b58cccd1c09..3f1316a824e 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/lazy/LazyIrFactory.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/lazy/LazyIrFactory.kt @@ -49,21 +49,31 @@ class LazyIrFactory( startOffset: Int, endOffset: Int, origin: IrDeclarationOrigin, - symbol: IrConstructorSymbol, name: Name, visibility: DescriptorVisibility, - returnType: IrType, isInline: Boolean, - isExternal: Boolean, - isPrimary: Boolean, isExpect: Boolean, + returnType: IrType, + symbol: IrConstructorSymbol, + isPrimary: Boolean, + isExternal: Boolean, containerSource: DeserializedContainerSource? ): IrConstructor = if (symbol.isBound) symbol.owner else delegate.createConstructor( - startOffset, endOffset, origin, symbol, name, visibility, returnType, - isInline, isExternal, isPrimary, isExpect, containerSource + startOffset, + endOffset, + origin, + name, + visibility, + isInline, + isExpect, + returnType, + symbol, + isPrimary, + isExternal, + containerSource, ) override fun createEnumEntry( diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/DeepCopyIrTreeWithSymbols.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/DeepCopyIrTreeWithSymbols.kt index e4d94670836..894bf8e97e7 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/DeepCopyIrTreeWithSymbols.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/DeepCopyIrTreeWithSymbols.kt @@ -198,16 +198,17 @@ open class DeepCopyIrTreeWithSymbols( override fun visitConstructor(declaration: IrConstructor): IrConstructor = declaration.factory.createConstructor( - declaration.startOffset, declaration.endOffset, - mapDeclarationOrigin(declaration.origin), - symbolRemapper.getDeclaredConstructor(declaration.symbol), - declaration.name, - declaration.visibility, - declaration.returnType, + startOffset = declaration.startOffset, + endOffset = declaration.endOffset, + origin = mapDeclarationOrigin(declaration.origin), + name = declaration.name, + visibility = declaration.visibility, isInline = declaration.isInline, - isExternal = declaration.isExternal, - isPrimary = declaration.isPrimary, isExpect = declaration.isExpect, + returnType = declaration.returnType, + symbol = symbolRemapper.getDeclaredConstructor(declaration.symbol), + isPrimary = declaration.isPrimary, + isExternal = declaration.isExternal, containerSource = declaration.containerSource, ).apply { transformFunctionChildren(declaration) diff --git a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/linkage/partial/MissingDeclarationStubGenerator.kt b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/linkage/partial/MissingDeclarationStubGenerator.kt index a65d584fd4d..d183f892fd1 100644 --- a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/linkage/partial/MissingDeclarationStubGenerator.kt +++ b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/linkage/partial/MissingDeclarationStubGenerator.kt @@ -105,14 +105,14 @@ internal class MissingDeclarationStubGenerator(private val builtIns: IrBuiltIns) startOffset = UNDEFINED_OFFSET, endOffset = UNDEFINED_OFFSET, origin = PartiallyLinkedDeclarationOrigin.MISSING_DECLARATION, - symbol = symbol, name = SpecialNames.INIT, visibility = DescriptorVisibilities.DEFAULT_VISIBILITY, - returnType = builtIns.nothingType, isInline = false, - isExternal = false, - isPrimary = false, isExpect = false, + returnType = builtIns.nothingType, + symbol = symbol, + isPrimary = false, + isExternal = false, ).setCommonParent() } diff --git a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/IrDeclarationDeserializer.kt b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/IrDeclarationDeserializer.kt index b06333df24a..20204ce8c6e 100644 --- a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/IrDeclarationDeserializer.kt +++ b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/IrDeclarationDeserializer.kt @@ -668,15 +668,17 @@ class IrDeclarationDeserializer( val nameType = BinaryNameAndType.decode(proto.base.nameType) symbolTable.declareConstructor(idSig, { symbol }) { irFactory.createConstructor( - startOffset, endOffset, origin, - it, - deserializeName(nameType.nameIndex), - flags.visibility, - IrUninitializedType, - flags.isInline, - flags.isExternal || isEffectivelyExternal, - flags.isPrimary, - flags.isExpect + startOffset = startOffset, + endOffset = endOffset, + origin = origin, + name = deserializeName(nameType.nameIndex), + visibility = flags.visibility, + isInline = flags.isInline, + isExpect = flags.isExpect, + returnType = IrUninitializedType, + symbol = it, + isPrimary = flags.isPrimary, + isExternal = flags.isExternal || isEffectivelyExternal, ) } }