[FIR] add lazy resolution contract checks in resolve

This commit is contained in:
Ilya Kirillov
2022-11-01 17:10:01 +01:00
committed by Space Team
parent df5aa59185
commit 7bac119f20
40 changed files with 390 additions and 86 deletions
@@ -18,6 +18,22 @@ import org.jetbrains.kotlin.fir.declarations.FirResolvePhase
* @see org.jetbrains.kotlin.fir.symbols.lazyResolveToPhase
*/
abstract class FirLazyDeclarationResolver : FirSessionComponent {
var lazyResolveContractChecksEnabled: Boolean = true
abstract fun startResolvingPhase(phase: FirResolvePhase)
abstract fun finishResolvingPhase(phase: FirResolvePhase)
inline fun disableLazyResolveContractChecksInside(action: () -> Unit) {
val current = lazyResolveContractChecksEnabled
lazyResolveContractChecksEnabled = false
try {
action()
} finally {
lazyResolveContractChecksEnabled = current
}
}
abstract fun lazyResolveToPhase(symbol: FirBasedSymbol<*>, toPhase: FirResolvePhase)
}