[LL FIR] remove LLFirPhaseRunner as it does nothing

^KT-56543
This commit is contained in:
Dmitrii Gridin
2023-01-04 19:36:49 +01:00
committed by Space Team
parent 72fce82f2f
commit 7e380e7df5
16 changed files with 31 additions and 99 deletions
@@ -1,5 +1,5 @@
/*
* Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/
@@ -15,6 +15,5 @@ internal class LLFirGlobalResolveComponents(val project: Project) {
}
}
val phaseRunner: LLFirPhaseRunner = LLFirPhaseRunner()
val lockProvider: LLFirLockProvider = LLFirLockProvider()
}
@@ -1,21 +0,0 @@
/*
* Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/
package org.jetbrains.kotlin.analysis.low.level.api.fir
import org.jetbrains.kotlin.fir.declarations.FirResolvePhase
internal class LLFirPhaseRunner {
/**
* We temporary disable multi-locks to fix deadlocks problem
* @see org.jetbrains.kotlin.analysis.low.level.api.fir.file.builder.LLFirLockProvider
*/
inline fun runPhaseWithCustomResolve(@Suppress("UNUSED_PARAMETER") phase: FirResolvePhase, crossinline resolve: () -> Unit) =
runPhaseWithCustomResolveWithoutLock(resolve)
private inline fun runPhaseWithCustomResolveWithoutLock(crossinline resolve: () -> Unit) {
resolve()
}
}
@@ -161,7 +161,6 @@ internal class LLFirModuleLazyDeclarationResolver(val moduleComponents: LLFirMod
phase = currentPhase,
designation = designation,
scopeSession = scopeSession,
phaseRunner = moduleComponents.globalResolveComponents.phaseRunner,
lockProvider = moduleComponents.globalResolveComponents.lockProvider,
towerDataContextCollector = null
)
@@ -187,9 +186,8 @@ internal class LLFirModuleLazyDeclarationResolver(val moduleComponents: LLFirMod
phase = currentPhase,
designation = designation,
scopeSession = scopeSession,
phaseRunner = moduleComponents.globalResolveComponents.phaseRunner,
lockProvider = moduleComponents.globalResolveComponents.lockProvider,
towerDataContextCollector = towerDataContextCollector
towerDataContextCollector = towerDataContextCollector,
)
}
}
@@ -5,7 +5,6 @@
package org.jetbrains.kotlin.analysis.low.level.api.fir.transformers
import org.jetbrains.kotlin.analysis.low.level.api.fir.LLFirPhaseRunner
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.FirDesignationWithFile
import org.jetbrains.kotlin.analysis.low.level.api.fir.lazy.resolve.FirLazyBodiesCalculator
import org.jetbrains.kotlin.analysis.low.level.api.fir.lazy.resolve.LLFirPhaseUpdater
@@ -37,14 +36,11 @@ internal class LLFirDesignatedAnnotationArgumentsMappingTransformer(
super.transformDeclarationContent(declaration, data)
}
override fun transformDeclaration(phaseRunner: LLFirPhaseRunner) {
phaseRunner.runPhaseWithCustomResolve(FirResolvePhase.ANNOTATIONS_ARGUMENTS_MAPPING) {
FirLazyBodiesCalculator.calculateAnnotations(designation.firFile)
designation.firFile.transform<FirFile, ResolutionMode>(this, ResolutionMode.ContextIndependent)
}
override fun transformDeclaration() {
FirLazyBodiesCalculator.calculateAnnotations(designation.firFile)
designation.firFile.transform<FirFile, ResolutionMode>(this, ResolutionMode.ContextIndependent)
}
override fun updatePhaseForDeclarationInternals(target: FirElementWithResolveState) {
LLFirPhaseUpdater.updateDeclarationInternalsPhase(
target,
@@ -5,7 +5,6 @@
package org.jetbrains.kotlin.analysis.low.level.api.fir.transformers
import org.jetbrains.kotlin.analysis.low.level.api.fir.LLFirPhaseRunner
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.FirDesignationWithFile
import org.jetbrains.kotlin.analysis.low.level.api.fir.lazy.resolve.LLFirPhaseUpdater
import org.jetbrains.kotlin.analysis.low.level.api.fir.lazy.resolve.FirLazyBodiesCalculator
@@ -55,12 +54,9 @@ internal class LLFirDesignatedAnnotationArgumentsResolveTransformer(
}
}
override fun transformDeclaration(phaseRunner: LLFirPhaseRunner) {
override fun transformDeclaration() {
val designationIterator = designation.toSequenceWithFile(includeTarget = false).iterator()
phaseRunner.runPhaseWithCustomResolve(FirResolvePhase.ARGUMENTS_OF_ANNOTATIONS) {
moveNextDeclaration(designationIterator)
}
moveNextDeclaration(designationIterator)
}
override fun updatePhaseForDeclarationInternals(target: FirElementWithResolveState) {
@@ -5,7 +5,6 @@
package org.jetbrains.kotlin.analysis.low.level.api.fir.transformers
import org.jetbrains.kotlin.analysis.low.level.api.fir.LLFirPhaseRunner
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.FirDesignationWithFile
import org.jetbrains.kotlin.analysis.low.level.api.fir.lazy.resolve.LLFirPhaseUpdater
import org.jetbrains.kotlin.analysis.low.level.api.fir.lazy.resolve.FirLazyBodiesCalculator
@@ -48,12 +47,9 @@ internal class LLFirDesignatedAnnotationsResolveTransformed(
}
}
override fun transformDeclaration(phaseRunner: LLFirPhaseRunner) {
override fun transformDeclaration() {
val designationIterator = designation.toSequenceWithFile(includeTarget = false).iterator()
phaseRunner.runPhaseWithCustomResolve(FirResolvePhase.COMPILER_REQUIRED_ANNOTATIONS) {
moveNextDeclaration(designationIterator)
}
moveNextDeclaration(designationIterator)
}
@@ -5,7 +5,6 @@
package org.jetbrains.kotlin.analysis.low.level.api.fir.transformers
import org.jetbrains.kotlin.analysis.low.level.api.fir.LLFirPhaseRunner
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.FirDesignationWithFile
import org.jetbrains.kotlin.analysis.low.level.api.fir.element.builder.LLFirEnsureBasedTransformerForReturnTypeCalculator
import org.jetbrains.kotlin.analysis.low.level.api.fir.lazy.resolve.LLFirPhaseUpdater
@@ -49,11 +48,8 @@ internal class LLFirDesignatedBodyResolveTransformer(
super.transformDeclarationContent(declaration, data)
}
override fun transformDeclaration(phaseRunner: LLFirPhaseRunner) {
phaseRunner.runPhaseWithCustomResolve(FirResolvePhase.BODY_RESOLVE) {
designation.firFile.transform<FirFile, ResolutionMode>(this, ResolutionMode.ContextIndependent)
}
override fun transformDeclaration() {
designation.firFile.transform<FirFile, ResolutionMode>(this, ResolutionMode.ContextIndependent)
ideDeclarationTransformer.ensureDesignationPassed()
}
@@ -5,7 +5,6 @@
package org.jetbrains.kotlin.analysis.low.level.api.fir.transformers
import org.jetbrains.kotlin.analysis.low.level.api.fir.LLFirPhaseRunner
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.FirDesignationWithFile
import org.jetbrains.kotlin.analysis.low.level.api.fir.lazy.resolve.FirLazyBodiesCalculator
import org.jetbrains.kotlin.analysis.low.level.api.fir.lazy.resolve.LLFirPhaseUpdater
@@ -43,12 +42,9 @@ internal class LLFirDesignatedContractsResolveTransformer(
super.transformDeclarationContent(declaration, data)
}
override fun transformDeclaration(phaseRunner: LLFirPhaseRunner) {
override fun transformDeclaration() {
FirLazyBodiesCalculator.calculateLazyBodiesInside(designation)
phaseRunner.runPhaseWithCustomResolve(FirResolvePhase.CONTRACTS) {
designation.firFile.transform<FirFile, ResolutionMode>(this, ResolutionMode.ContextIndependent)
}
designation.firFile.transform<FirFile, ResolutionMode>(this, ResolutionMode.ContextIndependent)
ideDeclarationTransformer.ensureDesignationPassed()
}
@@ -5,7 +5,6 @@
package org.jetbrains.kotlin.analysis.low.level.api.fir.transformers
import org.jetbrains.kotlin.analysis.low.level.api.fir.LLFirPhaseRunner
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.FirDesignationWithFile
import org.jetbrains.kotlin.analysis.low.level.api.fir.lazy.resolve.FirLazyBodiesCalculator
import org.jetbrains.kotlin.analysis.low.level.api.fir.lazy.resolve.LLFirPhaseUpdater
@@ -40,12 +39,9 @@ internal class LLFirDesignatedExpectActualMatcherTransformer(
} as FirFile
}
override fun transformDeclaration(phaseRunner: LLFirPhaseRunner) {
override fun transformDeclaration() {
FirLazyBodiesCalculator.calculateLazyBodiesInside(designation)
phaseRunner.runPhaseWithCustomResolve(FirResolvePhase.EXPECT_ACTUAL_MATCHING) {
designation.firFile.transform<FirFile, Nothing?>(this, null)
}
designation.firFile.transform<FirFile, Nothing?>(this, null)
declarationTransformer.ensureDesignationPassed()
}
@@ -5,7 +5,6 @@
package org.jetbrains.kotlin.analysis.low.level.api.fir.transformers
import org.jetbrains.kotlin.analysis.low.level.api.fir.LLFirPhaseRunner
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.FirDesignationWithFile
import org.jetbrains.kotlin.analysis.low.level.api.fir.lazy.resolve.LLFirPhaseUpdater
import org.jetbrains.kotlin.fir.FirElementWithResolveState
@@ -21,10 +20,8 @@ internal class LLFirDesignatedGeneratedCompanionObjectResolveTransformer(
) : LLFirLazyTransformer {
private val transformer: FirCompanionGenerationTransformer = FirCompanionGenerationTransformer(session)
override fun transformDeclaration(phaseRunner: LLFirPhaseRunner) {
phaseRunner.runPhaseWithCustomResolve(FirResolvePhase.COMPANION_GENERATION) {
designation.target.transform<FirDeclaration, Nothing?>(transformer, null)
}
override fun transformDeclaration() {
designation.target.transform<FirDeclaration, Nothing?>(transformer, null)
}
override fun updatePhaseForDeclarationInternals(target: FirElementWithResolveState) {
@@ -5,7 +5,6 @@
package org.jetbrains.kotlin.analysis.low.level.api.fir.transformers
import org.jetbrains.kotlin.analysis.low.level.api.fir.LLFirPhaseRunner
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.FirDesignationWithFile
import org.jetbrains.kotlin.analysis.low.level.api.fir.element.builder.LLFirDesignatedImpliciteTypesBodyResolveTransformerForReturnTypeCalculator
import org.jetbrains.kotlin.analysis.low.level.api.fir.lazy.resolve.LLFirPhaseUpdater
@@ -53,11 +52,8 @@ internal class LLFirDesignatedImplicitTypesTransformer(
super.transformDeclarationContent(declaration, data)
}
override fun transformDeclaration(phaseRunner: LLFirPhaseRunner) {
phaseRunner.runPhaseWithCustomResolve(FirResolvePhase.IMPLICIT_TYPES_BODY_RESOLVE) {
designation.firFile.transform<FirFile, ResolutionMode>(this, ResolutionMode.ContextIndependent)
}
override fun transformDeclaration() {
designation.firFile.transform<FirFile, ResolutionMode>(this, ResolutionMode.ContextIndependent)
ideDeclarationTransformer.ensureDesignationPassed()
}
@@ -65,7 +61,7 @@ internal class LLFirDesignatedImplicitTypesTransformer(
LLFirPhaseUpdater.updateDeclarationInternalsPhase(
target,
FirResolvePhase.IMPLICIT_TYPES_BODY_RESOLVE,
updateForLocalDeclarations = false/* here should be true if we resolved the body*/,
updateForLocalDeclarations = false, /* here should be true if we resolved the body*/
)
}
@@ -5,7 +5,6 @@
package org.jetbrains.kotlin.analysis.low.level.api.fir.transformers
import org.jetbrains.kotlin.analysis.low.level.api.fir.LLFirPhaseRunner
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.FirDesignationWithFile
import org.jetbrains.kotlin.analysis.low.level.api.fir.lazy.resolve.LLFirPhaseUpdater
import org.jetbrains.kotlin.analysis.low.level.api.fir.util.checkDeclarationStatusIsResolved
@@ -76,12 +75,10 @@ internal class LLFirDesignatedStatusResolveTransformer(
}
override fun transformDeclaration(phaseRunner: LLFirPhaseRunner) {
override fun transformDeclaration() {
val designationIterator = designation.path.iterator()
val transformer = FirDesignatedStatusResolveTransformerForIDE(designationIterator)
phaseRunner.runPhaseWithCustomResolve(FirResolvePhase.STATUS) {
transformer.moveNextDeclaration()
}
transformer.moveNextDeclaration()
}
override fun updatePhaseForDeclarationInternals(target: FirElementWithResolveState) {
@@ -5,7 +5,6 @@
package org.jetbrains.kotlin.analysis.low.level.api.fir.transformers
import org.jetbrains.kotlin.analysis.low.level.api.fir.LLFirPhaseRunner
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.FirDesignation
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.FirDesignationWithFile
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.collectDesignation
@@ -154,18 +153,16 @@ internal class LLFirDesignatedSupertypeResolverTransformer(
}
}
override fun transformDeclaration(phaseRunner: LLFirPhaseRunner) {
override fun transformDeclaration() {
val targetDesignation = if (designation.target !is FirClassLikeDeclaration) {
val resolvableTarget = designation.path.lastOrNull() ?: return
val targetPath = designation.path.dropLast(1)
FirDesignationWithFile(targetPath, resolvableTarget, designation.firFile)
} else designation
phaseRunner.runPhaseWithCustomResolve(FirResolvePhase.SUPER_TYPES) {
val collected = collect(targetDesignation)
supertypeComputationSession.breakLoops(session)
apply(collected)
}
val collected = collect(targetDesignation)
supertypeComputationSession.breakLoops(session)
apply(collected)
}
override fun updatePhaseForDeclarationInternals(target: FirElementWithResolveState) {
@@ -5,7 +5,6 @@
package org.jetbrains.kotlin.analysis.low.level.api.fir.transformers
import org.jetbrains.kotlin.analysis.low.level.api.fir.LLFirPhaseRunner
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.FirDesignationWithFile
import org.jetbrains.kotlin.analysis.low.level.api.fir.lazy.resolve.FirLazyBodiesCalculator
import org.jetbrains.kotlin.analysis.low.level.api.fir.lazy.resolve.LLFirPhaseUpdater
@@ -44,11 +43,8 @@ internal class LLFirDesignatedTypeResolverTransformer(
}
}
override fun transformDeclaration(phaseRunner: LLFirPhaseRunner) {
phaseRunner.runPhaseWithCustomResolve(FirResolvePhase.TYPES) {
designation.firFile.transform<FirFile, Any?>(this, null)
}
override fun transformDeclaration() {
designation.firFile.transform<FirFile, Any?>(this, null)
declarationTransformer.ensureDesignationPassed()
}
@@ -6,12 +6,11 @@
package org.jetbrains.kotlin.analysis.low.level.api.fir.transformers
import org.jetbrains.annotations.TestOnly
import org.jetbrains.kotlin.analysis.low.level.api.fir.LLFirPhaseRunner
import org.jetbrains.kotlin.fir.FirElementWithResolveState
import org.jetbrains.kotlin.fir.declarations.*
internal interface LLFirLazyTransformer {
fun transformDeclaration(phaseRunner: LLFirPhaseRunner)
fun transformDeclaration()
fun checkIsResolved(target: FirElementWithResolveState)
@@ -64,7 +63,7 @@ internal interface LLFirLazyTransformer {
@TestOnly set
val DUMMY = object : LLFirLazyTransformer {
override fun transformDeclaration(phaseRunner: LLFirPhaseRunner) {}
override fun transformDeclaration() {}
override fun checkIsResolved(target: FirElementWithResolveState) {}
override fun updatePhaseForDeclarationInternals(target: FirElementWithResolveState) {}
}
@@ -5,7 +5,6 @@
package org.jetbrains.kotlin.analysis.low.level.api.fir.transformers
import org.jetbrains.kotlin.analysis.low.level.api.fir.LLFirPhaseRunner
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.FirDesignationWithFile
import org.jetbrains.kotlin.analysis.low.level.api.fir.file.builder.LLFirLockProvider
import org.jetbrains.kotlin.fir.declarations.FirResolvePhase
@@ -18,7 +17,6 @@ internal object LLFirLazyTransformerExecutor {
phase: FirResolvePhase,
designation: FirDesignationWithFile,
scopeSession: ScopeSession,
phaseRunner: LLFirPhaseRunner,
lockProvider: LLFirLockProvider,
towerDataContextCollector: FirTowerDataContextCollector?
) {
@@ -31,7 +29,7 @@ internal object LLFirLazyTransformerExecutor {
)
lockProvider.withLock(designation.firFile) {
lazyTransformer.transformDeclaration(phaseRunner)
lazyTransformer.transformDeclaration()
lazyTransformer.updatePhaseForDeclarationInternals(designation.target)
designation.target.replaceResolveState(phase.asResolveState())
lazyTransformer.checkIsResolved(designation.target)