[LL API] Support on-air resolution in 'FirCodeFragment'

This commit is contained in:
Yan Zhulanow
2023-06-23 22:26:28 +09:00
committed by Space Team
parent e1db3c88cf
commit af51b41a8a
6 changed files with 68 additions and 29 deletions
@@ -21,6 +21,7 @@ import org.jetbrains.kotlin.analysis.low.level.api.fir.api.targets.LLFirWholeFil
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.targets.resolve
import org.jetbrains.kotlin.analysis.low.level.api.fir.compile.CodeFragmentCapturedValueAnalyzer
import org.jetbrains.kotlin.analysis.low.level.api.fir.compile.CompilationPeerCollector
import org.jetbrains.kotlin.analysis.low.level.api.fir.util.codeFragment
import org.jetbrains.kotlin.backend.common.extensions.IrGenerationExtension
import org.jetbrains.kotlin.backend.common.phaser.PhaseConfig
import org.jetbrains.kotlin.backend.jvm.*
@@ -39,7 +40,6 @@ import org.jetbrains.kotlin.diagnostics.KtPsiDiagnostic
import org.jetbrains.kotlin.diagnostics.Severity
import org.jetbrains.kotlin.fir.backend.*
import org.jetbrains.kotlin.fir.backend.jvm.*
import org.jetbrains.kotlin.fir.declarations.FirCodeFragment
import org.jetbrains.kotlin.fir.declarations.FirFile
import org.jetbrains.kotlin.fir.declarations.FirResolvePhase
import org.jetbrains.kotlin.fir.pipeline.applyIrGenerationExtensions
@@ -235,7 +235,7 @@ internal class KtFirCompilerFacility(
resolveSession: LLFirResolveSession,
configuration: CompilerConfiguration,
): CodeFragmentMappings {
val codeFragment = mainFirFile.declarations.single() as FirCodeFragment
val codeFragment = mainFirFile.codeFragment
val capturedData = CodeFragmentCapturedValueAnalyzer.analyze(resolveSession, codeFragment)