K2: rename importedFromObject -> importedFromObjectOrStatic

This commit is contained in:
Mikhail Glukhikh
2022-10-27 13:58:57 +02:00
committed by Space Team
parent 2b2cc07c89
commit cc1a094b6c
6 changed files with 18 additions and 19 deletions
@@ -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.analysis.low.level.api.fir.util.withFirEntry
import org.jetbrains.kotlin.fir.declarations.synthetic.FirSyntheticProperty import org.jetbrains.kotlin.fir.declarations.synthetic.FirSyntheticProperty
import org.jetbrains.kotlin.fir.declarations.synthetic.FirSyntheticPropertyAccessor 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.scopes.impl.originalForWrappedIntegerOperator
import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol
import org.jetbrains.kotlin.analysis.utils.errors.buildErrorWithAttachment 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.declarations.utils.isLocal
import org.jetbrains.kotlin.fir.resolve.getContainingDeclaration import org.jetbrains.kotlin.fir.resolve.getContainingDeclaration
import org.jetbrains.kotlin.fir.symbols.impl.FirClassLikeSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirClassLikeSymbol
import org.jetbrains.kotlin.fir.symbols.impl.FirClassifierSymbol
internal interface KtFirSymbol<out S : FirBasedSymbol<*>> : KtSymbol, KtLifetimeOwner { internal interface KtFirSymbol<out S : FirBasedSymbol<*>> : KtSymbol, KtLifetimeOwner {
val firSymbol: S val firSymbol: S
@@ -73,8 +72,8 @@ internal tailrec fun FirDeclaration.ktSymbolOrigin(): KtSymbolOrigin = when (ori
} }
} }
FirDeclarationOrigin.ImportedFromObject -> { FirDeclarationOrigin.ImportedFromObjectOrStatic -> {
val importedFromObjectData = (this as FirCallableDeclaration).importedFromObjectData val importedFromObjectData = (this as FirCallableDeclaration).importedFromObjectOrStaticData
?: buildErrorWithAttachment("Declaration has ImportedFromObject origin, but no importedFromObjectData present") { ?: buildErrorWithAttachment("Declaration has ImportedFromObject origin, but no importedFromObjectData present") {
withFirEntry("firToGetOrigin", this@ktSymbolOrigin) withFirEntry("firToGetOrigin", this@ktSymbolOrigin)
} }
@@ -89,7 +89,7 @@ internal class LLFirModuleLazyDeclarationResolver(val moduleComponents: LLFirMod
private fun FirDeclaration.isValidForResolve(): Boolean = when (origin) { private fun FirDeclaration.isValidForResolve(): Boolean = when (origin) {
is FirDeclarationOrigin.Source, is FirDeclarationOrigin.Source,
is FirDeclarationOrigin.ImportedFromObject, is FirDeclarationOrigin.ImportedFromObjectOrStatic,
is FirDeclarationOrigin.Delegated, is FirDeclarationOrigin.Delegated,
is FirDeclarationOrigin.Synthetic, is FirDeclarationOrigin.Synthetic,
is FirDeclarationOrigin.SubstitutionOverride, is FirDeclarationOrigin.SubstitutionOverride,
@@ -28,10 +28,10 @@ class FirObjectImportedCallableScope(
objectUseSiteScope.processFunctionsByName(name) wrapper@{ symbol -> objectUseSiteScope.processFunctionsByName(name) wrapper@{ symbol ->
val function = symbol.fir val function = symbol.fir
val syntheticFunction = buildSimpleFunctionCopy(function) { val syntheticFunction = buildSimpleFunctionCopy(function) {
origin = FirDeclarationOrigin.ImportedFromObject origin = FirDeclarationOrigin.ImportedFromObjectOrStatic
this.symbol = FirNamedFunctionSymbol(CallableId(importedClassId, name)) this.symbol = FirNamedFunctionSymbol(CallableId(importedClassId, name))
}.apply { }.apply {
importedFromObjectData = ImportedFromObjectData(importedClassId, function) importedFromObjectOrStaticData = ImportedFromObjectOrStaticData(importedClassId, function)
} }
processor(syntheticFunction.symbol) processor(syntheticFunction.symbol)
} }
@@ -45,11 +45,11 @@ class FirObjectImportedCallableScope(
} }
val property = symbol.fir val property = symbol.fir
val syntheticProperty = buildPropertyCopy(property) { val syntheticProperty = buildPropertyCopy(property) {
origin = FirDeclarationOrigin.ImportedFromObject origin = FirDeclarationOrigin.ImportedFromObjectOrStatic
this.symbol = FirPropertySymbol(CallableId(importedClassId, name)) this.symbol = FirPropertySymbol(CallableId(importedClassId, name))
this.delegateFieldSymbol = null this.delegateFieldSymbol = null
}.apply { }.apply {
importedFromObjectData = ImportedFromObjectData(importedClassId, property) importedFromObjectOrStaticData = ImportedFromObjectOrStaticData(importedClassId, property)
} }
processor(syntheticProperty.symbol) processor(syntheticProperty.symbol)
} }
@@ -60,12 +60,12 @@ class FirObjectImportedCallableScope(
override fun getClassifierNames(): Set<Name> = emptySet() override fun getClassifierNames(): Set<Name> = emptySet()
} }
private object ImportedFromObjectClassIdKey : FirDeclarationDataKey() private object ImportedFromObjectOrStaticClassIdKey : FirDeclarationDataKey()
class ImportedFromObjectData<D : FirCallableDeclaration>( class ImportedFromObjectOrStaticData<D : FirCallableDeclaration>(
val objectClassId: ClassId, val objectClassId: ClassId,
val original: D, val original: D,
) )
var <D : FirCallableDeclaration> var <D : FirCallableDeclaration> D.importedFromObjectOrStaticData: ImportedFromObjectOrStaticData<D>?
D.importedFromObjectData: ImportedFromObjectData<D>? by FirDeclarationDataRegistry.data(ImportedFromObjectClassIdKey) by FirDeclarationDataRegistry.data(ImportedFromObjectOrStaticClassIdKey)
@@ -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.FirTypeScope
import org.jetbrains.kotlin.fir.scopes.ProcessorAction import org.jetbrains.kotlin.fir.scopes.ProcessorAction
import org.jetbrains.kotlin.fir.scopes.impl.delegatedWrapperData 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.scopes.processOverriddenFunctions
import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol
import org.jetbrains.kotlin.fir.symbols.impl.* import org.jetbrains.kotlin.fir.symbols.impl.*
@@ -523,7 +523,7 @@ fun FirFunction.getAsForbiddenNamedArgumentsTarget(
return when (origin) { return when (origin) {
FirDeclarationOrigin.Source, FirDeclarationOrigin.Precompiled, FirDeclarationOrigin.Library -> null FirDeclarationOrigin.Source, FirDeclarationOrigin.Precompiled, FirDeclarationOrigin.Library -> null
FirDeclarationOrigin.Delegated -> delegatedWrapperData?.wrapped?.getAsForbiddenNamedArgumentsTarget(session) 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 is FirDeclarationOrigin.Java, FirDeclarationOrigin.Enhancement -> ForbiddenNamedArgumentsTarget.NON_KOTLIN_FUNCTION
FirDeclarationOrigin.SamConstructor -> null FirDeclarationOrigin.SamConstructor -> null
FirDeclarationOrigin.IntersectionOverride, FirDeclarationOrigin.SubstitutionOverride -> { FirDeclarationOrigin.IntersectionOverride, FirDeclarationOrigin.SubstitutionOverride -> {
@@ -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.resolve.transformers.body.resolve.resultType
import org.jetbrains.kotlin.fir.scopes.* import org.jetbrains.kotlin.fir.scopes.*
import org.jetbrains.kotlin.fir.scopes.impl.FirDefaultStarImportingScope 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.FirBasedSymbol
import org.jetbrains.kotlin.fir.symbols.impl.* import org.jetbrains.kotlin.fir.symbols.impl.*
import org.jetbrains.kotlin.fir.types.* import org.jetbrains.kotlin.fir.types.*
@@ -314,7 +314,7 @@ class ScopeTowerLevel(
fun areThereExtensionReceiverOptions(): Boolean = givenExtensionReceiverOptions.isNotEmpty() fun areThereExtensionReceiverOptions(): Boolean = givenExtensionReceiverOptions.isNotEmpty()
private fun dispatchReceiverValue(candidate: FirCallableSymbol<*>): ReceiverValue? { private fun dispatchReceiverValue(candidate: FirCallableSymbol<*>): ReceiverValue? {
candidate.fir.importedFromObjectData?.let { data -> candidate.fir.importedFromObjectOrStaticData?.let { data ->
val objectClassId = data.objectClassId val objectClassId = data.objectClassId
val symbol = session.symbolProvider.getClassLikeSymbolByClassId(objectClassId) val symbol = session.symbolProvider.getClassLikeSymbolByClassId(objectClassId)
if (symbol is FirRegularClassSymbol) { if (symbol is FirRegularClassSymbol) {
@@ -384,7 +384,7 @@ class ScopeTowerLevel(
if (dispatchReceiverValue == null && shouldSkipCandidateWithInconsistentExtensionReceiver(candidate)) { if (dispatchReceiverValue == null && shouldSkipCandidateWithInconsistentExtensionReceiver(candidate)) {
return return
} }
val unwrappedCandidate = candidate.fir.importedFromObjectData?.original?.symbol ?: candidate val unwrappedCandidate = candidate.fir.importedFromObjectOrStaticData?.original?.symbol ?: candidate
@Suppress("UNCHECKED_CAST") @Suppress("UNCHECKED_CAST")
processor.consumeCandidate( processor.consumeCandidate(
unwrappedCandidate as T, dispatchReceiverValue, unwrappedCandidate as T, dispatchReceiverValue,
@@ -26,7 +26,7 @@ sealed class FirDeclarationOrigin(
object DynamicScope : FirDeclarationOrigin() object DynamicScope : FirDeclarationOrigin()
object SamConstructor : FirDeclarationOrigin() object SamConstructor : FirDeclarationOrigin()
object Enhancement : FirDeclarationOrigin() object Enhancement : FirDeclarationOrigin()
object ImportedFromObject : FirDeclarationOrigin() object ImportedFromObjectOrStatic : FirDeclarationOrigin()
object SubstitutionOverride : FirDeclarationOrigin(fromSupertypes = true) object SubstitutionOverride : FirDeclarationOrigin(fromSupertypes = true)
object IntersectionOverride : FirDeclarationOrigin(fromSupertypes = true) object IntersectionOverride : FirDeclarationOrigin(fromSupertypes = true)
object Delegated : FirDeclarationOrigin() object Delegated : FirDeclarationOrigin()