[Test] Drop convertToIr method from AbstractFirAnalyzerFacade
We are going to use `convertToIr` from `ModuleCompilerAnalyzedOutput` without an intermediate wrapper.
This commit is contained in:
+19
-16
@@ -15,6 +15,7 @@ import org.jetbrains.kotlin.analyzer.AnalysisResult
|
||||
import org.jetbrains.kotlin.asJava.finder.JavaElementFinder
|
||||
import org.jetbrains.kotlin.backend.jvm.JvmIrCodegenFactory
|
||||
import org.jetbrains.kotlin.backend.jvm.JvmIrDeserializerImpl
|
||||
import org.jetbrains.kotlin.builtins.DefaultBuiltIns
|
||||
import org.jetbrains.kotlin.cli.common.CLIConfigurationKeys
|
||||
import org.jetbrains.kotlin.cli.common.messages.CompilerMessageSeverity
|
||||
import org.jetbrains.kotlin.cli.common.messages.GroupingMessageCollector
|
||||
@@ -33,10 +34,7 @@ import org.jetbrains.kotlin.fir.FirAnalyzerFacade
|
||||
import org.jetbrains.kotlin.fir.FirTestSessionFactoryHelper
|
||||
import org.jetbrains.kotlin.fir.backend.Fir2IrCommonMemberStorage
|
||||
import org.jetbrains.kotlin.fir.backend.Fir2IrConfiguration
|
||||
import org.jetbrains.kotlin.fir.backend.jvm.FirJvmBackendClassResolver
|
||||
import org.jetbrains.kotlin.fir.backend.jvm.FirJvmBackendExtension
|
||||
import org.jetbrains.kotlin.fir.backend.jvm.FirJvmKotlinMangler
|
||||
import org.jetbrains.kotlin.fir.backend.jvm.JvmFir2IrExtensions
|
||||
import org.jetbrains.kotlin.fir.backend.jvm.*
|
||||
import org.jetbrains.kotlin.fir.pipeline.signatureComposerForJvmFir2Ir
|
||||
import org.jetbrains.kotlin.ir.backend.jvm.jvmResolveLibraries
|
||||
import org.jetbrains.kotlin.ir.backend.jvm.serialization.JvmIrMangler
|
||||
@@ -118,31 +116,36 @@ object GenerationUtils {
|
||||
getPackagePartProvider = packagePartProvider
|
||||
)
|
||||
|
||||
val linkViaSignatures = configuration.getBoolean(JVMConfigurationKeys.LINK_VIA_SIGNATURES)
|
||||
// TODO: add running checkers and check that it's safe to compile
|
||||
val firAnalyzerFacade = FirAnalyzerFacade(
|
||||
session,
|
||||
Fir2IrConfiguration(
|
||||
languageVersionSettings = configuration.languageVersionSettings,
|
||||
linkViaSignatures = configuration.getBoolean(JVMConfigurationKeys.LINK_VIA_SIGNATURES),
|
||||
evaluatedConstTracker = configuration
|
||||
.putIfAbsent(CommonConfigurationKeys.EVALUATED_CONST_TRACKER, EvaluatedConstTracker.create()),
|
||||
inlineConstTracker = configuration[CommonConfigurationKeys.INLINE_CONST_TRACKER],
|
||||
),
|
||||
files,
|
||||
emptyList(),
|
||||
FirParser.Psi,
|
||||
)
|
||||
|
||||
val fir2IrExtensions = JvmFir2IrExtensions(configuration, JvmIrDeserializerImpl(), JvmIrMangler)
|
||||
|
||||
val commonMemberStorage = Fir2IrCommonMemberStorage(
|
||||
signatureComposerForJvmFir2Ir(firAnalyzerFacade.fir2IrConfiguration.linkViaSignatures),
|
||||
FirJvmKotlinMangler(),
|
||||
val fir2IrConfiguration = Fir2IrConfiguration(
|
||||
languageVersionSettings = configuration.languageVersionSettings,
|
||||
linkViaSignatures = linkViaSignatures,
|
||||
evaluatedConstTracker = configuration
|
||||
.putIfAbsent(CommonConfigurationKeys.EVALUATED_CONST_TRACKER, EvaluatedConstTracker.create()),
|
||||
inlineConstTracker = configuration[CommonConfigurationKeys.INLINE_CONST_TRACKER],
|
||||
)
|
||||
|
||||
val (moduleFragment, components, pluginContext) = firAnalyzerFacade.convertToIr(
|
||||
val commonMemberStorage = Fir2IrCommonMemberStorage(signatureComposerForJvmFir2Ir(linkViaSignatures), FirJvmKotlinMangler())
|
||||
|
||||
firAnalyzerFacade.runResolution()
|
||||
val (moduleFragment, components, pluginContext) = firAnalyzerFacade.result.outputs.single().convertToIr(
|
||||
fir2IrExtensions,
|
||||
fir2IrConfiguration,
|
||||
commonMemberStorage,
|
||||
irBuiltIns = null
|
||||
irBuiltIns = null,
|
||||
JvmIrMangler,
|
||||
FirJvmVisibilityConverter,
|
||||
DefaultBuiltIns.Instance
|
||||
)
|
||||
val dummyBindingContext = NoScopeRecordCliBindingTrace().bindingContext
|
||||
|
||||
|
||||
@@ -6,35 +6,26 @@
|
||||
package org.jetbrains.kotlin.fir
|
||||
|
||||
import org.jetbrains.kotlin.KtSourceFile
|
||||
import org.jetbrains.kotlin.builtins.DefaultBuiltIns
|
||||
import org.jetbrains.kotlin.diagnostics.DiagnosticReporter
|
||||
import org.jetbrains.kotlin.diagnostics.DiagnosticReporterFactory
|
||||
import org.jetbrains.kotlin.diagnostics.KtDiagnostic
|
||||
import org.jetbrains.kotlin.fir.backend.*
|
||||
import org.jetbrains.kotlin.fir.backend.jvm.FirJvmVisibilityConverter
|
||||
import org.jetbrains.kotlin.fir.declarations.FirFile
|
||||
import org.jetbrains.kotlin.fir.pipeline.*
|
||||
import org.jetbrains.kotlin.fir.resolve.ScopeSession
|
||||
import org.jetbrains.kotlin.ir.backend.jvm.serialization.JvmIrMangler
|
||||
import org.jetbrains.kotlin.psi.KtFile
|
||||
import org.jetbrains.kotlin.test.FirParser
|
||||
|
||||
abstract class AbstractFirAnalyzerFacade {
|
||||
abstract val scopeSession: ScopeSession
|
||||
abstract val result: FirResult
|
||||
|
||||
abstract fun runCheckers(): Map<FirFile, List<KtDiagnostic>>
|
||||
|
||||
abstract fun runResolution(): List<FirFile>
|
||||
|
||||
abstract fun convertToIr(
|
||||
fir2IrExtensions: Fir2IrExtensions,
|
||||
commonMemberStorage: Fir2IrCommonMemberStorage,
|
||||
irBuiltIns: IrBuiltInsOverFir?
|
||||
): Fir2IrResult
|
||||
}
|
||||
|
||||
class FirAnalyzerFacade(
|
||||
val session: FirSession,
|
||||
val fir2IrConfiguration: Fir2IrConfiguration,
|
||||
val ktFiles: Collection<KtFile> = emptyList(), // may be empty if light tree mode enabled
|
||||
val lightTreeFiles: Collection<KtSourceFile> = emptyList(), // may be empty if light tree mode disabled
|
||||
val parser: FirParser,
|
||||
@@ -45,6 +36,9 @@ class FirAnalyzerFacade(
|
||||
override val scopeSession: ScopeSession
|
||||
get() = _scopeSession!!
|
||||
|
||||
override val result: FirResult
|
||||
get() = FirResult(listOf(ModuleCompilerAnalyzedOutput(session, scopeSession, firFiles!!)))
|
||||
|
||||
private var collectedDiagnostics: Map<FirFile, List<KtDiagnostic>>? = null
|
||||
|
||||
private fun buildRawFir() {
|
||||
@@ -68,22 +62,4 @@ class FirAnalyzerFacade(
|
||||
collectedDiagnostics = session.runCheckers(scopeSession, firFiles!!, DiagnosticReporterFactory.createPendingReporter())
|
||||
return collectedDiagnostics!!
|
||||
}
|
||||
|
||||
override fun convertToIr(
|
||||
fir2IrExtensions: Fir2IrExtensions,
|
||||
commonMemberStorage: Fir2IrCommonMemberStorage,
|
||||
irBuiltIns: IrBuiltInsOverFir?
|
||||
): Fir2IrResult {
|
||||
if (_scopeSession == null) runResolution()
|
||||
|
||||
return ModuleCompilerAnalyzedOutput(this.session, this.scopeSession, firFiles!!.toList()).convertToIr(
|
||||
fir2IrExtensions,
|
||||
fir2IrConfiguration,
|
||||
commonMemberStorage,
|
||||
irBuiltIns,
|
||||
JvmIrMangler,
|
||||
FirJvmVisibilityConverter,
|
||||
DefaultBuiltIns.Instance
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user