[LL FIR] return non-cancellable section back for resolve until cache invalidation problems (^KTIJ-24594) are fixed
^KTIJ-24594
This commit is contained in:
committed by
Space Team
parent
1ee93553df
commit
d03f523a71
+4
-1
@@ -8,6 +8,7 @@ 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.analysis.low.level.api.fir.util.executeWithoutPCE
|
||||
import org.jetbrains.kotlin.fir.declarations.FirResolvePhase
|
||||
import org.jetbrains.kotlin.fir.resolve.ScopeSession
|
||||
import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirTowerDataContextCollector
|
||||
@@ -30,7 +31,9 @@ internal class LLFirLazyTransformerExecutor {
|
||||
lockProvider,
|
||||
towerDataContextCollector
|
||||
)
|
||||
lazyTransformer.transformDeclaration(phaseRunner)
|
||||
executeWithoutPCE {
|
||||
lazyTransformer.transformDeclaration(phaseRunner)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+6
@@ -18,6 +18,12 @@ import org.jetbrains.kotlin.psi.psiUtil.isObjectLiteral
|
||||
import java.util.concurrent.TimeUnit
|
||||
import java.util.concurrent.locks.Lock
|
||||
|
||||
internal inline fun <T> executeWithoutPCE(crossinline action: () -> T): T {
|
||||
var result: T? = null
|
||||
ProgressManager.getInstance().executeNonCancelableSection { result = action() }
|
||||
@Suppress("UNCHECKED_CAST")
|
||||
return result as T
|
||||
}
|
||||
|
||||
internal inline fun <T> Lock.lockWithPCECheck(lockingIntervalMs: Long, action: () -> T): T {
|
||||
while (true) {
|
||||
|
||||
Reference in New Issue
Block a user