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 57a691ba8c2..8c50a987e20 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 @@ -59,7 +59,6 @@ import org.jetbrains.kotlin.psi.psiUtil.startOffsetSkippingComments import org.jetbrains.kotlin.types.ConstantValueKind import org.jetbrains.kotlin.types.Variance import org.jetbrains.kotlin.util.OperatorNameConventions -import java.util.HashMap fun AbstractKtSourceElement?.startOffsetSkippingComments(): Int? { return when (this) { 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 38d40d5674e..ec59c4d6081 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 @@ -525,7 +525,6 @@ class Fir2IrClassifierStorage( enumEntry: FirEnumEntry, irParent: IrClass, predefinedOrigin: IrDeclarationOrigin? = null, - forceTopLevelPrivate: Boolean = false, ): IrEnumEntry { getCachedIrEnumEntry(enumEntry)?.let { return it } val containingFile = firProvider.getFirCallableContainerFile(enumEntry.symbol) @@ -539,8 +538,7 @@ class Fir2IrClassifierStorage( return createIrEnumEntry( enumEntry, irParent = irParent, - predefinedOrigin = predefinedOrigin, - forceTopLevelPrivate + predefinedOrigin = predefinedOrigin ) } @@ -561,10 +559,9 @@ class Fir2IrClassifierStorage( enumEntry: FirEnumEntry, irParent: IrClass?, predefinedOrigin: IrDeclarationOrigin? = null, - forceTopLevelPrivate: Boolean = false, ): IrEnumEntry { return enumEntry.convertWithOffsets { startOffset, endOffset -> - val signature = signatureComposer.composeSignature(enumEntry, forceTopLevelPrivate = forceTopLevelPrivate) + val signature = signatureComposer.composeSignature(enumEntry) val result = declareIrEnumEntry(signature) { symbol -> val origin = enumEntry.computeIrOrigin(predefinedOrigin) irFactory.createEnumEntry( @@ -600,7 +597,7 @@ class Fir2IrClassifierStorage( return initializer is FirAnonymousObjectExpression && initializer.anonymousObject.declarations.any { it !is FirConstructor } } - fun getIrClassSymbol(firClassSymbol: FirClassSymbol<*>, forceTopLevelPrivate: Boolean = false): IrClassSymbol { + fun getIrClassSymbol(firClassSymbol: FirClassSymbol<*>): IrClassSymbol { val firClass = firClassSymbol.fir getCachedIrClass(firClass)?.let { return it.symbol } if (firClass is FirAnonymousObject || firClass is FirRegularClass && firClass.visibility == Visibilities.Local) { @@ -616,7 +613,7 @@ class Fir2IrClassifierStorage( getCachedIrClass(firClass)?.let { return it.symbol } val signature = runIf(configuration.linkViaSignatures) { - signatureComposer.composeSignature(firClass, forceTopLevelPrivate = forceTopLevelPrivate) + signatureComposer.composeSignature(firClass) } val irClass = firClass.convertWithOffsets { startOffset, endOffset -> declareIrClass(signature) { irClassSymbol -> 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 17dfdb1286c..88dcc99431e 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 @@ -510,15 +510,13 @@ class Fir2IrDeclarationStorage( function: FirSimpleFunction, irParent: IrDeclarationParent?, isLocal: Boolean = false, - forceTopLevelPrivate: Boolean = false, ): IrSimpleFunction { getCachedIrFunction(function)?.let { return it } return createIrFunction( function, irParent, - fakeOverrideOwnerLookupTag = function.containingClassLookupTag(), isLocal = isLocal, - forceTopLevelPrivate = forceTopLevelPrivate + fakeOverrideOwnerLookupTag = function.containingClassLookupTag() ) } @@ -529,7 +527,6 @@ class Fir2IrDeclarationStorage( predefinedOrigin: IrDeclarationOrigin? = null, isLocal: Boolean = false, fakeOverrideOwnerLookupTag: ConeClassLikeLookupTag? = null, - forceTopLevelPrivate: Boolean = false, ): IrSimpleFunction = convertCatching(function) { val simpleFunction = function as? FirSimpleFunction val isLambda = function is FirAnonymousFunction && function.isLambda @@ -559,7 +556,7 @@ class Fir2IrDeclarationStorage( function.dispatchReceiverType?.isPrimitive != true && function.containerSource == null && updatedOrigin != IrDeclarationOrigin.FAKE_OVERRIDE && !function.isOverride ) { - signatureComposer.composeSignature(function, fakeOverrideOwnerLookupTag, forceTopLevelPrivate) + signatureComposer.composeSignature(function, fakeOverrideOwnerLookupTag) } if (irParent is Fir2IrLazyClass && signature != null) { // For private functions signature is null, fallback to non-lazy function @@ -659,13 +656,12 @@ class Fir2IrDeclarationStorage( irParent: IrClass, predefinedOrigin: IrDeclarationOrigin? = null, isLocal: Boolean = false, - forceTopLevelPrivate: Boolean = false, ): IrConstructor = convertCatching(constructor) { val origin = constructor.computeIrOrigin(predefinedOrigin) val isPrimary = constructor.isPrimary val signature = runUnless(isLocal || !configuration.linkViaSignatures) { - signatureComposer.composeSignature(constructor, forceTopLevelPrivate = forceTopLevelPrivate) + signatureComposer.composeSignature(constructor) } val visibility = if (irParent.isAnonymousObject) Visibilities.Public else constructor.visibility return constructor.convertWithOffsets { startOffset, endOffset -> @@ -701,10 +697,9 @@ class Fir2IrDeclarationStorage( irParent: IrClass, predefinedOrigin: IrDeclarationOrigin? = null, isLocal: Boolean = false, - forceTopLevelPrivate: Boolean = false, ): IrConstructor { getCachedIrConstructor(constructor)?.let { return it } - return createIrConstructor(constructor, irParent, predefinedOrigin, isLocal, forceTopLevelPrivate = forceTopLevelPrivate) + return createIrConstructor(constructor, irParent, predefinedOrigin, isLocal) } private fun declareIrAccessor( @@ -730,12 +725,11 @@ class Fir2IrDeclarationStorage( dontUseSignature: Boolean = false, fakeOverrideOwnerLookupTag: ConeClassLikeLookupTag? = null, propertyAccessorForAnnotations: FirPropertyAccessor? = propertyAccessor, - forceTopLevelPrivate: Boolean = false, ): IrSimpleFunction = convertCatching(propertyAccessor ?: property) { val prefix = if (isSetter) "set" else "get" val signature = runUnless(dontUseSignature) { - signatureComposer.composeAccessorSignature(property, isSetter, fakeOverrideOwnerLookupTag, forceTopLevelPrivate) + signatureComposer.composeAccessorSignature(property, isSetter, fakeOverrideOwnerLookupTag) } val containerSource = (correspondingProperty as? IrProperty)?.containerSource return declareIrAccessor( @@ -862,10 +856,9 @@ class Fir2IrDeclarationStorage( property: FirProperty, irParent: IrDeclarationParent?, isLocal: Boolean = false, - forceTopLevelPrivate: Boolean = false, ): IrProperty { getCachedIrProperty(property)?.let { return it } - return createIrProperty(property, irParent, isLocal = isLocal, forceTopLevelPrivate = forceTopLevelPrivate) + return createIrProperty(property, irParent, isLocal = isLocal) } fun getOrCreateIrPropertyByPureField( @@ -912,7 +905,6 @@ class Fir2IrDeclarationStorage( predefinedOrigin: IrDeclarationOrigin? = null, isLocal: Boolean = false, fakeOverrideOwnerLookupTag: ConeClassLikeLookupTag? = (irParent as? IrClass)?.classId?.toLookupTag(), - forceTopLevelPrivate: Boolean = false, ): IrProperty = convertCatching(property) { val origin = if (property.isStatic && property.name in ENUM_SYNTHETIC_NAMES) IrDeclarationOrigin.ENUM_CLASS_SPECIAL_MEMBER @@ -925,7 +917,7 @@ class Fir2IrDeclarationStorage( property.dispatchReceiverType?.isPrimitive != true && property.containerSource == null && origin != IrDeclarationOrigin.FAKE_OVERRIDE && !property.isOverride ) { - signatureComposer.composeSignature(property, fakeOverrideOwnerLookupTag, forceTopLevelPrivate) + signatureComposer.composeSignature(property, fakeOverrideOwnerLookupTag) } if (irParent is Fir2IrLazyClass && signature != null) { // For private functions signature is null, fallback to non-lazy property @@ -1007,7 +999,6 @@ class Fir2IrDeclarationStorage( startOffset, endOffset, dontUseSignature = signature == null, fakeOverrideOwnerLookupTag, property.unwrapFakeOverrides().getter, - forceTopLevelPrivate = forceTopLevelPrivate, ) if (property.isVar) { this.setter = createIrPropertyAccessor( @@ -1022,7 +1013,6 @@ class Fir2IrDeclarationStorage( startOffset, endOffset, dontUseSignature = signature == null, fakeOverrideOwnerLookupTag, property.unwrapFakeOverrides().setter, - forceTopLevelPrivate = forceTopLevelPrivate, ) } leaveScope(this) @@ -1368,14 +1358,14 @@ class Fir2IrDeclarationStorage( } } - fun getIrConstructorSymbol(firConstructorSymbol: FirConstructorSymbol, forceTopLevelPrivate: Boolean = false): IrConstructorSymbol { + fun getIrConstructorSymbol(firConstructorSymbol: FirConstructorSymbol): IrConstructorSymbol { val fir = firConstructorSymbol.fir return getIrCallableSymbol( firConstructorSymbol, fakeOverrideOwnerLookupTag = null, getCachedIrDeclaration = { constructor: FirConstructor, _, calculator -> getCachedIrConstructor(constructor, calculator) }, createIrDeclaration = { parent, origin -> - createIrConstructor(fir, parent as IrClass, predefinedOrigin = origin, forceTopLevelPrivate = forceTopLevelPrivate) + createIrConstructor(fir, parent as IrClass, predefinedOrigin = origin) }, createIrLazyDeclaration = { signature, lazyParent, declarationOrigin -> val symbol = Fir2IrConstructorSymbol(signature) @@ -1393,14 +1383,12 @@ class Fir2IrDeclarationStorage( (irConstructor as Fir2IrLazyConstructor).prepareTypeParameters() irConstructor }, - forceTopLevelPrivate = forceTopLevelPrivate ) as IrConstructorSymbol } fun getIrFunctionSymbol( firFunctionSymbol: FirFunctionSymbol<*>, fakeOverrideOwnerLookupTag: ConeClassLikeLookupTag? = null, - forceTopLevelPrivate: Boolean = false, ): IrFunctionSymbol { return when (val fir = firFunctionSymbol.fir) { is FirAnonymousFunction -> { @@ -1423,14 +1411,12 @@ class Fir2IrDeclarationStorage( createIrFunction( fir, parent, predefinedOrigin = origin, - forceTopLevelPrivate = forceTopLevelPrivate, fakeOverrideOwnerLookupTag = fakeOverrideOwnerLookupTag, ) }, createIrLazyDeclaration = { signature, lazyParent, declarationOrigin -> createIrLazyFunction(fir, signature, lazyParent, declarationOrigin) }, - forceTopLevelPrivate = forceTopLevelPrivate ) as IrFunctionSymbol if (unmatchedOwner && fakeOverrideOwnerLookupTag is ConeClassLookupTagWithFixedSymbol) { val originalFunction = originalSymbol.owner as IrSimpleFunction @@ -1440,7 +1426,7 @@ class Fir2IrDeclarationStorage( } } is FirConstructor -> { - getIrConstructorSymbol(fir.symbol, forceTopLevelPrivate = forceTopLevelPrivate) + getIrConstructorSymbol(fir.symbol) } else -> error("Unknown kind of function: ${fir::class.java}: ${fir.render()}") } @@ -1473,7 +1459,6 @@ class Fir2IrDeclarationStorage( fun getIrPropertySymbol( firPropertySymbol: FirPropertySymbol, fakeOverrideOwnerLookupTag: ConeClassLikeLookupTag? = null, - forceTopLevelPrivate: Boolean = false, ): IrSymbol { val fir = firPropertySymbol.fir if (fir.isLocal) { @@ -1491,14 +1476,12 @@ class Fir2IrDeclarationStorage( getCachedIrDeclaration = ::getCachedIrProperty, createIrDeclaration = { parent, origin -> createIrProperty( - fir, parent, predefinedOrigin = origin, forceTopLevelPrivate = forceTopLevelPrivate, - fakeOverrideOwnerLookupTag = fakeOverrideOwnerLookupTag, + fir, parent, predefinedOrigin = origin, fakeOverrideOwnerLookupTag = fakeOverrideOwnerLookupTag, ) }, createIrLazyDeclaration = { signature, lazyParent, declarationOrigin -> createIrLazyProperty(fir, signature, lazyParent, declarationOrigin) }, - forceTopLevelPrivate = forceTopLevelPrivate ) val originalSymbol = fakeOverrideOwnerLookupTag.getIrCallableSymbol() @@ -1594,7 +1577,6 @@ class Fir2IrDeclarationStorage( getCachedIrDeclaration: (firDeclaration: F, dispatchReceiverLookupTag: ConeClassLikeLookupTag?, () -> IdSignature?) -> I?, createIrDeclaration: (parent: IrDeclarationParent?, origin: IrDeclarationOrigin) -> I, createIrLazyDeclaration: (signature: IdSignature, lazyOwner: IrDeclarationParent, origin: IrDeclarationOrigin) -> I, - forceTopLevelPrivate: Boolean = false, ): IrSymbol { val fir = firSymbol.fir as F val irParent by lazy { findIrParent(fir) } @@ -1602,7 +1584,6 @@ class Fir2IrDeclarationStorage( signatureComposer.composeSignature( fir, fakeOverrideOwnerLookupTag, - forceTopLevelPrivate = forceTopLevelPrivate, forceExpect = fakeOverrideOwnerLookupTag?.toSymbol(session)?.isExpect == true ) } diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrPluginContext.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrPluginContext.kt index 9ebf358026c..0a703db2a15 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrPluginContext.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrPluginContext.kt @@ -6,7 +6,6 @@ package org.jetbrains.kotlin.fir.backend import org.jetbrains.kotlin.backend.common.extensions.FirIncompatiblePluginAPI -import org.jetbrains.kotlin.backend.common.extensions.IrAnnotationsFromPluginRegistrar import org.jetbrains.kotlin.backend.common.extensions.IrPluginContext import org.jetbrains.kotlin.backend.common.ir.BuiltinSymbolsBase import org.jetbrains.kotlin.config.LanguageVersionSettings @@ -19,6 +18,7 @@ import org.jetbrains.kotlin.fir.resolve.providers.symbolProvider import org.jetbrains.kotlin.fir.scopes.* import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol +import org.jetbrains.kotlin.fir.symbols.impl.FirClassLikeSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirClassSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirPropertySymbol import org.jetbrains.kotlin.ir.IrBuiltIns diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/FirIrProvider.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/FirIrProvider.kt index 76029190c84..4be19bb78d0 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/FirIrProvider.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/FirIrProvider.kt @@ -7,11 +7,9 @@ package org.jetbrains.kotlin.fir.backend import org.jetbrains.kotlin.backend.common.serialization.encodings.BinarySymbolData.SymbolKind import org.jetbrains.kotlin.backend.common.serialization.kind -import org.jetbrains.kotlin.descriptors.Visibilities import org.jetbrains.kotlin.fir.backend.generators.FakeOverrideGenerator import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.declarations.utils.classId -import org.jetbrains.kotlin.fir.declarations.utils.visibility import org.jetbrains.kotlin.fir.resolve.providers.symbolProvider import org.jetbrains.kotlin.fir.scopes.FirScope import org.jetbrains.kotlin.fir.scopes.unsubstitutedScope @@ -75,7 +73,6 @@ class FirIrProvider(val fir2IrComponents: Fir2IrComponents) : IrProvider { val firCandidates: List val parent: IrDeclarationParent - var isTopLevelPrivate = false if (nameSegments.size == 1 && kind != SymbolKind.CLASS_SYMBOL) { firCandidates = symbolProvider.getTopLevelCallableSymbols(packageFqName, topName).map { it.fir } parent = packageFragment // TODO: need to insert file facade class on JVM @@ -90,7 +87,6 @@ class FirIrProvider(val fir2IrComponents: Fir2IrComponents) : IrProvider { firClass = firClass.declarations.singleOrNull { (it as? FirRegularClass)?.name?.asString() == midName } as? FirRegularClass ?: return null } - isTopLevelPrivate = topLevelClass.visibility == Visibilities.Private val classId = firClass.classId val scope = firClass.unsubstitutedScope( fir2IrComponents.session, @@ -171,23 +167,22 @@ class FirIrProvider(val fir2IrComponents: Fir2IrComponents) : IrProvider { return when (kind) { SymbolKind.CLASS_SYMBOL -> classifierStorage.getIrClassSymbol( - (firDeclaration as FirRegularClass).symbol, - forceTopLevelPrivate = isTopLevelPrivate + (firDeclaration as FirRegularClass).symbol ).owner SymbolKind.ENUM_ENTRY_SYMBOL -> classifierStorage.getIrEnumEntry( - firDeclaration as FirEnumEntry, parent as IrClass, forceTopLevelPrivate = isTopLevelPrivate + firDeclaration as FirEnumEntry, parent as IrClass ) SymbolKind.CONSTRUCTOR_SYMBOL -> { val firConstructor = firDeclaration as FirConstructor - declarationStorage.getOrCreateIrConstructor(firConstructor, parent as IrClass, forceTopLevelPrivate = isTopLevelPrivate) + declarationStorage.getOrCreateIrConstructor(firConstructor, parent as IrClass) } SymbolKind.FUNCTION_SYMBOL -> { val firSimpleFunction = firDeclaration as FirSimpleFunction - declarationStorage.getOrCreateIrFunction(firSimpleFunction, parent, forceTopLevelPrivate = isTopLevelPrivate) + declarationStorage.getOrCreateIrFunction(firSimpleFunction, parent) } SymbolKind.PROPERTY_SYMBOL -> { val firProperty = firDeclaration as FirProperty - declarationStorage.getOrCreateIrProperty(firProperty, parent, forceTopLevelPrivate = isTopLevelPrivate) + declarationStorage.getOrCreateIrProperty(firProperty, parent) } SymbolKind.FIELD_SYMBOL -> { val firField = firDeclaration as FirField diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/ClassMemberGenerator.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/ClassMemberGenerator.kt index 6bd56d7468d..57e8d966c34 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/ClassMemberGenerator.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/ClassMemberGenerator.kt @@ -5,7 +5,6 @@ package org.jetbrains.kotlin.fir.backend.generators -import org.jetbrains.kotlin.KtFakeSourceElementKind import org.jetbrains.kotlin.descriptors.ClassKind import org.jetbrains.kotlin.descriptors.Visibilities import org.jetbrains.kotlin.fir.backend.* diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/FakeOverrideGenerator.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/FakeOverrideGenerator.kt index a13e74bbc19..6cfad1759e6 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/FakeOverrideGenerator.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/FakeOverrideGenerator.kt @@ -24,7 +24,6 @@ import org.jetbrains.kotlin.ir.symbols.IrSimpleFunctionSymbol import org.jetbrains.kotlin.ir.symbols.IrSymbol import org.jetbrains.kotlin.ir.types.* import org.jetbrains.kotlin.ir.util.IdSignature -import org.jetbrains.kotlin.ir.util.isComposite import org.jetbrains.kotlin.ir.util.parentAsClass import org.jetbrains.kotlin.name.Name @@ -283,8 +282,7 @@ class FakeOverrideGenerator( // have the same signature. // Now we avoid this problem by signature caching, // so both FIR overrides correspond to one IR fake override - val isTopLevelPrivate = irClass.symbol.signature.isComposite() - signatureComposer.composeSignature(fakeOverrideFirDeclaration, forceTopLevelPrivate = isTopLevelPrivate) + signatureComposer.composeSignature(fakeOverrideFirDeclaration) }?.takeIf { it.parent == irClass } ?: createIrDeclaration( fakeOverrideFirDeclaration, diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/lazy/Fir2IrLazyClass.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/lazy/Fir2IrLazyClass.kt index f8d2b3229ee..8de3e7ccdbd 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/lazy/Fir2IrLazyClass.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/lazy/Fir2IrLazyClass.kt @@ -27,7 +27,6 @@ import org.jetbrains.kotlin.ir.types.IrSimpleType import org.jetbrains.kotlin.ir.types.IrType import org.jetbrains.kotlin.ir.types.impl.IrSimpleTypeImpl import org.jetbrains.kotlin.ir.util.DeserializableClass -import org.jetbrains.kotlin.ir.util.isComposite import org.jetbrains.kotlin.ir.util.isEnumClass import org.jetbrains.kotlin.ir.util.isObject import org.jetbrains.kotlin.name.Name @@ -151,14 +150,13 @@ class Fir2IrLazyClass( } override val declarations: MutableList by lazyVar(lock) { - val isTopLevelPrivate = symbol.signature.isComposite() val result = mutableListOf() // NB: it's necessary to take all callables from scope, // e.g. to avoid accessing un-enhanced Java declarations with FirJavaTypeRef etc. inside val scope = fir.unsubstitutedScope(session, scopeSession, withForcedTypeCalculator = true, memberRequiredPhase = null) scope.processDeclaredConstructors { if (shouldBuildStub(it.fir)) { - result += declarationStorage.getIrConstructorSymbol(it, forceTopLevelPrivate = isTopLevelPrivate).owner + result += declarationStorage.getIrConstructorSymbol(it).owner } } @@ -166,7 +164,7 @@ class Fir2IrLazyClass( scope.processClassifiersByName(name) { val declaration = it.fir as? FirRegularClass ?: return@processClassifiersByName if (declaration.classId.outerClassId == fir.classId && shouldBuildStub(declaration)) { - val nestedSymbol = classifierStorage.getIrClassSymbol(declaration.symbol, forceTopLevelPrivate = isTopLevelPrivate) + val nestedSymbol = classifierStorage.getIrClassSymbol(declaration.symbol) result += nestedSymbol.owner } } @@ -192,7 +190,7 @@ class Fir2IrLazyClass( if (it.isAbstractMethodOfAny()) { return@processFunctionsByName } - result += declarationStorage.getIrFunctionSymbol(it, forceTopLevelPrivate = isTopLevelPrivate).owner + result += declarationStorage.getIrFunctionSymbol(it).owner } } scope.processPropertiesByName(name) { @@ -200,7 +198,7 @@ class Fir2IrLazyClass( if (!shouldBuildStub(it.fir)) return@processPropertiesByName if (it is FirPropertySymbol && (it.isStatic || it.dispatchReceiverClassLookupTagOrNull() == ownerLookupTag)) { result.addIfNotNull( - declarationStorage.getIrPropertySymbol(it, forceTopLevelPrivate = isTopLevelPrivate).owner as? IrDeclaration + declarationStorage.getIrPropertySymbol(it).owner as? IrDeclaration ) } } diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/lazy/Fir2IrLazyProperty.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/lazy/Fir2IrLazyProperty.kt index 52ba1fc6d9e..6c8ccbe94d2 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/lazy/Fir2IrLazyProperty.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/lazy/Fir2IrLazyProperty.kt @@ -25,10 +25,7 @@ import org.jetbrains.kotlin.ir.expressions.IrConstructorCall import org.jetbrains.kotlin.ir.expressions.IrExpression import org.jetbrains.kotlin.ir.expressions.IrExpressionBody import org.jetbrains.kotlin.ir.symbols.IrPropertySymbol -import org.jetbrains.kotlin.ir.types.IrErrorType import org.jetbrains.kotlin.ir.types.IrType -import org.jetbrains.kotlin.ir.util.isComposite -import org.jetbrains.kotlin.ir.util.isInterface import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.name.NameUtils import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedContainerSource @@ -170,8 +167,7 @@ class Fir2IrLazyProperty( val signature = signatureComposer.composeAccessorSignature( fir, isSetter = false, - containingClass?.symbol?.toLookupTag(), - forceTopLevelPrivate = symbol.signature.isComposite() + containingClass?.symbol?.toLookupTag() )!! symbolTable.declareSimpleFunction(signature, symbolFactory = { Fir2IrSimpleFunctionSymbol(signature) }) { symbol -> Fir2IrLazyPropertyAccessor( @@ -203,8 +199,7 @@ class Fir2IrLazyProperty( val signature = signatureComposer.composeAccessorSignature( fir, isSetter = true, - containingClass?.symbol?.toLookupTag(), - forceTopLevelPrivate = symbol.signature.isComposite() + containingClass?.symbol?.toLookupTag() )!! symbolTable.declareSimpleFunction(signature, symbolFactory = { Fir2IrSimpleFunctionSymbol(signature) }) { symbol -> Fir2IrLazyPropertyAccessor( diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/signaturer/FirBasedSignatureComposer.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/signaturer/FirBasedSignatureComposer.kt index 455b568f66d..65211656721 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/signaturer/FirBasedSignatureComposer.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/signaturer/FirBasedSignatureComposer.kt @@ -87,7 +87,6 @@ class FirBasedSignatureComposer(val mangler: FirMangler) { fun composeSignature( declaration: FirDeclaration, containingClass: ConeClassLikeLookupTag? = null, - forceTopLevelPrivate: Boolean = false, forceExpect: Boolean = false, ): IdSignature? { if (declaration is FirAnonymousObject || declaration is FirAnonymousFunction) return null @@ -102,7 +101,7 @@ class FirBasedSignatureComposer(val mangler: FirMangler) { calculatePublicSignature(declarationWithParentId) } - val resultSignature: IdSignature = if (isTopLevelPrivate(declaration) || forceTopLevelPrivate) { + val resultSignature: IdSignature = if (isTopLevelPrivate(declaration)) { val fileSig = fileSignature ?: declaration.fakeFileSignature(publicSignature) IdSignature.CompositeSignature(fileSig, publicSignature) } else @@ -181,12 +180,11 @@ class FirBasedSignatureComposer(val mangler: FirMangler) { fun composeAccessorSignature( property: FirProperty, isSetter: Boolean, - containingClass: ConeClassLikeLookupTag? = null, - forceTopLevelPrivate: Boolean = false + containingClass: ConeClassLikeLookupTag? = null ): IdSignature? { val propSig: IdSignature.CommonSignature val fileSig: IdSignature.FileSignature? - when (val propertySignature = composeSignature(property, containingClass, forceTopLevelPrivate)) { + when (val propertySignature = composeSignature(property, containingClass)) { is IdSignature.CompositeSignature -> { propSig = propertySignature.inner as? IdSignature.CommonSignature ?: return null fileSig = propertySignature.container as? IdSignature.FileSignature ?: return null