From 89f37816a88100dfd7e896cda92d3843a49930c3 Mon Sep 17 00:00:00 2001 From: Ilya Kirillov Date: Wed, 4 Jan 2023 16:54:33 +0100 Subject: [PATCH] [FIR] disable lazy resolve contract checks for FIR2IR --- .../src/org/jetbrains/kotlin/fir/backend/Fir2IrConverter.kt | 2 ++ .../kotlin/fir/symbols/FirLazyDeclarationResolver.kt | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrConverter.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrConverter.kt index 54218b1e371..ba8334f1f9c 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrConverter.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrConverter.kt @@ -32,6 +32,7 @@ import org.jetbrains.kotlin.fir.extensions.generatedNestedClassifiers import org.jetbrains.kotlin.fir.resolve.ScopeSession import org.jetbrains.kotlin.fir.signaturer.FirBasedSignatureComposer import org.jetbrains.kotlin.fir.signaturer.FirMangler +import org.jetbrains.kotlin.fir.symbols.lazyDeclarationResolver import org.jetbrains.kotlin.ir.PsiIrFileEntry import org.jetbrains.kotlin.ir.declarations.* import org.jetbrains.kotlin.ir.declarations.impl.IrFileImpl @@ -60,6 +61,7 @@ class Fir2IrConverter( fir2irVisitor: Fir2IrVisitor, fir2IrExtensions: Fir2IrExtensions, ) { + session.lazyDeclarationResolver.disableLazyResolveContractChecks() for (firFile in allFirFiles) { registerFileAndClasses(firFile, irModuleFragment) } diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/symbols/FirLazyDeclarationResolver.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/symbols/FirLazyDeclarationResolver.kt index 7c0ebe8cb72..60d06caaab3 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/symbols/FirLazyDeclarationResolver.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/symbols/FirLazyDeclarationResolver.kt @@ -24,6 +24,10 @@ abstract class FirLazyDeclarationResolver : FirSessionComponent { abstract fun finishResolvingPhase(phase: FirResolvePhase) + fun disableLazyResolveContractChecks(){ + lazyResolveContractChecksEnabled = false + } + inline fun disableLazyResolveContractChecksInside(action: () -> Unit) { val current = lazyResolveContractChecksEnabled lazyResolveContractChecksEnabled = false