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 9fc58966fe2..1f6153efa5d 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 @@ -929,16 +929,20 @@ class Fir2IrDeclarationStorage( val result = declareIrProperty(signature) { symbol -> classifierStorage.preCacheTypeParameters(property, symbol) irFactory.createProperty( - startOffset, endOffset, origin, symbol, - property.name, components.visibilityConverter.convertToDescriptorVisibility(property.visibility), property.modality!!, + startOffset = startOffset, + endOffset = endOffset, + origin = origin, + name = property.name, + visibility = components.visibilityConverter.convertToDescriptorVisibility(property.visibility), + modality = property.modality!!, + symbol = symbol, isVar = property.isVar, isConst = property.isConst, isLateinit = property.isLateInit, isDelegated = property.delegate != null, isExternal = property.isExternal, - isExpect = property.isExpect, - isFakeOverride = origin == IrDeclarationOrigin.FAKE_OVERRIDE, containerSource = property.containerSource, + isExpect = property.isExpect, ).apply { metadata = FirMetadataSource.Property(property) convertAnnotationsForNonDeclaredMembers(property, origin) diff --git a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/descriptors/IrDescriptorBasedFunctionFactory.kt b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/descriptors/IrDescriptorBasedFunctionFactory.kt index 9619f1ab39f..e4cdc2cb5da 100644 --- a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/descriptors/IrDescriptorBasedFunctionFactory.kt +++ b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/descriptors/IrDescriptorBasedFunctionFactory.kt @@ -422,16 +422,19 @@ class IrDescriptorBasedFunctionFactory( fun createFakeOverrideProperty(descriptor: PropertyDescriptor): IrProperty { return symbolTable.declareProperty(offset, offset, memberOrigin, descriptor) { irFactory.createProperty( - offset, offset, memberOrigin, it, + startOffset = offset, + endOffset = offset, + origin = memberOrigin, name = descriptor.name, visibility = descriptor.visibility, modality = descriptor.modality, + symbol = it, isVar = descriptor.isVar, isConst = descriptor.isConst, isLateinit = descriptor.isLateInit, isDelegated = descriptor.isDelegated, isExternal = descriptor.isEffectivelyExternal(), - isExpect = descriptor.isExpect + isExpect = descriptor.isExpect, ).apply { parent = this@addFakeOverrides getter = descriptor.getter?.let { g -> createFakeOverrideFunction(g, symbol) } diff --git a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/ReflectionReferencesGenerator.kt b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/ReflectionReferencesGenerator.kt index ae44964dfbe..ee868c20c7e 100644 --- a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/ReflectionReferencesGenerator.kt +++ b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/ReflectionReferencesGenerator.kt @@ -576,20 +576,19 @@ internal class ReflectionReferencesGenerator(statementGenerator: StatementGenera val offset = UNDEFINED_OFFSET context.symbolTable.declareProperty(offset, offset, IrDeclarationOrigin.SYNTHETIC_JAVA_PROPERTY_DELEGATE, descriptor) { context.irFactory.createProperty( - offset, - offset, - IrDeclarationOrigin.SYNTHETIC_JAVA_PROPERTY_DELEGATE, - symbol, - descriptor.name, - descriptor.visibility, - descriptor.modality, - descriptor.isVar, - descriptor.isConst, - descriptor.isLateInit, - descriptor.isDelegated, - descriptor.isExternal, - descriptor.isExpect, - isFakeOverride = false + startOffset = offset, + endOffset = offset, + origin = IrDeclarationOrigin.SYNTHETIC_JAVA_PROPERTY_DELEGATE, + name = descriptor.name, + visibility = descriptor.visibility, + modality = descriptor.modality, + symbol = symbol, + isVar = descriptor.isVar, + isConst = descriptor.isConst, + isLateinit = descriptor.isLateInit, + isDelegated = descriptor.isDelegated, + isExternal = descriptor.isExternal, + isExpect = descriptor.isExpect, ).also { it.parent = scope.getLocalDeclarationParent() } 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 37a8b613e5f..d8a7183886f 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 @@ -242,16 +242,19 @@ internal class StandaloneDeclarationGenerator(private val context: GeneratorCont startOffset: Int, endOffset: Int, origin: IrDeclarationOrigin, descriptor: PropertyDescriptor, symbol: IrPropertySymbol ): IrProperty { val irProperty = irFactory.createProperty( - startOffset, endOffset, origin, symbol, + startOffset = startOffset, + endOffset = endOffset, + origin = origin, name = descriptor.name, visibility = descriptor.visibility, modality = descriptor.modality, + symbol = symbol, isVar = descriptor.isVar, isConst = descriptor.isConst, isLateinit = descriptor.isLateInit, isDelegated = false, isExternal = descriptor.isEffectivelyExternal(), - isExpect = descriptor.isExpect + isExpect = descriptor.isExpect, ) irProperty.metadata = DescriptorMetadataSource.Property(descriptor) 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 07ed79697bd..ae1eb10abc8 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 @@ -98,11 +98,21 @@ fun IrClass.addField( @PublishedApi internal fun IrFactory.buildProperty(builder: IrPropertyBuilder): IrProperty = with(builder) { createProperty( - startOffset, endOffset, origin, - IrPropertySymbolImpl(), - name, visibility, modality, - isVar, isConst, isLateinit, isDelegated, isExternal, isExpect, isFakeOverride, - containerSource, + startOffset = startOffset, + endOffset = endOffset, + origin = origin, + name = name, + visibility = visibility, + modality = modality, + symbol = IrPropertySymbolImpl(), + isVar = isVar, + isConst = isConst, + isLateinit = isLateinit, + isDelegated = isDelegated, + isExternal = isExternal, + containerSource = containerSource, + isExpect = isExpect, + isFakeOverride = isFakeOverride, ) } 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 0a73d6cf771..948bc8b28f2 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 @@ -139,18 +139,18 @@ interface IrFactory { startOffset: Int, endOffset: Int, origin: IrDeclarationOrigin, - symbol: IrPropertySymbol, name: Name, visibility: DescriptorVisibility, modality: Modality, + symbol: IrPropertySymbol, isVar: Boolean, isConst: Boolean, isLateinit: Boolean, isDelegated: Boolean, isExternal: Boolean, + containerSource: DeserializedContainerSource? = null, isExpect: Boolean = false, - isFakeOverride: Boolean = origin == IrDeclarationOrigin.FAKE_OVERRIDE, - containerSource: DeserializedContainerSource? = null + isFakeOverride: Boolean = origin == IrDeclarationOrigin.FAKE_OVERRIDE ): IrProperty fun createPropertyWithLateBinding( 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 ef3f55cd75f..d6ebbc0cad4 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 @@ -169,18 +169,18 @@ abstract class AbstractIrFactoryImpl : IrFactory { startOffset: Int, endOffset: Int, origin: IrDeclarationOrigin, - symbol: IrPropertySymbol, name: Name, visibility: DescriptorVisibility, modality: Modality, + symbol: IrPropertySymbol, isVar: Boolean, isConst: Boolean, isLateinit: Boolean, isDelegated: Boolean, isExternal: Boolean, + containerSource: DeserializedContainerSource?, isExpect: Boolean, isFakeOverride: Boolean, - containerSource: DeserializedContainerSource?, ): IrProperty = IrPropertyImpl( startOffset, endOffset, origin, symbol, name, visibility, modality, 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 372b8a2d7c0..0f1cdf2bad4 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 @@ -258,35 +258,35 @@ class IrFactoryImplForJsIC(override val stageController: StageController) : Abst startOffset: Int, endOffset: Int, origin: IrDeclarationOrigin, - symbol: IrPropertySymbol, name: Name, visibility: DescriptorVisibility, modality: Modality, + symbol: IrPropertySymbol, isVar: Boolean, isConst: Boolean, isLateinit: Boolean, isDelegated: Boolean, isExternal: Boolean, + containerSource: DeserializedContainerSource?, isExpect: Boolean, - isFakeOverride: Boolean, - containerSource: DeserializedContainerSource? + isFakeOverride: Boolean ): IrProperty { return super.createProperty( startOffset, endOffset, origin, - symbol, name, visibility, modality, + symbol, isVar, isConst, isLateinit, isDelegated, isExternal, + containerSource, isExpect, isFakeOverride, - 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 0b0b8098633..25922934d2a 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 @@ -147,24 +147,37 @@ class LazyIrFactory( startOffset: Int, endOffset: Int, origin: IrDeclarationOrigin, - symbol: IrPropertySymbol, name: Name, visibility: DescriptorVisibility, modality: Modality, + symbol: IrPropertySymbol, isVar: Boolean, isConst: Boolean, isLateinit: Boolean, isDelegated: Boolean, isExternal: Boolean, + containerSource: DeserializedContainerSource?, isExpect: Boolean, - isFakeOverride: Boolean, - containerSource: DeserializedContainerSource? + isFakeOverride: Boolean ): IrProperty = if (symbol.isBound) symbol.owner else delegate.createProperty( - startOffset, endOffset, origin, symbol, name, visibility, modality, - isVar, isConst, isLateinit, isDelegated, isExternal, isExpect, isFakeOverride, containerSource + startOffset, + endOffset, + origin, + name, + visibility, + modality, + symbol, + isVar, + isConst, + isLateinit, + isDelegated, + isExternal, + containerSource, + isExpect, + isFakeOverride, ) override fun createTypeAlias( 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 5105f5720a0..daa22c321f7 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 @@ -235,19 +235,20 @@ open class DeepCopyIrTreeWithSymbols( override fun visitProperty(declaration: IrProperty): IrProperty = declaration.factory.createProperty( - declaration.startOffset, declaration.endOffset, - mapDeclarationOrigin(declaration.origin), - symbolRemapper.getDeclaredProperty(declaration.symbol), - declaration.name, - declaration.visibility, - declaration.modality, + startOffset = declaration.startOffset, + endOffset = declaration.endOffset, + origin = mapDeclarationOrigin(declaration.origin), + name = declaration.name, + visibility = declaration.visibility, + modality = declaration.modality, + symbol = symbolRemapper.getDeclaredProperty(declaration.symbol), isVar = declaration.isVar, isConst = declaration.isConst, isLateinit = declaration.isLateinit, isDelegated = declaration.isDelegated, isExternal = declaration.isExternal, - isExpect = declaration.isExpect, containerSource = declaration.containerSource, + isExpect = declaration.isExpect, ).apply { transformAnnotations(declaration) copyAttributes(declaration) diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/SymbolTable.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/SymbolTable.kt index f539bd17db6..7556e8bc1ac 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/SymbolTable.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/SymbolTable.kt @@ -798,16 +798,20 @@ open class SymbolTable( isDelegated: Boolean = descriptor.isDelegated, propertyFactory: (IrPropertySymbol) -> IrProperty = { symbol -> irFactory.createProperty( - startOffset, endOffset, origin, symbol, name = nameProvider.nameForDeclaration(descriptor), + startOffset = startOffset, + endOffset = endOffset, + origin = origin, + name = nameProvider.nameForDeclaration(descriptor), visibility = descriptor.visibility, modality = descriptor.modality, + symbol = symbol, isVar = descriptor.isVar, isConst = descriptor.isConst, isLateinit = descriptor.isLateInit, isDelegated = isDelegated, isExternal = descriptor.isEffectivelyExternal(), isExpect = descriptor.isExpect, - isFakeOverride = descriptor.kind == CallableMemberDescriptor.Kind.FAKE_OVERRIDE + isFakeOverride = descriptor.kind == CallableMemberDescriptor.Kind.FAKE_OVERRIDE, ).apply { metadata = DescriptorMetadataSource.Property(symbol.descriptor) } 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 f228ece6d27..49470d52dfe 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 @@ -121,10 +121,10 @@ internal class MissingDeclarationStubGenerator(private val builtIns: IrBuiltIns) startOffset = UNDEFINED_OFFSET, endOffset = UNDEFINED_OFFSET, origin = PartiallyLinkedDeclarationOrigin.MISSING_DECLARATION, - symbol = symbol, name = symbol.guessName(), visibility = DescriptorVisibilities.DEFAULT_VISIBILITY, modality = Modality.FINAL, + symbol = symbol, isVar = false, isConst = false, isLateinit = false, 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 da1102c2542..6ef3796651c 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 @@ -753,18 +753,20 @@ class IrDeclarationDeserializer( val propertySymbol: IrPropertySymbol = symbol.checkSymbolType(PROPERTY_SYMBOL) val prop = symbolTable.declareProperty(uniqId, { propertySymbol }) { irFactory.createProperty( - startOffset, endOffset, origin, - it, - deserializeName(proto.name), - flags.visibility, - flags.modality, - flags.isVar, - flags.isConst, - flags.isLateinit, - flags.isDelegated, - flags.isExternal || isEffectivelyExternal, - flags.isExpect, - flags.isFakeOverride + startOffset = startOffset, + endOffset = endOffset, + origin = origin, + name = deserializeName(proto.name), + visibility = flags.visibility, + modality = flags.modality, + symbol = it, + isVar = flags.isVar, + isConst = flags.isConst, + isLateinit = flags.isLateinit, + isDelegated = flags.isDelegated, + isExternal = flags.isExternal || isEffectivelyExternal, + isExpect = flags.isExpect, + isFakeOverride = flags.isFakeOverride, ) }