diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/file/builder/LLFirLockProvider.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/file/builder/LLFirLockProvider.kt index da4294b71d2..f1ff814627b 100644 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/file/builder/LLFirLockProvider.kt +++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/file/builder/LLFirLockProvider.kt @@ -39,21 +39,6 @@ internal class LLFirLockProvider(private val checker: LLFirLazyResolveContractCh return globalLock.lockWithPCECheck(lockingIntervalMs, action) } - /** - * A contract violation check to be sure that we won't request a violated phase later. - * This is useful to catch a contract violation for jumping phases because they may encounter infinite recursion. - * - * Example: we have cycle between phases 'implicit type (1) -> body (2) -> implicit type (3)` and - * we can get [StackOverflowError] because regular phases checks can't catch such case - * because will check only implicit type -> implicit type resolution due to - * sequent resolution requests - * - * @see org.jetbrains.kotlin.analysis.low.level.api.fir.lazy.resolve.LLFirModuleLazyDeclarationResolver - */ - fun checkContractViolations(toPhase: FirResolvePhase) { - checker.checkIfCanLazyResolveToPhase(toPhase, isJumpingPhase = true) - } - /** * Locks an a [FirElementWithResolveState] to resolve from `phase - 1` to [phase] and * then updates the [FirElementWithResolveState.resolveState] to a [phase]. 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 176b841f06a..c9df58e040b 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 @@ -122,9 +122,6 @@ internal class LLFirModuleLazyDeclarationResolver(val moduleComponents: LLFirMod var currentPhase = getMinResolvePhase(target).coerceAtLeast(FirResolvePhase.IMPORTS) if (currentPhase >= toPhase) return - // to catch a contract violation for jumping phases - moduleComponents.globalResolveComponents.lockProvider.checkContractViolations(toPhase) - while (currentPhase < toPhase) { currentPhase = currentPhase.next checkCanceled()