diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/file/builder/FirFileBuilder.kt b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/file/builder/FirFileBuilder.kt index dea402eba5d..b7ed1290047 100644 --- a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/file/builder/FirFileBuilder.kt +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/file/builder/FirFileBuilder.kt @@ -45,7 +45,7 @@ internal class FirFileBuilder( val firFile = buildRawFirFileWithCaching(ktFile, cache) if (toPhase > FirResolvePhase.RAW_FIR) { cache.firFileLockProvider.withLock(firFile) { - //add lock for implit type resolve phase & super type + if (firFile.resolvePhase >= toPhase) return@withLock runResolveWithoutLock(firFile, fromPhase = firFile.resolvePhase, toPhase = toPhase, checkPCE = checkPCE) } } diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/lazy/resolve/FirLazyDeclarationResolver.kt b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/lazy/resolve/FirLazyDeclarationResolver.kt index f267493158b..0e1c0189076 100644 --- a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/lazy/resolve/FirLazyDeclarationResolver.kt +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/lazy/resolve/FirLazyDeclarationResolver.kt @@ -75,6 +75,7 @@ internal class FirLazyDeclarationResolver( towerDataContextCollector: FirTowerDataContextCollector? = null, checkPCE: Boolean ) { + if (firDeclarationToResolve.resolvePhase >= toPhase) return val nonLazyPhase = minOf(toPhase, FirResolvePhase.DECLARATIONS) if (firDeclarationToResolve.resolvePhase < nonLazyPhase) { firFileBuilder.runResolveWithoutLock(