diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirSymbol.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirSymbol.kt index 1c658d13e22..f5e53f3c23b 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirSymbol.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirSymbol.kt @@ -18,7 +18,7 @@ import org.jetbrains.kotlin.analysis.low.level.api.fir.util.errorWithFirSpecific import org.jetbrains.kotlin.analysis.low.level.api.fir.util.withFirEntry import org.jetbrains.kotlin.fir.declarations.synthetic.FirSyntheticProperty import org.jetbrains.kotlin.fir.declarations.synthetic.FirSyntheticPropertyAccessor -import org.jetbrains.kotlin.fir.scopes.impl.importedFromObjectData +import org.jetbrains.kotlin.fir.scopes.impl.importedFromObjectOrStaticData import org.jetbrains.kotlin.fir.scopes.impl.originalForWrappedIntegerOperator import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol import org.jetbrains.kotlin.analysis.utils.errors.buildErrorWithAttachment @@ -26,7 +26,6 @@ import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.declarations.utils.isLocal import org.jetbrains.kotlin.fir.resolve.getContainingDeclaration import org.jetbrains.kotlin.fir.symbols.impl.FirClassLikeSymbol -import org.jetbrains.kotlin.fir.symbols.impl.FirClassifierSymbol internal interface KtFirSymbol> : KtSymbol, KtLifetimeOwner { val firSymbol: S @@ -73,8 +72,8 @@ internal tailrec fun FirDeclaration.ktSymbolOrigin(): KtSymbolOrigin = when (ori } } - FirDeclarationOrigin.ImportedFromObject -> { - val importedFromObjectData = (this as FirCallableDeclaration).importedFromObjectData + FirDeclarationOrigin.ImportedFromObjectOrStatic -> { + val importedFromObjectData = (this as FirCallableDeclaration).importedFromObjectOrStaticData ?: buildErrorWithAttachment("Declaration has ImportedFromObject origin, but no importedFromObjectData present") { withFirEntry("firToGetOrigin", this@ktSymbolOrigin) } diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/lazy/resolve/LLFirModuleLazyDeclarationResolver.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/lazy/resolve/LLFirModuleLazyDeclarationResolver.kt index 98bdb46b2bd..1b93a9ded00 100644 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/lazy/resolve/LLFirModuleLazyDeclarationResolver.kt +++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/lazy/resolve/LLFirModuleLazyDeclarationResolver.kt @@ -89,7 +89,7 @@ internal class LLFirModuleLazyDeclarationResolver(val moduleComponents: LLFirMod private fun FirDeclaration.isValidForResolve(): Boolean = when (origin) { is FirDeclarationOrigin.Source, - is FirDeclarationOrigin.ImportedFromObject, + is FirDeclarationOrigin.ImportedFromObjectOrStatic, is FirDeclarationOrigin.Delegated, is FirDeclarationOrigin.Synthetic, is FirDeclarationOrigin.SubstitutionOverride, diff --git a/compiler/fir/providers/src/org/jetbrains/kotlin/fir/scopes/impl/FirObjectImportedCallableScope.kt b/compiler/fir/providers/src/org/jetbrains/kotlin/fir/scopes/impl/FirObjectImportedCallableScope.kt index a273a6a9541..c23a12eb2bb 100644 --- a/compiler/fir/providers/src/org/jetbrains/kotlin/fir/scopes/impl/FirObjectImportedCallableScope.kt +++ b/compiler/fir/providers/src/org/jetbrains/kotlin/fir/scopes/impl/FirObjectImportedCallableScope.kt @@ -28,10 +28,10 @@ class FirObjectImportedCallableScope( objectUseSiteScope.processFunctionsByName(name) wrapper@{ symbol -> val function = symbol.fir val syntheticFunction = buildSimpleFunctionCopy(function) { - origin = FirDeclarationOrigin.ImportedFromObject + origin = FirDeclarationOrigin.ImportedFromObjectOrStatic this.symbol = FirNamedFunctionSymbol(CallableId(importedClassId, name)) }.apply { - importedFromObjectData = ImportedFromObjectData(importedClassId, function) + importedFromObjectOrStaticData = ImportedFromObjectOrStaticData(importedClassId, function) } processor(syntheticFunction.symbol) } @@ -45,11 +45,11 @@ class FirObjectImportedCallableScope( } val property = symbol.fir val syntheticProperty = buildPropertyCopy(property) { - origin = FirDeclarationOrigin.ImportedFromObject + origin = FirDeclarationOrigin.ImportedFromObjectOrStatic this.symbol = FirPropertySymbol(CallableId(importedClassId, name)) this.delegateFieldSymbol = null }.apply { - importedFromObjectData = ImportedFromObjectData(importedClassId, property) + importedFromObjectOrStaticData = ImportedFromObjectOrStaticData(importedClassId, property) } processor(syntheticProperty.symbol) } @@ -60,12 +60,12 @@ class FirObjectImportedCallableScope( override fun getClassifierNames(): Set = emptySet() } -private object ImportedFromObjectClassIdKey : FirDeclarationDataKey() +private object ImportedFromObjectOrStaticClassIdKey : FirDeclarationDataKey() -class ImportedFromObjectData( +class ImportedFromObjectOrStaticData( val objectClassId: ClassId, val original: D, ) -var - D.importedFromObjectData: ImportedFromObjectData? by FirDeclarationDataRegistry.data(ImportedFromObjectClassIdKey) +var D.importedFromObjectOrStaticData: ImportedFromObjectOrStaticData? +by FirDeclarationDataRegistry.data(ImportedFromObjectOrStaticClassIdKey) diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/ResolveUtils.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/ResolveUtils.kt index e6ffc9d25f2..357bb958b62 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/ResolveUtils.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/ResolveUtils.kt @@ -37,7 +37,7 @@ import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.resultType import org.jetbrains.kotlin.fir.scopes.FirTypeScope import org.jetbrains.kotlin.fir.scopes.ProcessorAction import org.jetbrains.kotlin.fir.scopes.impl.delegatedWrapperData -import org.jetbrains.kotlin.fir.scopes.impl.importedFromObjectData +import org.jetbrains.kotlin.fir.scopes.impl.importedFromObjectOrStaticData import org.jetbrains.kotlin.fir.scopes.processOverriddenFunctions import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol import org.jetbrains.kotlin.fir.symbols.impl.* @@ -523,7 +523,7 @@ fun FirFunction.getAsForbiddenNamedArgumentsTarget( return when (origin) { FirDeclarationOrigin.Source, FirDeclarationOrigin.Precompiled, FirDeclarationOrigin.Library -> null FirDeclarationOrigin.Delegated -> delegatedWrapperData?.wrapped?.getAsForbiddenNamedArgumentsTarget(session) - FirDeclarationOrigin.ImportedFromObject -> importedFromObjectData?.original?.getAsForbiddenNamedArgumentsTarget(session) + FirDeclarationOrigin.ImportedFromObjectOrStatic -> importedFromObjectOrStaticData?.original?.getAsForbiddenNamedArgumentsTarget(session) is FirDeclarationOrigin.Java, FirDeclarationOrigin.Enhancement -> ForbiddenNamedArgumentsTarget.NON_KOTLIN_FUNCTION FirDeclarationOrigin.SamConstructor -> null FirDeclarationOrigin.IntersectionOverride, FirDeclarationOrigin.SubstitutionOverride -> { diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/tower/TowerLevels.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/tower/TowerLevels.kt index a5077eab589..7a86faaaa4e 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/tower/TowerLevels.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/tower/TowerLevels.kt @@ -18,7 +18,7 @@ import org.jetbrains.kotlin.fir.resolve.providers.symbolProvider import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.resultType import org.jetbrains.kotlin.fir.scopes.* import org.jetbrains.kotlin.fir.scopes.impl.FirDefaultStarImportingScope -import org.jetbrains.kotlin.fir.scopes.impl.importedFromObjectData +import org.jetbrains.kotlin.fir.scopes.impl.importedFromObjectOrStaticData import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol import org.jetbrains.kotlin.fir.symbols.impl.* import org.jetbrains.kotlin.fir.types.* @@ -314,7 +314,7 @@ class ScopeTowerLevel( fun areThereExtensionReceiverOptions(): Boolean = givenExtensionReceiverOptions.isNotEmpty() private fun dispatchReceiverValue(candidate: FirCallableSymbol<*>): ReceiverValue? { - candidate.fir.importedFromObjectData?.let { data -> + candidate.fir.importedFromObjectOrStaticData?.let { data -> val objectClassId = data.objectClassId val symbol = session.symbolProvider.getClassLikeSymbolByClassId(objectClassId) if (symbol is FirRegularClassSymbol) { @@ -384,7 +384,7 @@ class ScopeTowerLevel( if (dispatchReceiverValue == null && shouldSkipCandidateWithInconsistentExtensionReceiver(candidate)) { return } - val unwrappedCandidate = candidate.fir.importedFromObjectData?.original?.symbol ?: candidate + val unwrappedCandidate = candidate.fir.importedFromObjectOrStaticData?.original?.symbol ?: candidate @Suppress("UNCHECKED_CAST") processor.consumeCandidate( unwrappedCandidate as T, dispatchReceiverValue, diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/FirDeclarationOrigin.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/FirDeclarationOrigin.kt index ad85db4c3b2..d3261e8816b 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/FirDeclarationOrigin.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/FirDeclarationOrigin.kt @@ -26,7 +26,7 @@ sealed class FirDeclarationOrigin( object DynamicScope : FirDeclarationOrigin() object SamConstructor : FirDeclarationOrigin() object Enhancement : FirDeclarationOrigin() - object ImportedFromObject : FirDeclarationOrigin() + object ImportedFromObjectOrStatic : FirDeclarationOrigin() object SubstitutionOverride : FirDeclarationOrigin(fromSupertypes = true) object IntersectionOverride : FirDeclarationOrigin(fromSupertypes = true) object Delegated : FirDeclarationOrigin()