Fir2Ir: introduce Fir2IrExtensions

This allows us to remove DeclarationStubGenerator from Fir2IrConverter,
thus reducing dependency on descriptor-based code.
This commit is contained in:
Georgy Bronnikov
2021-12-07 20:02:03 +03:00
committed by Alexander Udalov
parent 6bc01f031c
commit 3c3c1be543
14 changed files with 158 additions and 46 deletions
@@ -32,6 +32,7 @@ import org.jetbrains.kotlin.fir.*
import org.jetbrains.kotlin.fir.backend.Fir2IrResult
import org.jetbrains.kotlin.fir.backend.jvm.FirJvmBackendClassResolver
import org.jetbrains.kotlin.fir.backend.jvm.FirJvmBackendExtension
import org.jetbrains.kotlin.fir.backend.jvm.JvmFir2IrExtensions
import org.jetbrains.kotlin.fir.checkers.registerExtendedCommonCheckers
import org.jetbrains.kotlin.fir.declarations.FirFile
import org.jetbrains.kotlin.fir.declarations.FirSimpleFunction
@@ -160,11 +161,15 @@ object FirKotlinToJvmBytecodeCompiler {
performanceManager?.notifyGenerationStarted()
performanceManager?.notifyIRTranslationStarted()
val extensions = JvmGeneratorExtensionsImpl(moduleConfiguration)
val fir2IrResult = firResult.session.convertToIr(firResult.scopeSession, firResult.fir, extensions, irGenerationExtensions)
val fir2IrResult = firResult.session.convertToIr(
firResult.scopeSession, firResult.fir,
JvmFir2IrExtensions(moduleConfiguration),
irGenerationExtensions
)
performanceManager?.notifyIRTranslationFinished()
val extensions = JvmGeneratorExtensionsImpl(moduleConfiguration)
val generationState = runBackend(
allSources,
fir2IrResult,