diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/ConversionUtils.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/ConversionUtils.kt index 81b16a32b0a..96d11aca8e3 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/ConversionUtils.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/ConversionUtils.kt @@ -30,7 +30,6 @@ import org.jetbrains.kotlin.fir.symbols.impl.* import org.jetbrains.kotlin.fir.types.* import org.jetbrains.kotlin.ir.IrElement import org.jetbrains.kotlin.ir.declarations.* -import org.jetbrains.kotlin.ir.declarations.impl.IrValueParameterImpl import org.jetbrains.kotlin.ir.descriptors.IrBuiltIns import org.jetbrains.kotlin.ir.descriptors.WrappedReceiverParameterDescriptor import org.jetbrains.kotlin.ir.expressions.IrConst @@ -42,7 +41,6 @@ import org.jetbrains.kotlin.ir.symbols.IrClassifierSymbol import org.jetbrains.kotlin.ir.symbols.IrSymbol import org.jetbrains.kotlin.ir.symbols.IrTypeParameterSymbol import org.jetbrains.kotlin.ir.symbols.IrValueSymbol -import org.jetbrains.kotlin.ir.expressions.impl.IrConstImpl import org.jetbrains.kotlin.ir.symbols.impl.IrClassPublicSymbolImpl import org.jetbrains.kotlin.ir.symbols.impl.IrClassSymbolImpl import org.jetbrains.kotlin.ir.types.* @@ -461,7 +459,7 @@ internal fun IrDeclarationParent.declareThisReceiverParameter( return symbolTable.declareValueParameter( startOffset, endOffset, thisOrigin, receiverDescriptor, thisType ) { symbol -> - IrValueParameterImpl( + symbolTable.irFactory.createValueParameter( startOffset, endOffset, thisOrigin, symbol, Name.special(""), -1, thisType, varargElementType = null, isCrossinline = false, isNoinline = false diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrClassifierStorage.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrClassifierStorage.kt index afd33567d9f..c6fefb62e17 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrClassifierStorage.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrClassifierStorage.kt @@ -22,10 +22,6 @@ import org.jetbrains.kotlin.fir.symbols.impl.FirClassSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirTypeParameterSymbol import org.jetbrains.kotlin.fir.types.FirTypeRef import org.jetbrains.kotlin.ir.declarations.* -import org.jetbrains.kotlin.ir.declarations.impl.IrClassImpl -import org.jetbrains.kotlin.ir.declarations.impl.IrEnumEntryImpl -import org.jetbrains.kotlin.ir.declarations.impl.IrTypeAliasImpl -import org.jetbrains.kotlin.ir.declarations.impl.IrTypeParameterImpl import org.jetbrains.kotlin.ir.descriptors.WrappedClassDescriptor import org.jetbrains.kotlin.ir.descriptors.WrappedEnumEntryDescriptor import org.jetbrains.kotlin.ir.descriptors.WrappedTypeAliasDescriptor @@ -195,7 +191,7 @@ class Fir2IrClassifierStorage( preCacheTypeParameters(typeAlias) return typeAlias.convertWithOffsets { startOffset, endOffset -> declareIrTypeAlias(signature) { symbol -> - val irTypeAlias = IrTypeAliasImpl( + val irTypeAlias = irFactory.createTypeAlias( startOffset, endOffset, symbol, typeAlias.name, typeAlias.visibility, typeAlias.expandedTypeRef.toIrType(), @@ -235,7 +231,7 @@ class Fir2IrClassifierStorage( val signature = if (regularClass.isLocal) null else signatureComposer.composeSignature(regularClass) val irClass = regularClass.convertWithOffsets { startOffset, endOffset -> declareIrClass(signature) { symbol -> - IrClassImpl( + irFactory.createClass( startOffset, endOffset, origin, @@ -278,7 +274,7 @@ class Fir2IrClassifierStorage( val signature = null val result = anonymousObject.convertWithOffsets { startOffset, endOffset -> declareIrClass(signature) { symbol -> - IrClassImpl( + irFactory.createClass( startOffset, endOffset, origin, symbol, name, // NB: for unknown reason, IR uses 'CLASS' kind for simple anonymous objects anonymousObject.classKind.takeIf { it == ClassKind.ENUM_ENTRY } ?: ClassKind.CLASS, @@ -312,7 +308,7 @@ class Fir2IrClassifierStorage( val irTypeParameter = with(typeParameter) { convertWithOffsets { startOffset, endOffset -> symbolTable.declareGlobalTypeParameter(startOffset, endOffset, origin, descriptor) { symbol -> - IrTypeParameterImpl( + irFactory.createTypeParameter( startOffset, endOffset, origin, symbol, name, if (index < 0) 0 else index, isReified, @@ -393,7 +389,7 @@ class Fir2IrClassifierStorage( return enumEntry.convertWithOffsets { startOffset, endOffset -> val signature = signatureComposer.composeSignature(enumEntry) val result = declareIrEnumEntry(signature) { symbol -> - IrEnumEntryImpl( + irFactory.createEnumEntry( startOffset, endOffset, origin, symbol, enumEntry.name ).apply { declarationStorage.enterScope(this) diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrComponents.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrComponents.kt index 952d579e4d0..ff431e8235e 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrComponents.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrComponents.kt @@ -9,6 +9,7 @@ import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.backend.generators.CallAndReferenceGenerator import org.jetbrains.kotlin.fir.backend.generators.FakeOverrideGenerator import org.jetbrains.kotlin.fir.resolve.ScopeSession +import org.jetbrains.kotlin.ir.declarations.IrFactory import org.jetbrains.kotlin.ir.descriptors.IrBuiltIns import org.jetbrains.kotlin.ir.util.SymbolTable @@ -17,10 +18,11 @@ interface Fir2IrComponents { val scopeSession: ScopeSession val symbolTable: SymbolTable val irBuiltIns: IrBuiltIns + val irFactory: IrFactory val classifierStorage: Fir2IrClassifierStorage val declarationStorage: Fir2IrDeclarationStorage val typeConverter: Fir2IrTypeConverter val signatureComposer: Fir2IrSignatureComposer val callGenerator: CallAndReferenceGenerator val fakeOverrideGenerator: FakeOverrideGenerator -} \ No newline at end of file +} diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrComponentsStorage.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrComponentsStorage.kt index f3d2e114cd2..191898d3fbb 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrComponentsStorage.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrComponentsStorage.kt @@ -11,6 +11,7 @@ import org.jetbrains.kotlin.fir.backend.generators.FakeOverrideGenerator import org.jetbrains.kotlin.fir.resolve.ScopeSession import org.jetbrains.kotlin.fir.signaturer.FirBasedSignatureComposer import org.jetbrains.kotlin.fir.signaturer.FirMangler +import org.jetbrains.kotlin.ir.declarations.IrFactory import org.jetbrains.kotlin.ir.descriptors.IrBuiltIns import org.jetbrains.kotlin.ir.util.SymbolTable @@ -19,6 +20,7 @@ class Fir2IrComponentsStorage( override val scopeSession: ScopeSession, override val symbolTable: SymbolTable, override val irBuiltIns: IrBuiltIns, + override val irFactory: IrFactory, mangler: FirMangler ) : Fir2IrComponents { override lateinit var classifierStorage: Fir2IrClassifierStorage @@ -28,4 +30,4 @@ class Fir2IrComponentsStorage( override lateinit var fakeOverrideGenerator: FakeOverrideGenerator override val signatureComposer = FirBasedSignatureComposer(mangler) -} \ No newline at end of file +} diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrConverter.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrConverter.kt index 5cc269b6cbc..5ffa6773c0e 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrConverter.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrConverter.kt @@ -218,7 +218,7 @@ class Fir2IrConverter( val builtIns = IrBuiltIns(moduleDescriptor.builtIns, typeTranslator, symbolTable) FirBuiltinSymbols(builtIns, moduleDescriptor.builtIns, symbolTable) val sourceManager = PsiSourceManager() - val components = Fir2IrComponentsStorage(session, scopeSession, symbolTable, builtIns, mangler) + val components = Fir2IrComponentsStorage(session, scopeSession, symbolTable, builtIns, irFactory, mangler) val conversionScope = Fir2IrConversionScope() val classifierStorage = Fir2IrClassifierStorage(components) val declarationStorage = Fir2IrDeclarationStorage(components, moduleDescriptor) 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 507f6691a15..181d1fb4c58 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 @@ -6,7 +6,7 @@ package org.jetbrains.kotlin.fir.backend import org.jetbrains.kotlin.KtNodeTypes -import org.jetbrains.kotlin.builtins.KotlinBuiltIns.* +import org.jetbrains.kotlin.builtins.KotlinBuiltIns.BUILT_INS_PACKAGE_FQ_NAMES import org.jetbrains.kotlin.descriptors.* import org.jetbrains.kotlin.descriptors.annotations.Annotations import org.jetbrains.kotlin.fir.FirAnnotationContainer @@ -26,20 +26,28 @@ import org.jetbrains.kotlin.fir.lazy.Fir2IrLazyConstructor import org.jetbrains.kotlin.fir.lazy.Fir2IrLazyProperty import org.jetbrains.kotlin.fir.lazy.Fir2IrLazySimpleFunction import org.jetbrains.kotlin.fir.render -import org.jetbrains.kotlin.fir.resolve.* -import org.jetbrains.kotlin.fir.symbols.* +import org.jetbrains.kotlin.fir.resolve.firProvider +import org.jetbrains.kotlin.fir.resolve.firSymbolProvider +import org.jetbrains.kotlin.fir.resolve.isKFunctionInvoke +import org.jetbrains.kotlin.fir.symbols.Fir2IrConstructorSymbol +import org.jetbrains.kotlin.fir.symbols.Fir2IrPropertySymbol +import org.jetbrains.kotlin.fir.symbols.Fir2IrSimpleFunctionSymbol +import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol import org.jetbrains.kotlin.fir.symbols.impl.* import org.jetbrains.kotlin.fir.types.* import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI import org.jetbrains.kotlin.ir.UNDEFINED_OFFSET import org.jetbrains.kotlin.ir.declarations.* -import org.jetbrains.kotlin.ir.declarations.impl.* +import org.jetbrains.kotlin.ir.declarations.impl.IrVariableImpl import org.jetbrains.kotlin.ir.descriptors.* import org.jetbrains.kotlin.ir.expressions.IrExpression import org.jetbrains.kotlin.ir.expressions.IrSyntheticBodyKind -import org.jetbrains.kotlin.ir.expressions.impl.* +import org.jetbrains.kotlin.ir.expressions.impl.IrErrorExpressionImpl +import org.jetbrains.kotlin.ir.expressions.impl.IrExpressionBodyImpl import org.jetbrains.kotlin.ir.symbols.* -import org.jetbrains.kotlin.ir.types.* +import org.jetbrains.kotlin.ir.types.IrErrorType +import org.jetbrains.kotlin.ir.types.IrSimpleType +import org.jetbrains.kotlin.ir.types.IrType import org.jetbrains.kotlin.ir.util.* import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.name.FqName @@ -238,7 +246,7 @@ class Fir2IrDeclarationStorage( symbolTable.declareValueParameter( startOffset, endOffset, origin, descriptor, type ) { symbol -> - IrValueParameterImpl( + irFactory.createValueParameter( startOffset, endOffset, IrDeclarationOrigin.DEFINED, symbol, Name.special(""), 0, type, varargElementType = null, @@ -388,7 +396,7 @@ class Fir2IrDeclarationStorage( val signature = if (isLocal) null else signatureComposer.composeSignature(function) val created = function.convertWithOffsets { startOffset, endOffset -> val result = declareIrSimpleFunction(signature, simpleFunction?.containerSource) { symbol -> - IrFunctionImpl( + irFactory.createFunction( startOffset, endOffset, updatedOrigin, symbol, name, visibility, simpleFunction?.modality ?: Modality.FINAL, @@ -464,7 +472,7 @@ class Fir2IrDeclarationStorage( val signature = if (isLocal) null else signatureComposer.composeSignature(constructor) val created = constructor.convertWithOffsets { startOffset, endOffset -> declareIrConstructor(signature) { symbol -> - IrConstructorImpl( + irFactory.createConstructor( startOffset, endOffset, origin, symbol, Name.special(""), constructor.visibility, constructor.returnTypeRef.toIrType(), @@ -517,7 +525,7 @@ class Fir2IrDeclarationStorage( isGetter = !isSetter ) { symbol -> val accessorReturnType = if (isSetter) irBuiltIns.unitType else propertyType - IrFunctionImpl( + irFactory.createFunction( startOffset, endOffset, origin, symbol, Name.special("<$prefix-${correspondingProperty.name}>"), propertyAccessor?.visibility ?: correspondingProperty.visibility, @@ -577,7 +585,7 @@ class Fir2IrDeclarationStorage( return symbolTable.declareField( startOffset, endOffset, origin, descriptor, inferredType ) { symbol -> - IrFieldImpl( + irFactory.createField( startOffset, endOffset, origin, symbol, name, inferredType, visibility, isFinal = isFinal, @@ -627,7 +635,7 @@ class Fir2IrDeclarationStorage( val signature = if (isLocal) null else signatureComposer.composeSignature(property) return property.convertWithOffsets { startOffset, endOffset -> val result = declareIrProperty(signature, property.containerSource) { symbol -> - IrPropertyImpl( + irFactory.createProperty( startOffset, endOffset, origin, symbol, property.name, property.visibility, property.modality!!, isVar = property.isVar, @@ -746,7 +754,7 @@ class Fir2IrDeclarationStorage( startOffset, endOffset, origin, descriptor, type ) { symbol -> - IrFieldImpl( + irFactory.createField( startOffset, endOffset, origin, symbol, field.name, type, field.visibility, isFinal = field.modality == Modality.FINAL, @@ -774,7 +782,7 @@ class Fir2IrDeclarationStorage( symbolTable.declareValueParameter( startOffset, endOffset, origin, descriptor, type ) { symbol -> - IrValueParameterImpl( + irFactory.createValueParameter( startOffset, endOffset, origin, symbol, valueParameter.name, index, type, if (!valueParameter.isVararg) null diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/DataClassMembersGenerator.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/DataClassMembersGenerator.kt index 3ec4165036f..d4636cb52fe 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/DataClassMembersGenerator.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/DataClassMembersGenerator.kt @@ -6,15 +6,9 @@ package org.jetbrains.kotlin.fir.backend.generators import org.jetbrains.kotlin.descriptors.* -import org.jetbrains.kotlin.fir.backend.Fir2IrComponents -import org.jetbrains.kotlin.fir.backend.FirMetadataSource -import org.jetbrains.kotlin.descriptors.CallableDescriptor -import org.jetbrains.kotlin.descriptors.FunctionDescriptor import org.jetbrains.kotlin.descriptors.Modality -import org.jetbrains.kotlin.descriptors.Visibilities import org.jetbrains.kotlin.fir.backend.* -import org.jetbrains.kotlin.fir.backend.declareThisReceiverParameter -import org.jetbrains.kotlin.fir.declarations.FirClass +import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.declarations.builder.buildSimpleFunction import org.jetbrains.kotlin.fir.declarations.builder.buildValueParameter import org.jetbrains.kotlin.fir.declarations.impl.FirDeclarationStatusImpl @@ -25,20 +19,16 @@ import org.jetbrains.kotlin.fir.types.impl.FirImplicitBooleanTypeRef import org.jetbrains.kotlin.fir.types.impl.FirImplicitIntTypeRef import org.jetbrains.kotlin.fir.types.impl.FirImplicitNullableAnyTypeRef import org.jetbrains.kotlin.fir.types.impl.FirImplicitStringTypeRef -import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.incremental.components.NoLookupLocation import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI import org.jetbrains.kotlin.ir.UNDEFINED_OFFSET import org.jetbrains.kotlin.ir.builders.IrGeneratorContextBase import org.jetbrains.kotlin.ir.declarations.* -import org.jetbrains.kotlin.ir.declarations.impl.IrFunctionImpl -import org.jetbrains.kotlin.ir.declarations.impl.IrValueParameterImpl import org.jetbrains.kotlin.ir.descriptors.WrappedValueParameterDescriptor import org.jetbrains.kotlin.ir.expressions.IrMemberAccessExpression import org.jetbrains.kotlin.ir.types.IrType import org.jetbrains.kotlin.ir.util.* import org.jetbrains.kotlin.ir.util.DataClassMembersGenerator -import org.jetbrains.kotlin.ir.util.defaultType import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.name.Name @@ -245,23 +235,10 @@ class DataClassMembersGenerator(val components: Fir2IrComponents) { } val signature = if (classId.isLocal) null else components.signatureComposer.composeSignature(firFunction) return components.declarationStorage.declareIrSimpleFunction(signature, null) { symbol -> - IrFunctionImpl( - UNDEFINED_OFFSET, - UNDEFINED_OFFSET, - origin, - symbol, - name, - Visibilities.PUBLIC, - Modality.OPEN, - returnType, - isInline = false, - isExternal = false, - isTailrec = false, - isSuspend = false, - isExpect = false, - isFakeOverride = false, - isOperator = false, - isInfix = false + components.irFactory.createFunction( + UNDEFINED_OFFSET, UNDEFINED_OFFSET, origin, symbol, name, Visibilities.PUBLIC, Modality.OPEN, returnType, + isInline = false, isExternal = false, isTailrec = false, isSuspend = false, isExpect = false, + isFakeOverride = false, isOperator = false, isInfix = false, ).apply { if (otherParameterNeeded) { val irValueParameter = createSyntheticIrParameter( @@ -288,23 +265,11 @@ class DataClassMembersGenerator(val components: Fir2IrComponents) { private fun createSyntheticIrParameter(irFunction: IrFunction, name: Name, type: IrType, index: Int = 0): IrValueParameter { val descriptor = WrappedValueParameterDescriptor() return components.symbolTable.declareValueParameter( - UNDEFINED_OFFSET, - UNDEFINED_OFFSET, - origin, - descriptor, - type + UNDEFINED_OFFSET, UNDEFINED_OFFSET, origin, descriptor, type ) { symbol -> - IrValueParameterImpl( - UNDEFINED_OFFSET, - UNDEFINED_OFFSET, - origin, - symbol, - name, - index, - type, - null, - isCrossinline = false, - isNoinline = false + components.irFactory.createValueParameter( + UNDEFINED_OFFSET, UNDEFINED_OFFSET, origin, symbol, name, index, type, null, + isCrossinline = false, isNoinline = false ) }.apply { parent = irFunction @@ -337,4 +302,4 @@ class DataClassMembersGenerator(val components: Fir2IrComponents) { fun getComponentIndex(irFunction: IrFunction): Int? = irFunction.name.identifier.substring("component".length).toIntOrNull() } -} \ No newline at end of file +} diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/DelegatedMemberGenerator.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/DelegatedMemberGenerator.kt index e666b1f1837..da77b442a00 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/DelegatedMemberGenerator.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/DelegatedMemberGenerator.kt @@ -23,10 +23,6 @@ import org.jetbrains.kotlin.fir.symbols.impl.FirNamedFunctionSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirPropertySymbol import org.jetbrains.kotlin.fir.symbols.impl.FirVariableSymbol import org.jetbrains.kotlin.ir.declarations.* -import org.jetbrains.kotlin.ir.declarations.impl.IrFunctionImpl -import org.jetbrains.kotlin.ir.declarations.impl.IrPropertyImpl -import org.jetbrains.kotlin.ir.declarations.impl.IrTypeParameterImpl -import org.jetbrains.kotlin.ir.declarations.impl.IrValueParameterImpl import org.jetbrains.kotlin.ir.descriptors.WrappedPropertyDescriptor import org.jetbrains.kotlin.ir.descriptors.WrappedSimpleFunctionDescriptor import org.jetbrains.kotlin.ir.descriptors.WrappedTypeParameterDescriptor @@ -115,7 +111,7 @@ internal class DelegatedMemberGenerator( } == true lateinit var irTypeSubstitutor: IrTypeSubstitutor val delegateFunction = symbolTable.declareSimpleFunction(descriptor) { symbol -> - IrFunctionImpl( + irFactory.createFunction( startOffset, endOffset, origin, @@ -146,7 +142,7 @@ internal class DelegatedMemberGenerator( typeParameters += symbolTable.declareScopedTypeParameter( startOffset, endOffset, origin, parameterDescriptor ) { symbol -> - IrTypeParameterImpl( + irFactory.createTypeParameter( startOffset, endOffset, origin, @@ -176,7 +172,7 @@ internal class DelegatedMemberGenerator( valueParameters += symbolTable.declareValueParameter( startOffset, endOffset, origin, parameterDescriptor, substedType ) { symbol -> - IrValueParameterImpl( + irFactory.createValueParameter( startOffset, endOffset, origin, symbol, valueParameter.name, valueParameter.index, substedType, null, valueParameter.isCrossinline, valueParameter.isNoinline @@ -282,7 +278,7 @@ internal class DelegatedMemberGenerator( startOffset, endOffset, IrDeclarationOrigin.DELEGATED_MEMBER, descriptor, superProperty.isDelegated ) { symbol -> - IrPropertyImpl( + irFactory.createProperty( startOffset, endOffset, IrDeclarationOrigin.DELEGATED_MEMBER, symbol, superProperty.name, superProperty.visibility, modality,