[LL FIR] remove LLFirPhaseRunner as it does nothing
^KT-56543
This commit is contained in:
committed by
Space Team
parent
72fce82f2f
commit
7e380e7df5
+1
-2
@@ -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.
|
* 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()
|
val lockProvider: LLFirLockProvider = LLFirLockProvider()
|
||||||
}
|
}
|
||||||
-21
@@ -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()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+1
-3
@@ -161,7 +161,6 @@ internal class LLFirModuleLazyDeclarationResolver(val moduleComponents: LLFirMod
|
|||||||
phase = currentPhase,
|
phase = currentPhase,
|
||||||
designation = designation,
|
designation = designation,
|
||||||
scopeSession = scopeSession,
|
scopeSession = scopeSession,
|
||||||
phaseRunner = moduleComponents.globalResolveComponents.phaseRunner,
|
|
||||||
lockProvider = moduleComponents.globalResolveComponents.lockProvider,
|
lockProvider = moduleComponents.globalResolveComponents.lockProvider,
|
||||||
towerDataContextCollector = null
|
towerDataContextCollector = null
|
||||||
)
|
)
|
||||||
@@ -187,9 +186,8 @@ internal class LLFirModuleLazyDeclarationResolver(val moduleComponents: LLFirMod
|
|||||||
phase = currentPhase,
|
phase = currentPhase,
|
||||||
designation = designation,
|
designation = designation,
|
||||||
scopeSession = scopeSession,
|
scopeSession = scopeSession,
|
||||||
phaseRunner = moduleComponents.globalResolveComponents.phaseRunner,
|
|
||||||
lockProvider = moduleComponents.globalResolveComponents.lockProvider,
|
lockProvider = moduleComponents.globalResolveComponents.lockProvider,
|
||||||
towerDataContextCollector = towerDataContextCollector
|
towerDataContextCollector = towerDataContextCollector,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-7
@@ -5,7 +5,6 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.analysis.low.level.api.fir.transformers
|
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.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.FirLazyBodiesCalculator
|
||||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.lazy.resolve.LLFirPhaseUpdater
|
import org.jetbrains.kotlin.analysis.low.level.api.fir.lazy.resolve.LLFirPhaseUpdater
|
||||||
@@ -37,14 +36,11 @@ internal class LLFirDesignatedAnnotationArgumentsMappingTransformer(
|
|||||||
super.transformDeclarationContent(declaration, data)
|
super.transformDeclarationContent(declaration, data)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun transformDeclaration(phaseRunner: LLFirPhaseRunner) {
|
override fun transformDeclaration() {
|
||||||
phaseRunner.runPhaseWithCustomResolve(FirResolvePhase.ANNOTATIONS_ARGUMENTS_MAPPING) {
|
FirLazyBodiesCalculator.calculateAnnotations(designation.firFile)
|
||||||
FirLazyBodiesCalculator.calculateAnnotations(designation.firFile)
|
designation.firFile.transform<FirFile, ResolutionMode>(this, ResolutionMode.ContextIndependent)
|
||||||
designation.firFile.transform<FirFile, ResolutionMode>(this, ResolutionMode.ContextIndependent)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
override fun updatePhaseForDeclarationInternals(target: FirElementWithResolveState) {
|
override fun updatePhaseForDeclarationInternals(target: FirElementWithResolveState) {
|
||||||
LLFirPhaseUpdater.updateDeclarationInternalsPhase(
|
LLFirPhaseUpdater.updateDeclarationInternalsPhase(
|
||||||
target,
|
target,
|
||||||
|
|||||||
+2
-6
@@ -5,7 +5,6 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.analysis.low.level.api.fir.transformers
|
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.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.LLFirPhaseUpdater
|
||||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.lazy.resolve.FirLazyBodiesCalculator
|
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()
|
val designationIterator = designation.toSequenceWithFile(includeTarget = false).iterator()
|
||||||
|
moveNextDeclaration(designationIterator)
|
||||||
phaseRunner.runPhaseWithCustomResolve(FirResolvePhase.ARGUMENTS_OF_ANNOTATIONS) {
|
|
||||||
moveNextDeclaration(designationIterator)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun updatePhaseForDeclarationInternals(target: FirElementWithResolveState) {
|
override fun updatePhaseForDeclarationInternals(target: FirElementWithResolveState) {
|
||||||
|
|||||||
+2
-6
@@ -5,7 +5,6 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.analysis.low.level.api.fir.transformers
|
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.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.LLFirPhaseUpdater
|
||||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.lazy.resolve.FirLazyBodiesCalculator
|
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()
|
val designationIterator = designation.toSequenceWithFile(includeTarget = false).iterator()
|
||||||
|
moveNextDeclaration(designationIterator)
|
||||||
phaseRunner.runPhaseWithCustomResolve(FirResolvePhase.COMPILER_REQUIRED_ANNOTATIONS) {
|
|
||||||
moveNextDeclaration(designationIterator)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+2
-6
@@ -5,7 +5,6 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.analysis.low.level.api.fir.transformers
|
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.api.FirDesignationWithFile
|
||||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.element.builder.LLFirEnsureBasedTransformerForReturnTypeCalculator
|
import org.jetbrains.kotlin.analysis.low.level.api.fir.element.builder.LLFirEnsureBasedTransformerForReturnTypeCalculator
|
||||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.lazy.resolve.LLFirPhaseUpdater
|
import org.jetbrains.kotlin.analysis.low.level.api.fir.lazy.resolve.LLFirPhaseUpdater
|
||||||
@@ -49,11 +48,8 @@ internal class LLFirDesignatedBodyResolveTransformer(
|
|||||||
super.transformDeclarationContent(declaration, data)
|
super.transformDeclarationContent(declaration, data)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun transformDeclaration(phaseRunner: LLFirPhaseRunner) {
|
override fun transformDeclaration() {
|
||||||
phaseRunner.runPhaseWithCustomResolve(FirResolvePhase.BODY_RESOLVE) {
|
designation.firFile.transform<FirFile, ResolutionMode>(this, ResolutionMode.ContextIndependent)
|
||||||
designation.firFile.transform<FirFile, ResolutionMode>(this, ResolutionMode.ContextIndependent)
|
|
||||||
}
|
|
||||||
|
|
||||||
ideDeclarationTransformer.ensureDesignationPassed()
|
ideDeclarationTransformer.ensureDesignationPassed()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+2
-6
@@ -5,7 +5,6 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.analysis.low.level.api.fir.transformers
|
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.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.FirLazyBodiesCalculator
|
||||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.lazy.resolve.LLFirPhaseUpdater
|
import org.jetbrains.kotlin.analysis.low.level.api.fir.lazy.resolve.LLFirPhaseUpdater
|
||||||
@@ -43,12 +42,9 @@ internal class LLFirDesignatedContractsResolveTransformer(
|
|||||||
super.transformDeclarationContent(declaration, data)
|
super.transformDeclarationContent(declaration, data)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun transformDeclaration(phaseRunner: LLFirPhaseRunner) {
|
override fun transformDeclaration() {
|
||||||
FirLazyBodiesCalculator.calculateLazyBodiesInside(designation)
|
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()
|
ideDeclarationTransformer.ensureDesignationPassed()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+2
-6
@@ -5,7 +5,6 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.analysis.low.level.api.fir.transformers
|
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.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.FirLazyBodiesCalculator
|
||||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.lazy.resolve.LLFirPhaseUpdater
|
import org.jetbrains.kotlin.analysis.low.level.api.fir.lazy.resolve.LLFirPhaseUpdater
|
||||||
@@ -40,12 +39,9 @@ internal class LLFirDesignatedExpectActualMatcherTransformer(
|
|||||||
} as FirFile
|
} as FirFile
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun transformDeclaration(phaseRunner: LLFirPhaseRunner) {
|
override fun transformDeclaration() {
|
||||||
FirLazyBodiesCalculator.calculateLazyBodiesInside(designation)
|
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()
|
declarationTransformer.ensureDesignationPassed()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+2
-5
@@ -5,7 +5,6 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.analysis.low.level.api.fir.transformers
|
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.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.LLFirPhaseUpdater
|
||||||
import org.jetbrains.kotlin.fir.FirElementWithResolveState
|
import org.jetbrains.kotlin.fir.FirElementWithResolveState
|
||||||
@@ -21,10 +20,8 @@ internal class LLFirDesignatedGeneratedCompanionObjectResolveTransformer(
|
|||||||
) : LLFirLazyTransformer {
|
) : LLFirLazyTransformer {
|
||||||
private val transformer: FirCompanionGenerationTransformer = FirCompanionGenerationTransformer(session)
|
private val transformer: FirCompanionGenerationTransformer = FirCompanionGenerationTransformer(session)
|
||||||
|
|
||||||
override fun transformDeclaration(phaseRunner: LLFirPhaseRunner) {
|
override fun transformDeclaration() {
|
||||||
phaseRunner.runPhaseWithCustomResolve(FirResolvePhase.COMPANION_GENERATION) {
|
designation.target.transform<FirDeclaration, Nothing?>(transformer, null)
|
||||||
designation.target.transform<FirDeclaration, Nothing?>(transformer, null)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun updatePhaseForDeclarationInternals(target: FirElementWithResolveState) {
|
override fun updatePhaseForDeclarationInternals(target: FirElementWithResolveState) {
|
||||||
|
|||||||
+3
-7
@@ -5,7 +5,6 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.analysis.low.level.api.fir.transformers
|
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.api.FirDesignationWithFile
|
||||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.element.builder.LLFirDesignatedImpliciteTypesBodyResolveTransformerForReturnTypeCalculator
|
import org.jetbrains.kotlin.analysis.low.level.api.fir.element.builder.LLFirDesignatedImpliciteTypesBodyResolveTransformerForReturnTypeCalculator
|
||||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.lazy.resolve.LLFirPhaseUpdater
|
import org.jetbrains.kotlin.analysis.low.level.api.fir.lazy.resolve.LLFirPhaseUpdater
|
||||||
@@ -53,11 +52,8 @@ internal class LLFirDesignatedImplicitTypesTransformer(
|
|||||||
super.transformDeclarationContent(declaration, data)
|
super.transformDeclarationContent(declaration, data)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun transformDeclaration(phaseRunner: LLFirPhaseRunner) {
|
override fun transformDeclaration() {
|
||||||
phaseRunner.runPhaseWithCustomResolve(FirResolvePhase.IMPLICIT_TYPES_BODY_RESOLVE) {
|
designation.firFile.transform<FirFile, ResolutionMode>(this, ResolutionMode.ContextIndependent)
|
||||||
designation.firFile.transform<FirFile, ResolutionMode>(this, ResolutionMode.ContextIndependent)
|
|
||||||
}
|
|
||||||
|
|
||||||
ideDeclarationTransformer.ensureDesignationPassed()
|
ideDeclarationTransformer.ensureDesignationPassed()
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -65,7 +61,7 @@ internal class LLFirDesignatedImplicitTypesTransformer(
|
|||||||
LLFirPhaseUpdater.updateDeclarationInternalsPhase(
|
LLFirPhaseUpdater.updateDeclarationInternalsPhase(
|
||||||
target,
|
target,
|
||||||
FirResolvePhase.IMPLICIT_TYPES_BODY_RESOLVE,
|
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*/
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+2
-5
@@ -5,7 +5,6 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.analysis.low.level.api.fir.transformers
|
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.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.LLFirPhaseUpdater
|
||||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.util.checkDeclarationStatusIsResolved
|
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 designationIterator = designation.path.iterator()
|
||||||
val transformer = FirDesignatedStatusResolveTransformerForIDE(designationIterator)
|
val transformer = FirDesignatedStatusResolveTransformerForIDE(designationIterator)
|
||||||
phaseRunner.runPhaseWithCustomResolve(FirResolvePhase.STATUS) {
|
transformer.moveNextDeclaration()
|
||||||
transformer.moveNextDeclaration()
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun updatePhaseForDeclarationInternals(target: FirElementWithResolveState) {
|
override fun updatePhaseForDeclarationInternals(target: FirElementWithResolveState) {
|
||||||
|
|||||||
+4
-7
@@ -5,7 +5,6 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.analysis.low.level.api.fir.transformers
|
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.FirDesignation
|
||||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.FirDesignationWithFile
|
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.FirDesignationWithFile
|
||||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.collectDesignation
|
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 targetDesignation = if (designation.target !is FirClassLikeDeclaration) {
|
||||||
val resolvableTarget = designation.path.lastOrNull() ?: return
|
val resolvableTarget = designation.path.lastOrNull() ?: return
|
||||||
val targetPath = designation.path.dropLast(1)
|
val targetPath = designation.path.dropLast(1)
|
||||||
FirDesignationWithFile(targetPath, resolvableTarget, designation.firFile)
|
FirDesignationWithFile(targetPath, resolvableTarget, designation.firFile)
|
||||||
} else designation
|
} else designation
|
||||||
|
|
||||||
phaseRunner.runPhaseWithCustomResolve(FirResolvePhase.SUPER_TYPES) {
|
val collected = collect(targetDesignation)
|
||||||
val collected = collect(targetDesignation)
|
supertypeComputationSession.breakLoops(session)
|
||||||
supertypeComputationSession.breakLoops(session)
|
apply(collected)
|
||||||
apply(collected)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun updatePhaseForDeclarationInternals(target: FirElementWithResolveState) {
|
override fun updatePhaseForDeclarationInternals(target: FirElementWithResolveState) {
|
||||||
|
|||||||
+2
-6
@@ -5,7 +5,6 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.analysis.low.level.api.fir.transformers
|
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.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.FirLazyBodiesCalculator
|
||||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.lazy.resolve.LLFirPhaseUpdater
|
import org.jetbrains.kotlin.analysis.low.level.api.fir.lazy.resolve.LLFirPhaseUpdater
|
||||||
@@ -44,11 +43,8 @@ internal class LLFirDesignatedTypeResolverTransformer(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun transformDeclaration(phaseRunner: LLFirPhaseRunner) {
|
override fun transformDeclaration() {
|
||||||
phaseRunner.runPhaseWithCustomResolve(FirResolvePhase.TYPES) {
|
designation.firFile.transform<FirFile, Any?>(this, null)
|
||||||
designation.firFile.transform<FirFile, Any?>(this, null)
|
|
||||||
}
|
|
||||||
|
|
||||||
declarationTransformer.ensureDesignationPassed()
|
declarationTransformer.ensureDesignationPassed()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+2
-3
@@ -6,12 +6,11 @@
|
|||||||
package org.jetbrains.kotlin.analysis.low.level.api.fir.transformers
|
package org.jetbrains.kotlin.analysis.low.level.api.fir.transformers
|
||||||
|
|
||||||
import org.jetbrains.annotations.TestOnly
|
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.FirElementWithResolveState
|
||||||
import org.jetbrains.kotlin.fir.declarations.*
|
import org.jetbrains.kotlin.fir.declarations.*
|
||||||
|
|
||||||
internal interface LLFirLazyTransformer {
|
internal interface LLFirLazyTransformer {
|
||||||
fun transformDeclaration(phaseRunner: LLFirPhaseRunner)
|
fun transformDeclaration()
|
||||||
|
|
||||||
fun checkIsResolved(target: FirElementWithResolveState)
|
fun checkIsResolved(target: FirElementWithResolveState)
|
||||||
|
|
||||||
@@ -64,7 +63,7 @@ internal interface LLFirLazyTransformer {
|
|||||||
@TestOnly set
|
@TestOnly set
|
||||||
|
|
||||||
val DUMMY = object : LLFirLazyTransformer {
|
val DUMMY = object : LLFirLazyTransformer {
|
||||||
override fun transformDeclaration(phaseRunner: LLFirPhaseRunner) {}
|
override fun transformDeclaration() {}
|
||||||
override fun checkIsResolved(target: FirElementWithResolveState) {}
|
override fun checkIsResolved(target: FirElementWithResolveState) {}
|
||||||
override fun updatePhaseForDeclarationInternals(target: FirElementWithResolveState) {}
|
override fun updatePhaseForDeclarationInternals(target: FirElementWithResolveState) {}
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-3
@@ -5,7 +5,6 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.analysis.low.level.api.fir.transformers
|
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.api.FirDesignationWithFile
|
||||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.file.builder.LLFirLockProvider
|
import org.jetbrains.kotlin.analysis.low.level.api.fir.file.builder.LLFirLockProvider
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirResolvePhase
|
import org.jetbrains.kotlin.fir.declarations.FirResolvePhase
|
||||||
@@ -18,7 +17,6 @@ internal object LLFirLazyTransformerExecutor {
|
|||||||
phase: FirResolvePhase,
|
phase: FirResolvePhase,
|
||||||
designation: FirDesignationWithFile,
|
designation: FirDesignationWithFile,
|
||||||
scopeSession: ScopeSession,
|
scopeSession: ScopeSession,
|
||||||
phaseRunner: LLFirPhaseRunner,
|
|
||||||
lockProvider: LLFirLockProvider,
|
lockProvider: LLFirLockProvider,
|
||||||
towerDataContextCollector: FirTowerDataContextCollector?
|
towerDataContextCollector: FirTowerDataContextCollector?
|
||||||
) {
|
) {
|
||||||
@@ -31,7 +29,7 @@ internal object LLFirLazyTransformerExecutor {
|
|||||||
)
|
)
|
||||||
|
|
||||||
lockProvider.withLock(designation.firFile) {
|
lockProvider.withLock(designation.firFile) {
|
||||||
lazyTransformer.transformDeclaration(phaseRunner)
|
lazyTransformer.transformDeclaration()
|
||||||
lazyTransformer.updatePhaseForDeclarationInternals(designation.target)
|
lazyTransformer.updatePhaseForDeclarationInternals(designation.target)
|
||||||
designation.target.replaceResolveState(phase.asResolveState())
|
designation.target.replaceResolveState(phase.asResolveState())
|
||||||
lazyTransformer.checkIsResolved(designation.target)
|
lazyTransformer.checkIsResolved(designation.target)
|
||||||
|
|||||||
Reference in New Issue
Block a user