diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostics/fir/PersistentCheckerContextFactory.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostics/fir/PersistentCheckerContextFactory.kt index be54cc33ea6..551c9fb1182 100644 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostics/fir/PersistentCheckerContextFactory.kt +++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostics/fir/PersistentCheckerContextFactory.kt @@ -5,7 +5,6 @@ package org.jetbrains.kotlin.analysis.low.level.api.fir.diagnostics.fir -import org.jetbrains.kotlin.analysis.low.level.api.fir.LLFirGlobalResolveComponents import org.jetbrains.kotlin.analysis.low.level.api.fir.element.builder.LLFirReturnTypeCalculatorWithJump import org.jetbrains.kotlin.analysis.low.level.api.fir.transformers.LLImplicitBodyResolveComputationSession import org.jetbrains.kotlin.fir.analysis.checkers.context.PersistentCheckerContext @@ -16,7 +15,6 @@ internal object PersistentCheckerContextFactory { val returnTypeCalculator = LLFirReturnTypeCalculatorWithJump( scopeSession = sessionHolder.scopeSession, implicitBodyResolveComputationSession = LLImplicitBodyResolveComputationSession(), - lockProvider = LLFirGlobalResolveComponents.getInstance(sessionHolder.session).lockProvider, ) return PersistentCheckerContext(sessionHolder, returnTypeCalculator) 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 b8662110475..33198572822 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 @@ -8,7 +8,6 @@ package org.jetbrains.kotlin.analysis.low.level.api.fir.transformers import org.jetbrains.kotlin.analysis.low.level.api.fir.api.FirDesignation import org.jetbrains.kotlin.analysis.low.level.api.fir.api.targets.LLFirResolveTarget import org.jetbrains.kotlin.analysis.low.level.api.fir.element.builder.LLFirReturnTypeCalculatorWithJump -import org.jetbrains.kotlin.analysis.low.level.api.fir.file.builder.LLFirLockProvider import org.jetbrains.kotlin.analysis.low.level.api.fir.lazy.resolve.FirLazyBodiesCalculator import org.jetbrains.kotlin.fir.FirElementWithResolveState import org.jetbrains.kotlin.fir.declarations.* @@ -18,15 +17,13 @@ import org.jetbrains.kotlin.fir.visitors.transformSingle internal abstract class LLFirAbstractBodyTargetResolver( resolveTarget: LLFirResolveTarget, - lockProvider: LLFirLockProvider, resolvePhase: FirResolvePhase, protected val llImplicitBodyResolveComputationSession: LLImplicitBodyResolveComputationSession = LLImplicitBodyResolveComputationSession(), isJumpingPhase: Boolean = false, -) : LLFirTargetResolver(resolveTarget, lockProvider, resolvePhase, isJumpingPhase) { +) : LLFirTargetResolver(resolveTarget, resolvePhase, isJumpingPhase) { protected fun createReturnTypeCalculator(): LLFirReturnTypeCalculatorWithJump = LLFirReturnTypeCalculatorWithJump( resolveTargetScopeSession, llImplicitBodyResolveComputationSession, - lockProvider, ) abstract val transformer: FirAbstractBodyResolveTransformerDispatcher 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 5be91d4663e..bb803810641 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 @@ -7,7 +7,6 @@ package org.jetbrains.kotlin.analysis.low.level.api.fir.transformers import org.jetbrains.kotlin.analysis.low.level.api.fir.api.targets.LLFirResolveTarget import org.jetbrains.kotlin.analysis.low.level.api.fir.api.throwUnexpectedFirElementError -import org.jetbrains.kotlin.analysis.low.level.api.fir.file.builder.LLFirLockProvider import org.jetbrains.kotlin.analysis.low.level.api.fir.lazy.resolve.FirLazyBodiesCalculator import org.jetbrains.kotlin.analysis.low.level.api.fir.sessions.llFirSession import org.jetbrains.kotlin.analysis.low.level.api.fir.util.AnnotationVisitorVoid @@ -29,10 +28,7 @@ import org.jetbrains.kotlin.fir.visitors.FirVisitorVoid import org.jetbrains.kotlin.fir.visitors.transformSingle internal object LLFirAnnotationArgumentsLazyResolver : LLFirLazyResolver(FirResolvePhase.ANNOTATION_ARGUMENTS) { - override fun createTargetResolver( - target: LLFirResolveTarget, - lockProvider: LLFirLockProvider, - ): LLFirTargetResolver = LLFirAnnotationArgumentsTargetResolver(target, lockProvider) + override fun createTargetResolver(target: LLFirResolveTarget): LLFirTargetResolver = LLFirAnnotationArgumentsTargetResolver(target) override fun phaseSpecificCheckIsResolved(target: FirElementWithResolveState) { if (target !is FirAnnotationContainer) return @@ -71,12 +67,8 @@ internal object LLFirAnnotationArgumentsLazyResolver : LLFirLazyResolver(FirReso } } -private class LLFirAnnotationArgumentsTargetResolver( - resolveTarget: LLFirResolveTarget, - lockProvider: LLFirLockProvider, -) : LLFirAbstractBodyTargetResolver( +private class LLFirAnnotationArgumentsTargetResolver(resolveTarget: LLFirResolveTarget) : LLFirAbstractBodyTargetResolver( resolveTarget, - lockProvider, FirResolvePhase.ANNOTATION_ARGUMENTS, ) { /** 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 d201fbf0769..8c492ca6846 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 @@ -11,7 +11,6 @@ import org.jetbrains.kotlin.analysis.low.level.api.fir.api.getModule import org.jetbrains.kotlin.analysis.low.level.api.fir.api.targets.LLFirResolveTarget import org.jetbrains.kotlin.analysis.low.level.api.fir.api.throwUnexpectedFirElementError import org.jetbrains.kotlin.analysis.low.level.api.fir.compile.codeFragmentScopeProvider -import org.jetbrains.kotlin.analysis.low.level.api.fir.file.builder.LLFirLockProvider import org.jetbrains.kotlin.analysis.low.level.api.fir.file.structure.LLFirDeclarationModificationService import org.jetbrains.kotlin.analysis.low.level.api.fir.project.structure.llFirModuleData import org.jetbrains.kotlin.analysis.low.level.api.fir.state.LLFirResolvableResolveSession @@ -51,10 +50,7 @@ import org.jetbrains.kotlin.utils.exceptions.errorWithAttachment import org.jetbrains.kotlin.utils.exceptions.withPsiEntry internal object LLFirBodyLazyResolver : LLFirLazyResolver(FirResolvePhase.BODY_RESOLVE) { - override fun createTargetResolver( - target: LLFirResolveTarget, - lockProvider: LLFirLockProvider, - ): LLFirTargetResolver = LLFirBodyTargetResolver(target, lockProvider) + override fun createTargetResolver(target: LLFirResolveTarget): LLFirTargetResolver = LLFirBodyTargetResolver(target) override fun phaseSpecificCheckIsResolved(target: FirElementWithResolveState) { when (target) { @@ -69,12 +65,8 @@ internal object LLFirBodyLazyResolver : LLFirLazyResolver(FirResolvePhase.BODY_R } } -private class LLFirBodyTargetResolver( - target: LLFirResolveTarget, - lockProvider: LLFirLockProvider, -) : LLFirAbstractBodyTargetResolver( +private class LLFirBodyTargetResolver(target: LLFirResolveTarget) : LLFirAbstractBodyTargetResolver( target, - lockProvider, FirResolvePhase.BODY_RESOLVE, ) { override val transformer = object : FirBodyResolveTransformer( 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 2cc841c67ec..dc7eb07035b 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 @@ -9,7 +9,6 @@ import org.jetbrains.kotlin.analysis.low.level.api.fir.api.collectDesignation import org.jetbrains.kotlin.analysis.low.level.api.fir.api.targets.LLFirResolveTarget import org.jetbrains.kotlin.analysis.low.level.api.fir.api.targets.asResolveTarget import org.jetbrains.kotlin.analysis.low.level.api.fir.api.throwUnexpectedFirElementError -import org.jetbrains.kotlin.analysis.low.level.api.fir.file.builder.LLFirLockProvider import org.jetbrains.kotlin.analysis.low.level.api.fir.lazy.resolve.FirLazyBodiesCalculator import org.jetbrains.kotlin.analysis.low.level.api.fir.sessions.llFirSession import org.jetbrains.kotlin.analysis.low.level.api.fir.util.checkDeprecationProviderIsResolved @@ -34,8 +33,7 @@ import org.jetbrains.kotlin.util.PrivateForInline internal object LLFirCompilerAnnotationsLazyResolver : LLFirLazyResolver(FirResolvePhase.COMPILER_REQUIRED_ANNOTATIONS) { override fun createTargetResolver( target: LLFirResolveTarget, - lockProvider: LLFirLockProvider, - ): LLFirTargetResolver = LLFirCompilerRequiredAnnotationsTargetResolver(target, lockProvider) + ): LLFirTargetResolver = LLFirCompilerRequiredAnnotationsTargetResolver(target) override fun phaseSpecificCheckIsResolved(target: FirElementWithResolveState) { when (target) { @@ -47,9 +45,8 @@ internal object LLFirCompilerAnnotationsLazyResolver : LLFirLazyResolver(FirReso private class LLFirCompilerRequiredAnnotationsTargetResolver( target: LLFirResolveTarget, - lockProvider: LLFirLockProvider, computationSession: LLFirCompilerRequiredAnnotationsComputationSession? = null, -) : LLFirTargetResolver(target, lockProvider, FirResolvePhase.COMPILER_REQUIRED_ANNOTATIONS, isJumpingPhase = false) { +) : LLFirTargetResolver(target, FirResolvePhase.COMPILER_REQUIRED_ANNOTATIONS, isJumpingPhase = false) { inner class LLFirCompilerRequiredAnnotationsComputationSession : CompilerRequiredAnnotationsComputationSession() { override fun resolveAnnotationSymbol(symbol: FirRegularClassSymbol, scopeSession: ScopeSession) { val regularClass = symbol.fir @@ -59,7 +56,6 @@ private class LLFirCompilerRequiredAnnotationsTargetResolver( val designation = regularClass.collectDesignation().asResolveTarget() val resolver = LLFirCompilerRequiredAnnotationsTargetResolver( designation, - lockProvider, this, ) 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 0a3f51c63db..007d3b39972 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 @@ -8,7 +8,6 @@ package org.jetbrains.kotlin.analysis.low.level.api.fir.transformers import org.jetbrains.kotlin.analysis.low.level.api.fir.api.FirDesignation import org.jetbrains.kotlin.analysis.low.level.api.fir.api.targets.LLFirResolveTarget import org.jetbrains.kotlin.analysis.low.level.api.fir.api.throwUnexpectedFirElementError -import org.jetbrains.kotlin.analysis.low.level.api.fir.file.builder.LLFirLockProvider import org.jetbrains.kotlin.analysis.low.level.api.fir.util.blockGuard import org.jetbrains.kotlin.analysis.low.level.api.fir.util.checkContractDescriptionIsResolved import org.jetbrains.kotlin.analysis.low.level.api.fir.util.isCallableWithSpecialBody @@ -22,10 +21,7 @@ import org.jetbrains.kotlin.fir.resolve.transformers.contracts.FirContractResolv import org.jetbrains.kotlin.fir.types.FirImplicitTypeRef internal object LLFirContractsLazyResolver : LLFirLazyResolver(FirResolvePhase.CONTRACTS) { - override fun createTargetResolver( - target: LLFirResolveTarget, - lockProvider: LLFirLockProvider, - ): LLFirTargetResolver = LLFirContractsTargetResolver(target, lockProvider) + override fun createTargetResolver(target: LLFirResolveTarget): LLFirTargetResolver = LLFirContractsTargetResolver(target) override fun phaseSpecificCheckIsResolved(target: FirElementWithResolveState) { if (target !is FirContractDescriptionOwner) return @@ -33,12 +29,8 @@ internal object LLFirContractsLazyResolver : LLFirLazyResolver(FirResolvePhase.C } } -private class LLFirContractsTargetResolver( - target: LLFirResolveTarget, - lockProvider: LLFirLockProvider, -) : LLFirAbstractBodyTargetResolver( +private class LLFirContractsTargetResolver(target: LLFirResolveTarget) : LLFirAbstractBodyTargetResolver( target, - lockProvider, FirResolvePhase.CONTRACTS, ) { override val transformer = FirContractResolveTransformer(resolveTargetSession, resolveTargetScopeSession) 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 a0479c8c757..324115a4737 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 @@ -6,7 +6,6 @@ package org.jetbrains.kotlin.analysis.low.level.api.fir.transformers import org.jetbrains.kotlin.analysis.low.level.api.fir.api.targets.LLFirResolveTarget -import org.jetbrains.kotlin.analysis.low.level.api.fir.file.builder.LLFirLockProvider import org.jetbrains.kotlin.analysis.low.level.api.fir.util.checkExpectForActualIsResolved import org.jetbrains.kotlin.config.LanguageFeature import org.jetbrains.kotlin.fir.FirElementWithResolveState @@ -18,10 +17,7 @@ import org.jetbrains.kotlin.fir.resolve.transformers.mpp.FirExpectActualMatcherT import org.jetbrains.kotlin.fir.symbols.lazyResolveToPhase internal object LLFirExpectActualMatcherLazyResolver : LLFirLazyResolver(FirResolvePhase.EXPECT_ACTUAL_MATCHING) { - override fun createTargetResolver( - target: LLFirResolveTarget, - lockProvider: LLFirLockProvider, - ): LLFirTargetResolver = LLFirExpectActualMatchingTargetResolver(target, lockProvider) + override fun createTargetResolver(target: LLFirResolveTarget): LLFirTargetResolver = LLFirExpectActualMatchingTargetResolver(target) override fun phaseSpecificCheckIsResolved(target: FirElementWithResolveState) { if (target.moduleData.session.languageVersionSettings.supportsFeature(LanguageFeature.MultiPlatformProjects) && @@ -33,10 +29,10 @@ internal object LLFirExpectActualMatcherLazyResolver : LLFirLazyResolver(FirReso } } -private class LLFirExpectActualMatchingTargetResolver( - target: LLFirResolveTarget, - lockProvider: LLFirLockProvider, -) : LLFirTargetResolver(target, lockProvider, FirResolvePhase.EXPECT_ACTUAL_MATCHING) { +private class LLFirExpectActualMatchingTargetResolver(target: LLFirResolveTarget) : LLFirTargetResolver( + target, + FirResolvePhase.EXPECT_ACTUAL_MATCHING +) { private val enabled = resolveTargetSession.languageVersionSettings.supportsFeature(LanguageFeature.MultiPlatformProjects) @Deprecated("Should never be called directly, only for override purposes, please use withRegularClass", level = DeprecationLevel.ERROR) 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 ce9fafde45f..bc59a12f123 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 @@ -6,25 +6,21 @@ package org.jetbrains.kotlin.analysis.low.level.api.fir.transformers import org.jetbrains.kotlin.analysis.low.level.api.fir.api.targets.LLFirResolveTarget -import org.jetbrains.kotlin.analysis.low.level.api.fir.file.builder.LLFirLockProvider import org.jetbrains.kotlin.fir.FirElementWithResolveState import org.jetbrains.kotlin.fir.declarations.FirRegularClass import org.jetbrains.kotlin.fir.declarations.FirResolvePhase import org.jetbrains.kotlin.fir.resolve.transformers.plugin.FirCompanionGenerationTransformer internal object LLFirGeneratedCompanionObjectLazyResolver : LLFirLazyResolver(FirResolvePhase.COMPANION_GENERATION) { - override fun createTargetResolver( - target: LLFirResolveTarget, - lockProvider: LLFirLockProvider, - ): LLFirTargetResolver = LLFirCompanionGenerationTargetResolver(target, lockProvider) + override fun createTargetResolver(target: LLFirResolveTarget): LLFirTargetResolver = LLFirCompanionGenerationTargetResolver(target) override fun phaseSpecificCheckIsResolved(target: FirElementWithResolveState) {} } -private class LLFirCompanionGenerationTargetResolver( - target: LLFirResolveTarget, - lockProvider: LLFirLockProvider, -) : LLFirTargetResolver(target, lockProvider, FirResolvePhase.COMPANION_GENERATION) { +private class LLFirCompanionGenerationTargetResolver(target: LLFirResolveTarget) : LLFirTargetResolver( + target, + FirResolvePhase.COMPANION_GENERATION, +) { private val transformer: FirCompanionGenerationTransformer = FirCompanionGenerationTransformer(resolveTargetSession) override fun doLazyResolveUnderLock(target: FirElementWithResolveState) { 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 8bcae9b9bf9..f0d5f07ef7b 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 @@ -7,7 +7,6 @@ package org.jetbrains.kotlin.analysis.low.level.api.fir.transformers import org.jetbrains.kotlin.analysis.low.level.api.fir.api.targets.LLFirResolveTarget import org.jetbrains.kotlin.analysis.low.level.api.fir.api.throwUnexpectedFirElementError -import org.jetbrains.kotlin.analysis.low.level.api.fir.file.builder.LLFirLockProvider import org.jetbrains.kotlin.analysis.low.level.api.fir.file.structure.LLFirDeclarationModificationService import org.jetbrains.kotlin.analysis.low.level.api.fir.util.checkReturnTypeRefIsResolved import org.jetbrains.kotlin.fir.FirElementWithResolveState @@ -27,10 +26,7 @@ import org.jetbrains.kotlin.utils.exceptions.errorWithAttachment import org.jetbrains.kotlin.utils.exceptions.requireWithAttachment internal object LLFirImplicitTypesLazyResolver : LLFirLazyResolver(FirResolvePhase.IMPLICIT_TYPES_BODY_RESOLVE) { - override fun createTargetResolver( - target: LLFirResolveTarget, - lockProvider: LLFirLockProvider, - ): LLFirTargetResolver = LLFirImplicitBodyTargetResolver(target, lockProvider) + override fun createTargetResolver(target: LLFirResolveTarget): LLFirTargetResolver = LLFirImplicitBodyTargetResolver(target) override fun phaseSpecificCheckIsResolved(target: FirElementWithResolveState) { if (target !is FirCallableDeclaration) return @@ -123,11 +119,9 @@ internal class LLImplicitBodyResolveComputationSession : ImplicitBodyResolveComp internal class LLFirImplicitBodyTargetResolver( target: LLFirResolveTarget, - lockProvider: LLFirLockProvider, llImplicitBodyResolveComputationSessionParameter: LLImplicitBodyResolveComputationSession? = null, ) : LLFirAbstractBodyTargetResolver( target, - lockProvider, FirResolvePhase.IMPLICIT_TYPES_BODY_RESOLVE, llImplicitBodyResolveComputationSession = llImplicitBodyResolveComputationSessionParameter ?: LLImplicitBodyResolveComputationSession(), isJumpingPhase = true, 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 c83b03a0bcf..f4cbc41edd0 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 @@ -6,7 +6,6 @@ package org.jetbrains.kotlin.analysis.low.level.api.fir.transformers import org.jetbrains.kotlin.analysis.low.level.api.fir.api.targets.LLFirResolveTarget -import org.jetbrains.kotlin.analysis.low.level.api.fir.file.builder.LLFirLockProvider import org.jetbrains.kotlin.analysis.low.level.api.fir.lazy.resolve.LLFirPhaseUpdater import org.jetbrains.kotlin.analysis.low.level.api.fir.util.checkPhase import org.jetbrains.kotlin.fir.FirElementWithResolveState @@ -20,8 +19,8 @@ import org.jetbrains.kotlin.utils.exceptions.requireWithAttachment * @see LLFirTargetResolver */ internal abstract class LLFirLazyResolver(val resolverPhase: FirResolvePhase) { - fun resolve(target: LLFirResolveTarget, lockProvider: LLFirLockProvider) { - val resolver = createTargetResolver(target, lockProvider) + fun resolve(target: LLFirResolveTarget) { + val resolver = createTargetResolver(target) requireWithAttachment( resolverPhase == resolver.resolverPhase, { @@ -35,10 +34,7 @@ internal abstract class LLFirLazyResolver(val resolverPhase: FirResolvePhase) { resolver.resolveDesignation() } - protected abstract fun createTargetResolver( - target: LLFirResolveTarget, - lockProvider: LLFirLockProvider, - ): LLFirTargetResolver + protected abstract fun createTargetResolver(target: LLFirResolveTarget): LLFirTargetResolver fun checkIsResolved(target: FirElementWithResolveState) { target.checkPhase(resolverPhase) 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 9402ebe16fb..588cb292bea 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 @@ -19,7 +19,7 @@ internal object LLFirLazyResolverRunner { val lockProvider = LLFirGlobalResolveComponents.getInstance(target.session).lockProvider lockProvider.withGlobalLock { lockProvider.withGlobalPhaseLock(phase) { - lazyResolver.resolve(target, lockProvider) + lazyResolver.resolve(target) } } 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 8483c3a70b8..0527a8ab4c6 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 @@ -5,9 +5,10 @@ package org.jetbrains.kotlin.analysis.low.level.api.fir.element.builder +import org.jetbrains.kotlin.analysis.low.level.api.fir.LLFirGlobalResolveComponents import org.jetbrains.kotlin.analysis.low.level.api.fir.api.collectDesignation import org.jetbrains.kotlin.analysis.low.level.api.fir.api.targets.asResolveTarget -import org.jetbrains.kotlin.analysis.low.level.api.fir.file.builder.LLFirLockProvider +import org.jetbrains.kotlin.analysis.low.level.api.fir.api.targets.session 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.analysis.low.level.api.fir.transformers.LLImplicitBodyResolveComputationSession @@ -21,7 +22,6 @@ import org.jetbrains.kotlin.fir.types.FirResolvedTypeRef internal class LLFirReturnTypeCalculatorWithJump( scopeSession: ScopeSession, implicitBodyResolveComputationSession: LLImplicitBodyResolveComputationSession, - private val lockProvider: LLFirLockProvider, ) : ReturnTypeCalculatorWithJump(scopeSession, implicitBodyResolveComputationSession) { override fun resolveDeclaration(declaration: FirCallableDeclaration): FirResolvedTypeRef { if (declaration.returnTypeRef !is FirImplicitTypeRef) { @@ -34,11 +34,10 @@ internal class LLFirReturnTypeCalculatorWithJump( val computationSession = implicitBodyResolveComputationSession as LLImplicitBodyResolveComputationSession val resolver = LLFirImplicitBodyTargetResolver( designation, - lockProvider = lockProvider, llImplicitBodyResolveComputationSessionParameter = computationSession, ) - lockProvider.withGlobalPhaseLock(FirResolvePhase.IMPLICIT_TYPES_BODY_RESOLVE) { + LLFirGlobalResolveComponents.getInstance(designation.session).lockProvider.withGlobalPhaseLock(FirResolvePhase.IMPLICIT_TYPES_BODY_RESOLVE) { resolver.resolveDesignation() } 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 f81a607b341..1180f74a0c8 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 @@ -6,24 +6,22 @@ package org.jetbrains.kotlin.analysis.low.level.api.fir.transformers import org.jetbrains.kotlin.analysis.low.level.api.fir.api.targets.LLFirResolveTarget -import org.jetbrains.kotlin.analysis.low.level.api.fir.file.builder.LLFirLockProvider import org.jetbrains.kotlin.fir.FirElementWithResolveState import org.jetbrains.kotlin.fir.declarations.FirResolvePhase internal object LLFirSealedClassInheritorsLazyResolver : LLFirLazyResolver(FirResolvePhase.SEALED_CLASS_INHERITORS) { override fun createTargetResolver( target: LLFirResolveTarget, - lockProvider: LLFirLockProvider, - ): LLFirTargetResolver = LLFirSealedClassInheritorsDesignatedResolver(target, lockProvider) + ): LLFirTargetResolver = LLFirSealedClassInheritorsDesignatedResolver(target) override fun phaseSpecificCheckIsResolved(target: FirElementWithResolveState) {} } -private class LLFirSealedClassInheritorsDesignatedResolver( - target: LLFirResolveTarget, - lockProvider: LLFirLockProvider, -) : LLFirTargetResolver(target, lockProvider, FirResolvePhase.SEALED_CLASS_INHERITORS) { +private class LLFirSealedClassInheritorsDesignatedResolver(target: LLFirResolveTarget) : LLFirTargetResolver( + target, + FirResolvePhase.SEALED_CLASS_INHERITORS, +) { override fun doLazyResolveUnderLock(target: FirElementWithResolveState) { // just update the phase } 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 5a580825407..eb7059919e2 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 @@ -10,7 +10,6 @@ import org.jetbrains.kotlin.analysis.low.level.api.fir.api.targets.LLFirSingleRe import org.jetbrains.kotlin.analysis.low.level.api.fir.api.targets.asResolveTarget import org.jetbrains.kotlin.analysis.low.level.api.fir.api.targets.session import org.jetbrains.kotlin.analysis.low.level.api.fir.api.tryCollectDesignation -import org.jetbrains.kotlin.analysis.low.level.api.fir.file.builder.LLFirLockProvider import org.jetbrains.kotlin.analysis.low.level.api.fir.util.checkDeclarationStatusIsResolved import org.jetbrains.kotlin.fir.FirElementWithResolveState import org.jetbrains.kotlin.fir.FirSession @@ -29,12 +28,8 @@ import org.jetbrains.kotlin.fir.visitors.transformSingle import org.jetbrains.kotlin.name.Name internal object LLFirStatusLazyResolver : LLFirLazyResolver(FirResolvePhase.STATUS) { - override fun createTargetResolver( - target: LLFirResolveTarget, - lockProvider: LLFirLockProvider, - ): LLFirTargetResolver = LLFirStatusTargetResolver( + override fun createTargetResolver(target: LLFirResolveTarget): LLFirTargetResolver = LLFirStatusTargetResolver( target = target, - lockProvider = lockProvider, resolveMode = target.resolveMode(), ) @@ -98,10 +93,9 @@ private class LLStatusComputationSession(val useSiteSession: FirSession) : Statu private class LLFirStatusTargetResolver( target: LLFirResolveTarget, - lockProvider: LLFirLockProvider, private val statusComputationSession: LLStatusComputationSession = LLStatusComputationSession(target.session), private val resolveMode: StatusResolveMode, -) : LLFirTargetResolver(target, lockProvider, FirResolvePhase.STATUS, isJumpingPhase = false) { +) : LLFirTargetResolver(target, FirResolvePhase.STATUS, isJumpingPhase = false) { private val transformer = Transformer(resolveTargetSession, resolveTargetScopeSession) @Deprecated("Should never be called directly, only for override purposes, please use withRegularClass", level = DeprecationLevel.ERROR) @@ -250,7 +244,6 @@ private class LLFirStatusTargetResolver( val target = regularClass.tryCollectDesignation()?.asResolveTarget() ?: return false val resolver = LLFirStatusTargetResolver( target, - lockProvider, computationSession, resolveMode = resolveMode, ) 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 c640756ccff..c8d7c6ecbb3 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 @@ -10,7 +10,6 @@ import org.jetbrains.kotlin.analysis.low.level.api.fir.api.targets.LLFirSingleRe import org.jetbrains.kotlin.analysis.low.level.api.fir.api.targets.asResolveTarget import org.jetbrains.kotlin.analysis.low.level.api.fir.api.targets.session import org.jetbrains.kotlin.analysis.low.level.api.fir.api.tryCollectDesignation -import org.jetbrains.kotlin.analysis.low.level.api.fir.file.builder.LLFirLockProvider import org.jetbrains.kotlin.analysis.low.level.api.fir.sessions.LLFirSession import org.jetbrains.kotlin.analysis.low.level.api.fir.sessions.llFirSession import org.jetbrains.kotlin.analysis.low.level.api.fir.util.checkTypeRefIsResolved @@ -32,10 +31,7 @@ import org.jetbrains.kotlin.fir.symbols.lazyResolveToPhase import org.jetbrains.kotlin.fir.types.* internal object LLFirSupertypeLazyResolver : LLFirLazyResolver(FirResolvePhase.SUPER_TYPES) { - override fun createTargetResolver( - target: LLFirResolveTarget, - lockProvider: LLFirLockProvider, - ): LLFirTargetResolver = LLFirSuperTypeTargetResolver(target, lockProvider) + override fun createTargetResolver(target: LLFirResolveTarget): LLFirTargetResolver = LLFirSuperTypeTargetResolver(target) override fun phaseSpecificCheckIsResolved(target: FirElementWithResolveState) { when (target) { @@ -54,10 +50,9 @@ internal object LLFirSupertypeLazyResolver : LLFirLazyResolver(FirResolvePhase.S private class LLFirSuperTypeTargetResolver( target: LLFirResolveTarget, - lockProvider: LLFirLockProvider, private val supertypeComputationSession: LLFirSupertypeComputationSession = LLFirSupertypeComputationSession(target.session), private val visitedElements: MutableSet = hashSetOf(), -) : LLFirTargetResolver(target, lockProvider, FirResolvePhase.SUPER_TYPES, isJumpingPhase = false) { +) : LLFirTargetResolver(target, FirResolvePhase.SUPER_TYPES, isJumpingPhase = false) { private val supertypeResolver = object : FirSupertypeResolverVisitor( session = resolveTargetSession, supertypeComputationSession = supertypeComputationSession, @@ -181,7 +176,6 @@ private class LLFirSuperTypeTargetResolver( private fun resolveToSupertypePhase(target: LLFirSingleResolveTarget) { LLFirSuperTypeTargetResolver( target = target, - lockProvider = lockProvider, supertypeComputationSession = supertypeComputationSession, visitedElements = visitedElements, ).resolveDesignation() diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirTargetResolver.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirTargetResolver.kt index 24741207eba..3dff39d9e66 100644 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirTargetResolver.kt +++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirTargetResolver.kt @@ -5,6 +5,7 @@ package org.jetbrains.kotlin.analysis.low.level.api.fir.transformers +import org.jetbrains.kotlin.analysis.low.level.api.fir.LLFirGlobalResolveComponents import org.jetbrains.kotlin.analysis.low.level.api.fir.api.targets.* import org.jetbrains.kotlin.analysis.low.level.api.fir.file.builder.LLFirLockProvider import org.jetbrains.kotlin.analysis.low.level.api.fir.sessions.LLFirSession @@ -39,12 +40,12 @@ import org.jetbrains.kotlin.utils.exceptions.requireWithAttachment internal abstract class LLFirTargetResolver( protected val resolveTarget: LLFirResolveTarget, - protected val lockProvider: LLFirLockProvider, val resolverPhase: FirResolvePhase, private val isJumpingPhase: Boolean = false, ) : LLFirResolveTargetVisitor { val resolveTargetSession: LLFirSession get() = resolveTarget.session val resolveTargetScopeSession: ScopeSession get() = resolveTargetSession.getScopeSession() + private val lockProvider: LLFirLockProvider get() = LLFirGlobalResolveComponents.getInstance(resolveTargetSession).lockProvider private val _containingDeclarations = mutableListOf() 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 962ad4d4e52..d94d106327f 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 @@ -6,7 +6,6 @@ package org.jetbrains.kotlin.analysis.low.level.api.fir.transformers import org.jetbrains.kotlin.analysis.low.level.api.fir.api.targets.LLFirResolveTarget -import org.jetbrains.kotlin.analysis.low.level.api.fir.file.builder.LLFirLockProvider import org.jetbrains.kotlin.analysis.low.level.api.fir.lazy.resolve.FirLazyBodiesCalculator import org.jetbrains.kotlin.analysis.low.level.api.fir.util.checkAnnotationTypeIsResolved import org.jetbrains.kotlin.analysis.low.level.api.fir.util.checkContextReceiverTypeRefIsResolved @@ -28,10 +27,7 @@ import org.jetbrains.kotlin.util.PrivateForInline import org.jetbrains.kotlin.utils.exceptions.errorWithAttachment internal object LLFirTypeLazyResolver : LLFirLazyResolver(FirResolvePhase.TYPES) { - override fun createTargetResolver( - target: LLFirResolveTarget, - lockProvider: LLFirLockProvider, - ): LLFirTargetResolver = LLFirTypeTargetResolver(target, lockProvider) + override fun createTargetResolver(target: LLFirResolveTarget): LLFirTargetResolver = LLFirTypeTargetResolver(target) override fun phaseSpecificCheckIsResolved(target: FirElementWithResolveState) { if (target is FirAnnotationContainer) { @@ -60,10 +56,7 @@ internal object LLFirTypeLazyResolver : LLFirLazyResolver(FirResolvePhase.TYPES) } } -private class LLFirTypeTargetResolver( - target: LLFirResolveTarget, - lockProvider: LLFirLockProvider, -) : LLFirTargetResolver(target, lockProvider, FirResolvePhase.TYPES) { +private class LLFirTypeTargetResolver(target: LLFirResolveTarget) : LLFirTargetResolver(target, FirResolvePhase.TYPES) { private val transformer = object : FirTypeResolveTransformer(resolveTargetSession, resolveTargetScopeSession) { override fun transformTypeRef(typeRef: FirTypeRef, data: Any?): FirResolvedTypeRef { FirLazyBodiesCalculator.calculateAnnotations(typeRef, session)