From 7e075ec64a5b2179fa92ce12411b0c486575bace Mon Sep 17 00:00:00 2001 From: Yan Zhulanow Date: Wed, 21 Jun 2023 20:04:20 +0900 Subject: [PATCH] [FIR] Pass the whole body context to the resolve context collector Collector for the 'FirCodeFragment' analysis needs to capture also data-flow information. --- .../api/LowLevelFirApiFacadeForResolveOnAir.kt | 10 +++------- .../builder/FirTowerDataContextCollector.kt | 13 +++++++------ .../LLFirModuleLazyDeclarationResolver.kt | 8 ++++---- .../LLFirAbstractBodyTargetResolver.kt | 4 ++-- ...FirAnnotationArgumentMappingLazyResolver.kt | 4 ++-- .../LLFirAnnotationArgumentsLazyResolver.kt | 4 ++-- .../fir/transformers/LLFirBodyLazyResolver.kt | 18 +++++++++--------- .../LLFirCompilerAnnotationsLazyResolver.kt | 4 ++-- .../transformers/LLFirContractsLazyResolver.kt | 4 ++-- .../LLFirExpectActualMatcherLazyResolver.kt | 4 ++-- ...LFirGeneratedCompanionObjectLazyResolver.kt | 4 ++-- .../LLFirImplicitTypesLazyResolver.kt | 8 ++++---- .../api/fir/transformers/LLFirLazyResolver.kt | 4 ++-- .../transformers/LLFirLazyResolverRunner.kt | 4 ++-- .../LLFirReturnTypeCalculatorWithJump.kt | 5 ++--- .../LLFirSealedClassInheritorsLazyResolver.kt | 4 ++-- .../transformers/LLFirStatusLazyResolver.kt | 5 ++--- .../transformers/LLFirSupertypeLazyResolver.kt | 4 ++-- .../fir/transformers/LLFirTypeLazyResolver.kt | 4 ++-- ...AbstractBodyResolveTransformerDispatcher.kt | 4 ++-- .../body/resolve/FirBodyResolveTransformer.kt | 4 ++-- .../FirDeclarationsResolveTransformer.kt | 10 +++++----- .../FirExpressionsResolveTransformer.kt | 2 +- .../body/resolve/FirImplicitBodyResolve.kt | 9 ++++----- ...lector.kt => FirResolveContextCollector.kt} | 6 +++--- .../body/resolve/LocalClassesResolution.kt | 4 ++-- ...FirAnnotationArgumentsMappingTransformer.kt | 3 +-- 27 files changed, 75 insertions(+), 82 deletions(-) rename compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/{FirTowerDataContextCollector.kt => FirResolveContextCollector.kt} (92%) diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/api/LowLevelFirApiFacadeForResolveOnAir.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/api/LowLevelFirApiFacadeForResolveOnAir.kt index c24cf46404d..ace2f383ec6 100644 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/api/LowLevelFirApiFacadeForResolveOnAir.kt +++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/api/LowLevelFirApiFacadeForResolveOnAir.kt @@ -19,7 +19,6 @@ import org.jetbrains.kotlin.analysis.low.level.api.fir.file.structure.KtToFirMap import org.jetbrains.kotlin.analysis.low.level.api.fir.lazy.resolve.RawFirNonLocalDeclarationBuilder import org.jetbrains.kotlin.analysis.low.level.api.fir.lazy.resolve.RawFirReplacement import org.jetbrains.kotlin.analysis.low.level.api.fir.lazy.resolve.buildFileFirAnnotation -import org.jetbrains.kotlin.analysis.low.level.api.fir.lazy.resolve.buildFirUserTypeRef import org.jetbrains.kotlin.analysis.low.level.api.fir.sessions.LLFirResolvableModuleSession import org.jetbrains.kotlin.analysis.low.level.api.fir.sessions.llFirResolvableSession import org.jetbrains.kotlin.analysis.low.level.api.fir.sessions.llFirSession @@ -37,12 +36,9 @@ import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.expressions.FirAnnotation import org.jetbrains.kotlin.fir.realPsi import org.jetbrains.kotlin.fir.resolve.ScopeSession -import org.jetbrains.kotlin.fir.resolve.transformers.FirTypeResolveTransformer -import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirTowerDataContextCollector +import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirResolveContextCollector import org.jetbrains.kotlin.fir.scopes.createImportingScopes import org.jetbrains.kotlin.fir.scopes.kotlinScopeProvider -import org.jetbrains.kotlin.fir.symbols.lazyResolveToPhase -import org.jetbrains.kotlin.fir.types.FirResolvedTypeRef import org.jetbrains.kotlin.fir.visitors.FirVisitorVoid import org.jetbrains.kotlin.psi.* import org.jetbrains.kotlin.psi.psiUtil.isAncestor @@ -211,7 +207,7 @@ object LowLevelFirApiFacadeForResolveOnAir { annotationEntry: KtAnnotationEntry, replacement: RawFirReplacement, firFile: FirFile, - collector: FirTowerDataContextCollector? = null, + collector: FirResolveContextCollector? = null, firResolveSession: LLFirResolvableResolveSession, ): FirAnnotation { val annotationCall = buildFileFirAnnotation( @@ -249,7 +245,7 @@ object LowLevelFirApiFacadeForResolveOnAir { firResolveSession: LLFirResolvableResolveSession, replacement: RawFirReplacement, onAirCreatedDeclaration: Boolean, - collector: FirTowerDataContextCollector? = null, + collector: FirResolveContextCollector? = null, ): FirElement { val nonLocalDeclaration = replacement.from.onAirGetNonLocalContainingOrThisDeclarationFor() val originalFirFile = firResolveSession.getOrBuildFirFile(replacement.from.containingKtFile) diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/element/builder/FirTowerDataContextCollector.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/element/builder/FirTowerDataContextCollector.kt index 8cdf5dbe8bf..133789380e3 100644 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/element/builder/FirTowerDataContextCollector.kt +++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/element/builder/FirTowerDataContextCollector.kt @@ -13,7 +13,8 @@ import org.jetbrains.kotlin.fir.declarations.FirRegularClass import org.jetbrains.kotlin.fir.declarations.FirTowerDataContext import org.jetbrains.kotlin.fir.expressions.FirStatement import org.jetbrains.kotlin.fir.psi -import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirTowerDataContextCollector +import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.BodyResolveContext +import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirResolveContextCollector import org.jetbrains.kotlin.psi.* import org.jetbrains.kotlin.psi.psiUtil.parentsWithSelf import org.jetbrains.kotlin.utils.addIfNotNull @@ -30,7 +31,7 @@ internal class FileTowerProvider( if (file == ktElement.containingKtFile) context else null } -internal class FirTowerDataContextAllElementsCollector : FirTowerDataContextCollector, FirTowerContextProvider { +internal class FirTowerDataContextAllElementsCollector : FirResolveContextCollector, FirTowerContextProvider { private val elementsToContext: MutableMap = hashMapOf() /** @@ -46,13 +47,13 @@ internal class FirTowerDataContextAllElementsCollector : FirTowerDataContextColl elementsToContext[ktFile] = context } - override fun addStatementContext(statement: FirStatement, context: FirTowerDataContext) { + override fun addStatementContext(statement: FirStatement, context: BodyResolveContext) { val closestStatementInBlock = statement.psi?.closestBlockLevelOrInitializerExpression() ?: return // FIR body transform may alter the context if there are implicit receivers with smartcast - elementsToContext[closestStatementInBlock] = context.createSnapshot() + elementsToContext[closestStatementInBlock] = context.towerDataContext.createSnapshot() } - override fun addDeclarationContext(declaration: FirDeclaration, context: FirTowerDataContext) { + override fun addDeclarationContext(declaration: FirDeclaration, context: BodyResolveContext) { val psi = declaration.psi as? KtElement ?: return // FIR creates a fake field declaration for the delegated super calls, @@ -60,7 +61,7 @@ internal class FirTowerDataContextAllElementsCollector : FirTowerDataContextColl // we do not collect contexts for such declarations if (psi is KtDelegatedSuperTypeEntry) return - elementsToContext[psi] = context + elementsToContext[psi] = context.towerDataContext } override fun addClassHeaderContext(declaration: FirRegularClass, context: FirTowerDataContext) { 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 eda36338b43..6050c9073e0 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 @@ -25,7 +25,7 @@ import org.jetbrains.kotlin.fir.FirElementWithResolveState import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.resolve.ScopeSession import org.jetbrains.kotlin.fir.resolve.transformers.FirImportResolveTransformer -import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirTowerDataContextCollector +import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirResolveContextCollector import org.jetbrains.kotlin.fir.visitors.transformSingle internal class LLFirModuleLazyDeclarationResolver(val moduleComponents: LLFirModuleResolveComponents) { @@ -103,7 +103,7 @@ internal class LLFirModuleLazyDeclarationResolver(val moduleComponents: LLFirMod fun lazyResolveTarget( target: LLFirResolveTarget, toPhase: FirResolvePhase, - towerDataContextCollector: FirTowerDataContextCollector?, + towerDataContextCollector: FirResolveContextCollector?, ) { try { lazyResolveTargets( @@ -120,7 +120,7 @@ internal class LLFirModuleLazyDeclarationResolver(val moduleComponents: LLFirMod fun runLazyDesignatedOnAirResolveToBodyWithoutLock( designation: FirDesignationWithFile, onAirCreatedDeclaration: Boolean, - towerDataContextCollector: FirTowerDataContextCollector?, + towerDataContextCollector: FirResolveContextCollector?, ) { resolveFileToImportsWithLock(designation.firFile) @@ -161,7 +161,7 @@ internal class LLFirModuleLazyDeclarationResolver(val moduleComponents: LLFirMod targets: List, scopeSession: ScopeSession, toPhase: FirResolvePhase, - towerDataContextCollector: FirTowerDataContextCollector?, + towerDataContextCollector: FirResolveContextCollector?, ) { if (targets.isEmpty()) return var currentPhase = getMinResolvePhase(targets).coerceAtLeast(FirResolvePhase.IMPORTS) diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirAbstractBodyTargetResolver.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirAbstractBodyTargetResolver.kt index 149dec77ee1..c60248ee3ec 100644 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirAbstractBodyTargetResolver.kt +++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirAbstractBodyTargetResolver.kt @@ -16,7 +16,7 @@ import org.jetbrains.kotlin.fir.resolve.ResolutionMode import org.jetbrains.kotlin.fir.resolve.ScopeSession import org.jetbrains.kotlin.fir.resolve.transformers.ReturnTypeCalculator import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirAbstractBodyResolveTransformerDispatcher -import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirTowerDataContextCollector +import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirResolveContextCollector import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.ImplicitBodyResolveComputationSession import org.jetbrains.kotlin.fir.visitors.transformSingle @@ -29,7 +29,7 @@ internal abstract class LLFirAbstractBodyTargetResolver( isJumpingPhase: Boolean = false ) : LLFirTargetResolver(resolveTarget, lockProvider, resolvePhase, isJumpingPhase) { protected fun createReturnTypeCalculator( - towerDataContextCollector: FirTowerDataContextCollector?, + towerDataContextCollector: FirResolveContextCollector?, ): ReturnTypeCalculator = LLFirReturnTypeCalculatorWithJump( scopeSession, implicitBodyResolveComputationSession, diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirAnnotationArgumentMappingLazyResolver.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirAnnotationArgumentMappingLazyResolver.kt index 414640932b6..bf25ab8a105 100644 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirAnnotationArgumentMappingLazyResolver.kt +++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirAnnotationArgumentMappingLazyResolver.kt @@ -19,7 +19,7 @@ import org.jetbrains.kotlin.fir.expressions.builder.buildArgumentList import org.jetbrains.kotlin.fir.expressions.impl.FirResolvedArgumentList import org.jetbrains.kotlin.fir.references.isError import org.jetbrains.kotlin.fir.resolve.ScopeSession -import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirTowerDataContextCollector +import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirResolveContextCollector import org.jetbrains.kotlin.fir.resolve.transformers.plugin.FirAnnotationArgumentsMappingTransformer import org.jetbrains.kotlin.fir.types.FirTypeProjection import org.jetbrains.kotlin.fir.visitors.FirVisitorVoid @@ -30,7 +30,7 @@ internal object LLFirAnnotationArgumentMappingLazyResolver : LLFirLazyResolver(F lockProvider: LLFirLockProvider, session: FirSession, scopeSession: ScopeSession, - towerDataContextCollector: FirTowerDataContextCollector?, + towerDataContextCollector: FirResolveContextCollector?, ) { val resolver = LLFirAnnotationArgumentsMappingTargetResolver(target, lockProvider, session, scopeSession) resolver.resolveDesignation() diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirAnnotationArgumentsLazyResolver.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirAnnotationArgumentsLazyResolver.kt index 985d9c45c0f..6eecd874a99 100644 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirAnnotationArgumentsLazyResolver.kt +++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirAnnotationArgumentsLazyResolver.kt @@ -20,7 +20,7 @@ import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.resolve.ResolutionMode import org.jetbrains.kotlin.fir.resolve.ScopeSession -import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirTowerDataContextCollector +import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirResolveContextCollector import org.jetbrains.kotlin.fir.resolve.transformers.plugin.FirAnnotationArgumentsResolveTransformer import org.jetbrains.kotlin.fir.types.FirResolvedTypeRef import org.jetbrains.kotlin.fir.visitors.transformSingle @@ -31,7 +31,7 @@ internal object LLFirAnnotationArgumentsLazyResolver : LLFirLazyResolver(FirReso lockProvider: LLFirLockProvider, session: FirSession, scopeSession: ScopeSession, - towerDataContextCollector: FirTowerDataContextCollector?, + towerDataContextCollector: FirResolveContextCollector?, ) { val resolver = LLFirAnnotationArgumentsTargetResolver(target, lockProvider, session, scopeSession) resolver.resolveDesignation() diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirBodyLazyResolver.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirBodyLazyResolver.kt index 8ee274ef03c..cd3ded53c4a 100644 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirBodyLazyResolver.kt +++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirBodyLazyResolver.kt @@ -32,7 +32,7 @@ import org.jetbrains.kotlin.fir.references.builder.buildExplicitThisReference import org.jetbrains.kotlin.fir.resolve.ScopeSession import org.jetbrains.kotlin.fir.resolve.dfa.FirControlFlowGraphReferenceImpl import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolveTransformer -import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirTowerDataContextCollector +import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirResolveContextCollector import org.jetbrains.kotlin.fir.resolve.transformers.contracts.FirContractsDslNames import org.jetbrains.kotlin.fir.symbols.lazyResolveToPhase import org.jetbrains.kotlin.fir.types.FirResolvedTypeRef @@ -44,7 +44,7 @@ internal object LLFirBodyLazyResolver : LLFirLazyResolver(FirResolvePhase.BODY_R lockProvider: LLFirLockProvider, session: FirSession, scopeSession: ScopeSession, - towerDataContextCollector: FirTowerDataContextCollector?, + towerDataContextCollector: FirResolveContextCollector?, ) { val resolver = LLFirBodyTargetResolver(target, lockProvider, session, scopeSession, towerDataContextCollector) resolver.resolveDesignation() @@ -75,7 +75,7 @@ private class LLFirBodyTargetResolver( lockProvider: LLFirLockProvider, session: FirSession, scopeSession: ScopeSession, - towerDataContextCollector: FirTowerDataContextCollector?, + towerDataContextCollector: FirResolveContextCollector?, ) : LLFirAbstractBodyTargetResolver( target, lockProvider, @@ -88,7 +88,7 @@ private class LLFirBodyTargetResolver( implicitTypeOnly = false, scopeSession = scopeSession, returnTypeCalculator = createReturnTypeCalculator(towerDataContextCollector = towerDataContextCollector), - firTowerDataContextCollector = towerDataContextCollector, + firResolveContextCollector = towerDataContextCollector, ) { override val preserveCFGForClasses: Boolean get() = false } @@ -131,10 +131,10 @@ private class LLFirBodyTargetResolver( private fun resolveMembersForControlFlowGraph(target: FirRegularClass) { withTypeArguments(target) { - transformer.firTowerDataContextCollector?.addClassHeaderContext(target, transformer.context.towerDataContext) + transformer.firResolveContextCollector?.addClassHeaderContext(target, transformer.context.towerDataContext) } withRegularClass(target) { - transformer.firTowerDataContextCollector?.addDeclarationContext(target, transformer.context.towerDataContext) + transformer.firResolveContextCollector?.addDeclarationContext(target, transformer.context) for (member in target.declarations) { if (member is FirControlFlowGraphOwner && member.isUsedInControlFlowGraphBuilderForClass) { @@ -146,15 +146,15 @@ private class LLFirBodyTargetResolver( } override fun doLazyResolveUnderLock(target: FirElementWithResolveState) { - val contextCollector = transformer.firTowerDataContextCollector + val contextCollector = transformer.firResolveContextCollector if (contextCollector != null && target is FirDeclaration) { val bodyResolveContext = transformer.context if (target is FirFunction) { bodyResolveContext.forFunctionBody(target, transformer.components) { - contextCollector.addDeclarationContext(target, bodyResolveContext.towerDataContext) + contextCollector.addDeclarationContext(target, bodyResolveContext) } } else { - contextCollector.addDeclarationContext(target, bodyResolveContext.towerDataContext) + contextCollector.addDeclarationContext(target, bodyResolveContext) } } diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirCompilerAnnotationsLazyResolver.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirCompilerAnnotationsLazyResolver.kt index c586a3e4e28..4b0870d44fc 100644 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirCompilerAnnotationsLazyResolver.kt +++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirCompilerAnnotationsLazyResolver.kt @@ -27,7 +27,7 @@ import org.jetbrains.kotlin.fir.expressions.FirAnnotation import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.builder.buildAnnotationCallCopy import org.jetbrains.kotlin.fir.resolve.ScopeSession -import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirTowerDataContextCollector +import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirResolveContextCollector import org.jetbrains.kotlin.fir.resolve.transformers.plugin.CompilerRequiredAnnotationsComputationSession import org.jetbrains.kotlin.fir.resolve.transformers.plugin.FirCompilerRequiredAnnotationsResolveTransformer import org.jetbrains.kotlin.fir.symbols.impl.FirRegularClassSymbol @@ -40,7 +40,7 @@ internal object LLFirCompilerAnnotationsLazyResolver : LLFirLazyResolver(FirReso lockProvider: LLFirLockProvider, session: FirSession, scopeSession: ScopeSession, - towerDataContextCollector: FirTowerDataContextCollector?, + towerDataContextCollector: FirResolveContextCollector?, ) { val resolver = LLFirCompilerRequiredAnnotationsTargetResolver(target, lockProvider, session, scopeSession) resolver.resolveDesignation() diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirContractsLazyResolver.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirContractsLazyResolver.kt index bd97697dd4e..096ded56c1b 100644 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirContractsLazyResolver.kt +++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirContractsLazyResolver.kt @@ -18,7 +18,7 @@ import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.contracts.FirRawContractDescription import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.resolve.ScopeSession -import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirTowerDataContextCollector +import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirResolveContextCollector import org.jetbrains.kotlin.fir.resolve.transformers.contracts.FirContractResolveTransformer internal object LLFirContractsLazyResolver : LLFirLazyResolver(FirResolvePhase.CONTRACTS) { @@ -27,7 +27,7 @@ internal object LLFirContractsLazyResolver : LLFirLazyResolver(FirResolvePhase.C lockProvider: LLFirLockProvider, session: FirSession, scopeSession: ScopeSession, - towerDataContextCollector: FirTowerDataContextCollector?, + towerDataContextCollector: FirResolveContextCollector?, ) { val resolver = LLFirContractsTargetResolver(target, lockProvider, session, scopeSession) resolver.resolveDesignation() diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirExpectActualMatcherLazyResolver.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirExpectActualMatcherLazyResolver.kt index 8e7406f36e4..668db56e127 100644 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirExpectActualMatcherLazyResolver.kt +++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirExpectActualMatcherLazyResolver.kt @@ -15,7 +15,7 @@ import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.expressions.FirStatement import org.jetbrains.kotlin.fir.resolve.ScopeSession -import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirTowerDataContextCollector +import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirResolveContextCollector import org.jetbrains.kotlin.fir.resolve.transformers.mpp.FirExpectActualMatcherTransformer internal object LLFirExpectActualMatcherLazyResolver : LLFirLazyResolver(FirResolvePhase.EXPECT_ACTUAL_MATCHING) { @@ -24,7 +24,7 @@ internal object LLFirExpectActualMatcherLazyResolver : LLFirLazyResolver(FirReso lockProvider: LLFirLockProvider, session: FirSession, scopeSession: ScopeSession, - towerDataContextCollector: FirTowerDataContextCollector?, + towerDataContextCollector: FirResolveContextCollector?, ) { val resolver = LLFirExpectActualMatchingTargetResolver(target, lockProvider, session, scopeSession) resolver.resolveDesignation() diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirGeneratedCompanionObjectLazyResolver.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirGeneratedCompanionObjectLazyResolver.kt index 632c3045112..d260e83c96d 100644 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirGeneratedCompanionObjectLazyResolver.kt +++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirGeneratedCompanionObjectLazyResolver.kt @@ -15,7 +15,7 @@ import org.jetbrains.kotlin.fir.declarations.FirFile import org.jetbrains.kotlin.fir.declarations.FirRegularClass import org.jetbrains.kotlin.fir.declarations.FirResolvePhase import org.jetbrains.kotlin.fir.resolve.ScopeSession -import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirTowerDataContextCollector +import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirResolveContextCollector import org.jetbrains.kotlin.fir.resolve.transformers.plugin.FirCompanionGenerationTransformer internal object LLFirGeneratedCompanionObjectLazyResolver : LLFirLazyResolver(FirResolvePhase.COMPANION_GENERATION) { @@ -24,7 +24,7 @@ internal object LLFirGeneratedCompanionObjectLazyResolver : LLFirLazyResolver(Fi lockProvider: LLFirLockProvider, session: FirSession, scopeSession: ScopeSession, - towerDataContextCollector: FirTowerDataContextCollector?, + towerDataContextCollector: FirResolveContextCollector?, ) { val resolver = LLFirCompanionGenerationTargetResolver(target, lockProvider, session) resolver.resolveDesignation() diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirImplicitTypesLazyResolver.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirImplicitTypesLazyResolver.kt index 5d91ff8bffb..c56a7005a6a 100644 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirImplicitTypesLazyResolver.kt +++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirImplicitTypesLazyResolver.kt @@ -17,7 +17,7 @@ import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.resolve.ScopeSession import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirImplicitAwareBodyResolveTransformer -import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirTowerDataContextCollector +import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirResolveContextCollector import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.ImplicitBodyResolveComputationSession import org.jetbrains.kotlin.fir.scopes.fakeOverrideSubstitution @@ -27,7 +27,7 @@ internal object LLFirImplicitTypesLazyResolver : LLFirLazyResolver(FirResolvePha lockProvider: LLFirLockProvider, session: FirSession, scopeSession: ScopeSession, - towerDataContextCollector: FirTowerDataContextCollector?, + towerDataContextCollector: FirResolveContextCollector?, ) { val resolver = LLFirImplicitBodyTargetResolver(target, lockProvider, session, scopeSession, towerDataContextCollector) resolver.resolveDesignation() @@ -56,7 +56,7 @@ internal class LLFirImplicitBodyTargetResolver( lockProvider: LLFirLockProvider, session: FirSession, scopeSession: ScopeSession, - towerDataContextCollector: FirTowerDataContextCollector?, + towerDataContextCollector: FirResolveContextCollector?, implicitBodyResolveComputationSession: ImplicitBodyResolveComputationSession? = null, ) : LLFirAbstractBodyTargetResolver( target, @@ -72,7 +72,7 @@ internal class LLFirImplicitBodyTargetResolver( phase = resolverPhase, implicitTypeOnly = true, scopeSession = scopeSession, - firTowerDataContextCollector = towerDataContextCollector, + firResolveContextCollector = towerDataContextCollector, returnTypeCalculator = createReturnTypeCalculator(towerDataContextCollector = towerDataContextCollector), ) { override val preserveCFGForClasses: Boolean get() = false diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirLazyResolver.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirLazyResolver.kt index 14559866c0b..aa0830875cc 100644 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirLazyResolver.kt +++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirLazyResolver.kt @@ -11,7 +11,7 @@ import org.jetbrains.kotlin.fir.FirElementWithResolveState import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.resolve.ScopeSession -import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirTowerDataContextCollector +import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirResolveContextCollector internal abstract class LLFirLazyResolver( val resolverPhase: FirResolvePhase, @@ -21,7 +21,7 @@ internal abstract class LLFirLazyResolver( lockProvider: LLFirLockProvider, session: FirSession, scopeSession: ScopeSession, - towerDataContextCollector: FirTowerDataContextCollector?, + towerDataContextCollector: FirResolveContextCollector?, ) abstract fun checkIsResolved(target: FirElementWithResolveState) diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirLazyResolverRunner.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirLazyResolverRunner.kt index 0ec7dda9de1..2965aa083a9 100644 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirLazyResolverRunner.kt +++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirLazyResolverRunner.kt @@ -9,7 +9,7 @@ import org.jetbrains.kotlin.analysis.low.level.api.fir.api.targets.LLFirResolveT import org.jetbrains.kotlin.analysis.low.level.api.fir.file.builder.LLFirLockProvider import org.jetbrains.kotlin.fir.declarations.FirResolvePhase import org.jetbrains.kotlin.fir.resolve.ScopeSession -import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirTowerDataContextCollector +import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirResolveContextCollector internal object LLFirLazyResolverRunner { fun runLazyResolverByPhase( @@ -17,7 +17,7 @@ internal object LLFirLazyResolverRunner { target: LLFirResolveTarget, scopeSession: ScopeSession, lockProvider: LLFirLockProvider, - towerDataContextCollector: FirTowerDataContextCollector?, + towerDataContextCollector: FirResolveContextCollector?, ) { val lazyResolver = LLFirLazyPhaseResolverByPhase.getByPhase(phase) val firFile = target.firFile diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirReturnTypeCalculatorWithJump.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirReturnTypeCalculatorWithJump.kt index ecddf502654..85abb5248a9 100644 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirReturnTypeCalculatorWithJump.kt +++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirReturnTypeCalculatorWithJump.kt @@ -10,10 +10,9 @@ import org.jetbrains.kotlin.analysis.low.level.api.fir.api.targets.asResolveTarg import org.jetbrains.kotlin.analysis.low.level.api.fir.file.builder.LLFirLockProvider import org.jetbrains.kotlin.analysis.low.level.api.fir.transformers.LLFirImplicitBodyTargetResolver import org.jetbrains.kotlin.analysis.low.level.api.fir.transformers.LLFirImplicitTypesLazyResolver -import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.resolve.ScopeSession -import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirTowerDataContextCollector +import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirResolveContextCollector import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.ImplicitBodyResolveComputationSession import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.ReturnTypeCalculatorWithJump import org.jetbrains.kotlin.fir.symbols.lazyResolveToPhase @@ -24,7 +23,7 @@ internal class LLFirReturnTypeCalculatorWithJump( scopeSession: ScopeSession, implicitBodyResolveComputationSession: ImplicitBodyResolveComputationSession, private val lockProvider: LLFirLockProvider, - private val towerDataContextCollector: FirTowerDataContextCollector?, + private val towerDataContextCollector: FirResolveContextCollector?, ) : ReturnTypeCalculatorWithJump(scopeSession, implicitBodyResolveComputationSession) { override fun resolveDeclaration(declaration: FirCallableDeclaration): FirResolvedTypeRef { if (declaration.returnTypeRef !is FirImplicitTypeRef) { diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirSealedClassInheritorsLazyResolver.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirSealedClassInheritorsLazyResolver.kt index ba403f502c2..6f206e4ee71 100644 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirSealedClassInheritorsLazyResolver.kt +++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirSealedClassInheritorsLazyResolver.kt @@ -15,7 +15,7 @@ import org.jetbrains.kotlin.fir.declarations.FirFile import org.jetbrains.kotlin.fir.declarations.FirRegularClass import org.jetbrains.kotlin.fir.declarations.FirResolvePhase import org.jetbrains.kotlin.fir.resolve.ScopeSession -import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirTowerDataContextCollector +import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirResolveContextCollector internal object LLFirSealedClassInheritorsLazyResolver : LLFirLazyResolver(FirResolvePhase.SEALED_CLASS_INHERITORS) { override fun resolve( @@ -23,7 +23,7 @@ internal object LLFirSealedClassInheritorsLazyResolver : LLFirLazyResolver(FirRe lockProvider: LLFirLockProvider, session: FirSession, scopeSession: ScopeSession, - towerDataContextCollector: FirTowerDataContextCollector?, + towerDataContextCollector: FirResolveContextCollector?, ) { val resolver = LLFirSealedClassInheritorsDesignatedResolver(target, lockProvider) resolver.resolveDesignation() diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirStatusLazyResolver.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirStatusLazyResolver.kt index 845b2e56294..a142d52fd1d 100644 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirStatusLazyResolver.kt +++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirStatusLazyResolver.kt @@ -20,8 +20,7 @@ import org.jetbrains.kotlin.fir.expressions.FirStatement import org.jetbrains.kotlin.fir.resolve.ScopeSession import org.jetbrains.kotlin.fir.resolve.transformers.FirStatusResolveTransformer import org.jetbrains.kotlin.fir.resolve.transformers.StatusComputationSession -import org.jetbrains.kotlin.fir.resolve.transformers.StatusComputationSession.StatusComputationStatus -import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirTowerDataContextCollector +import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirResolveContextCollector import org.jetbrains.kotlin.fir.symbols.lazyResolveToPhase import org.jetbrains.kotlin.fir.visitors.transformSingle import org.jetbrains.kotlin.name.Name @@ -32,7 +31,7 @@ internal object LLFirStatusLazyResolver : LLFirLazyResolver(FirResolvePhase.STAT lockProvider: LLFirLockProvider, session: FirSession, scopeSession: ScopeSession, - towerDataContextCollector: FirTowerDataContextCollector?, + towerDataContextCollector: FirResolveContextCollector?, ) { val resolver = LLFirStatusTargetResolver( target = target, diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirSupertypeLazyResolver.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirSupertypeLazyResolver.kt index 6170449983d..53a11a12855 100644 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirSupertypeLazyResolver.kt +++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirSupertypeLazyResolver.kt @@ -25,7 +25,7 @@ import org.jetbrains.kotlin.fir.resolve.providers.symbolProvider import org.jetbrains.kotlin.fir.resolve.transformers.FirSupertypeResolverVisitor import org.jetbrains.kotlin.fir.resolve.transformers.SupertypeComputationSession import org.jetbrains.kotlin.fir.resolve.transformers.SupertypeComputationStatus -import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirTowerDataContextCollector +import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirResolveContextCollector import org.jetbrains.kotlin.fir.resolve.transformers.platformSupertypeUpdater import org.jetbrains.kotlin.fir.symbols.lazyResolveToPhase import org.jetbrains.kotlin.fir.types.* @@ -36,7 +36,7 @@ internal object LLFirSupertypeLazyResolver : LLFirLazyResolver(FirResolvePhase.S lockProvider: LLFirLockProvider, session: FirSession, scopeSession: ScopeSession, - towerDataContextCollector: FirTowerDataContextCollector?, + towerDataContextCollector: FirResolveContextCollector?, ) { val resolver = LLFirSuperTypeTargetResolver(target, lockProvider, session, scopeSession) resolver.resolveDesignation() diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirTypeLazyResolver.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirTypeLazyResolver.kt index 771941f4579..96636f7fa1d 100644 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirTypeLazyResolver.kt +++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirTypeLazyResolver.kt @@ -21,7 +21,7 @@ import org.jetbrains.kotlin.fir.PrivateForInline import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.resolve.ScopeSession import org.jetbrains.kotlin.fir.resolve.transformers.FirTypeResolveTransformer -import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirTowerDataContextCollector +import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirResolveContextCollector import org.jetbrains.kotlin.fir.symbols.lazyResolveToPhase import org.jetbrains.kotlin.fir.types.FirResolvedTypeRef import org.jetbrains.kotlin.fir.types.FirTypeRef @@ -33,7 +33,7 @@ internal object LLFirTypeLazyResolver : LLFirLazyResolver(FirResolvePhase.TYPES) lockProvider: LLFirLockProvider, session: FirSession, scopeSession: ScopeSession, - towerDataContextCollector: FirTowerDataContextCollector?, + towerDataContextCollector: FirResolveContextCollector?, ) { val resolver = LLFirTypeTargetResolver(target, lockProvider, session, scopeSession) resolver.resolveDesignation() diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirAbstractBodyResolveTransformerDispatcher.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirAbstractBodyResolveTransformerDispatcher.kt index 775e3b418a3..7db4b72cc64 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirAbstractBodyResolveTransformerDispatcher.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirAbstractBodyResolveTransformerDispatcher.kt @@ -30,7 +30,7 @@ abstract class FirAbstractBodyResolveTransformerDispatcher( scopeSession: ScopeSession, val returnTypeCalculator: ReturnTypeCalculator = ReturnTypeCalculatorForFullBodyResolve, outerBodyResolveContext: BodyResolveContext? = null, - val firTowerDataContextCollector: FirTowerDataContextCollector? = null, + val firResolveContextCollector: FirResolveContextCollector? = null, ) : FirAbstractBodyResolveTransformer(phase) { open val preserveCFGForClasses: Boolean get() = !implicitTypeOnly @@ -52,7 +52,7 @@ abstract class FirAbstractBodyResolveTransformerDispatcher( checkSessionConsistency(file) return context.withFile(file, components) { withFileAnalysisExceptionWrapping(file) { - firTowerDataContextCollector?.addFileContext(file, context.towerDataContext) + firResolveContextCollector?.addFileContext(file, context.towerDataContext) @Suppress("UNCHECKED_CAST") transformDeclarationContent(file, data) as FirFile diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirBodyResolveTransformer.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirBodyResolveTransformer.kt index eb9b1dcac1e..545d11dfccc 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirBodyResolveTransformer.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirBodyResolveTransformer.kt @@ -18,7 +18,7 @@ open class FirBodyResolveTransformer( scopeSession: ScopeSession, returnTypeCalculator: ReturnTypeCalculator = ReturnTypeCalculatorForFullBodyResolve, outerBodyResolveContext: BodyResolveContext? = null, - firTowerDataContextCollector: FirTowerDataContextCollector? = null + firResolveContextCollector: FirResolveContextCollector? = null ) : FirAbstractBodyResolveTransformerDispatcher( session, phase, @@ -26,7 +26,7 @@ open class FirBodyResolveTransformer( scopeSession, returnTypeCalculator, outerBodyResolveContext, - firTowerDataContextCollector + firResolveContextCollector ) { final override val expressionsTransformer = FirExpressionsResolveTransformer(this) final override val declarationsTransformer = FirDeclarationsResolveTransformer(this) diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirDeclarationsResolveTransformer.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirDeclarationsResolveTransformer.kt index 7a9541c5ef0..e2434cec654 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirDeclarationsResolveTransformer.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirDeclarationsResolveTransformer.kt @@ -69,7 +69,7 @@ open class FirDeclarationsResolveTransformer( } protected fun transformDeclarationContent(declaration: FirDeclaration, data: ResolutionMode): FirDeclaration { - transformer.firTowerDataContextCollector?.addDeclarationContext(declaration, context.towerDataContext) + transformer.firResolveContextCollector?.addDeclarationContext(declaration, context) return transformer.transformDeclarationContent(declaration, data) } @@ -526,7 +526,7 @@ open class FirDeclarationsResolveTransformer( whileAnalysing(session, regularClass) { return context.withContainingClass(regularClass) { if (regularClass.isLocal && regularClass !in context.targetedLocalClasses) { - return regularClass.runAllPhasesForLocalClass(transformer, components, data, transformer.firTowerDataContextCollector) + return regularClass.runAllPhasesForLocalClass(transformer, components, data, transformer.firResolveContextCollector) } doTransformTypeParameters(regularClass) @@ -554,11 +554,11 @@ open class FirDeclarationsResolveTransformer( override fun transformTypeAlias(typeAlias: FirTypeAlias, data: ResolutionMode): FirTypeAlias = whileAnalysing(session, typeAlias) { if (typeAlias.isLocal && typeAlias !in context.targetedLocalClasses) { - return typeAlias.runAllPhasesForLocalClass(transformer, components, data, transformer.firTowerDataContextCollector) + return typeAlias.runAllPhasesForLocalClass(transformer, components, data, transformer.firResolveContextCollector) } doTransformTypeParameters(typeAlias) typeAlias.transformAnnotations(transformer, data) - transformer.firTowerDataContextCollector?.addDeclarationContext(typeAlias, context.towerDataContext) + transformer.firResolveContextCollector?.addDeclarationContext(typeAlias, context) typeAlias.transformExpandedTypeRef(transformer, data) return typeAlias } @@ -592,7 +592,7 @@ open class FirDeclarationsResolveTransformer( data: ResolutionMode ): FirStatement = whileAnalysing(session, anonymousObject) { if (anonymousObject !in context.targetedLocalClasses) { - return anonymousObject.runAllPhasesForLocalClass(transformer, components, data, transformer.firTowerDataContextCollector) + return anonymousObject.runAllPhasesForLocalClass(transformer, components, data, transformer.firResolveContextCollector) } require(anonymousObject.controlFlowGraphReference == null) val buildGraph = !implicitTypeOnly diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirExpressionsResolveTransformer.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirExpressionsResolveTransformer.kt index 3bbeb49652a..3a065fce366 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirExpressionsResolveTransformer.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirExpressionsResolveTransformer.kt @@ -560,7 +560,7 @@ open class FirExpressionsResolveTransformer(transformer: FirAbstractBodyResolveT } private fun collectStatementContext(statement: FirStatement) { - transformer.firTowerDataContextCollector?.addStatementContext(statement, context.towerDataContext) + transformer.firResolveContextCollector?.addStatementContext(statement, context) } override fun transformThisReceiverExpression( diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirImplicitBodyResolve.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirImplicitBodyResolve.kt index 534d65fb0ee..fe9a26d9eb6 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirImplicitBodyResolve.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirImplicitBodyResolve.kt @@ -29,7 +29,6 @@ import org.jetbrains.kotlin.fir.scopes.impl.originalForWrappedIntegerOperator import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirSyntheticPropertySymbol import org.jetbrains.kotlin.fir.symbols.lazyResolveToPhase -import org.jetbrains.kotlin.fir.types.FirErrorTypeRef import org.jetbrains.kotlin.fir.types.FirImplicitTypeRef import org.jetbrains.kotlin.fir.types.FirResolvedTypeRef import org.jetbrains.kotlin.fir.types.builder.buildErrorTypeRef @@ -71,7 +70,7 @@ fun F.runContractAndBodiesResolutionForLocalClass( components: FirAbstractBodyResolveTransformer.BodyResolveTransformerComponents, resolutionMode: ResolutionMode, localClassesNavigationInfo: LocalClassesNavigationInfo, - firTowerDataContextCollector: FirTowerDataContextCollector? = null + firResolveContextCollector: FirResolveContextCollector? = null ): F { val currentReturnTypeCalculator = components.context.returnTypeCalculator as? ReturnTypeCalculatorWithJump val prevDesignation = currentReturnTypeCalculator?.designationMapForLocalClasses ?: emptyMap() @@ -103,7 +102,7 @@ fun F.runContractAndBodiesResolutionForLocalClass( implicitTypeOnly = false, returnTypeCalculator, outerBodyResolveContext = newContext, - firTowerDataContextCollector = firTowerDataContextCollector + firResolveContextCollector = firResolveContextCollector ) return this.transform(transformer, resolutionMode) } @@ -116,7 +115,7 @@ open class FirImplicitAwareBodyResolveTransformer( implicitTypeOnly: Boolean, returnTypeCalculator: ReturnTypeCalculator, outerBodyResolveContext: BodyResolveContext? = null, - firTowerDataContextCollector: FirTowerDataContextCollector? = null, + firResolveContextCollector: FirResolveContextCollector? = null, ) : FirBodyResolveTransformer( session, phase, @@ -124,7 +123,7 @@ open class FirImplicitAwareBodyResolveTransformer( scopeSession, returnTypeCalculator, outerBodyResolveContext, - firTowerDataContextCollector + firResolveContextCollector ) { override fun transformSimpleFunction( simpleFunction: FirSimpleFunction, diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirTowerDataContextCollector.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirResolveContextCollector.kt similarity index 92% rename from compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirTowerDataContextCollector.kt rename to compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirResolveContextCollector.kt index 33df2297ebe..f7ef7eeeae7 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirTowerDataContextCollector.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirResolveContextCollector.kt @@ -14,10 +14,10 @@ import org.jetbrains.kotlin.fir.expressions.FirStatement /** * Collector needed to collect TowerDataContext in IDE for in-air resolved fir elements. */ -interface FirTowerDataContextCollector { +interface FirResolveContextCollector { fun addFileContext(file: FirFile, context: FirTowerDataContext) - fun addStatementContext(statement: FirStatement, context: FirTowerDataContext) - fun addDeclarationContext(declaration: FirDeclaration, context: FirTowerDataContext) + fun addStatementContext(statement: FirStatement, context: BodyResolveContext) + fun addDeclarationContext(declaration: FirDeclaration, context: BodyResolveContext) /** * Here by "header" we understand the parts of the class declaration which resolution is not affected diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/LocalClassesResolution.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/LocalClassesResolution.kt index 994bdde957e..9bf4a32d61a 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/LocalClassesResolution.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/LocalClassesResolution.kt @@ -18,7 +18,7 @@ fun F.runAllPhasesForLocalClass( transformer: FirAbstractBodyResolveTransformer, components: FirAbstractBodyResolveTransformer.BodyResolveTransformerComponents, resolutionMode: ResolutionMode, - firTowerDataContextCollector: FirTowerDataContextCollector? + firResolveContextCollector: FirResolveContextCollector? ): F { if (status is FirResolvedDeclarationStatus) return this if (this is FirRegularClass) { @@ -65,7 +65,7 @@ fun F.runAllPhasesForLocalClass( components, resolutionMode, localClassesNavigationInfo, - firTowerDataContextCollector + firResolveContextCollector ) return this } diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/plugin/FirAnnotationArgumentsMappingTransformer.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/plugin/FirAnnotationArgumentsMappingTransformer.kt index bd8763a441f..9ee2e9203ee 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/plugin/FirAnnotationArgumentsMappingTransformer.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/plugin/FirAnnotationArgumentsMappingTransformer.kt @@ -19,7 +19,6 @@ import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.BodyResolveCon import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirAbstractBodyResolveTransformerDispatcher import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirDeclarationsResolveTransformer import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirExpressionsResolveTransformer -import org.jetbrains.kotlin.fir.types.FirTypeRef import org.jetbrains.kotlin.fir.visitors.transformSingle open class FirAnnotationArgumentsMappingTransformer( @@ -221,7 +220,7 @@ private class FirDeclarationsResolveTransformerForAnnotationArgumentsMapping( override fun transformTypeAlias(typeAlias: FirTypeAlias, data: ResolutionMode): FirTypeAlias { doTransformTypeParameters(typeAlias) typeAlias.transformAnnotations(transformer, data) - transformer.firTowerDataContextCollector?.addDeclarationContext(typeAlias, context.towerDataContext) + transformer.firResolveContextCollector?.addDeclarationContext(typeAlias, context) typeAlias.expandedTypeRef.transformSingle(transformer, data) return typeAlias }