[FIR] Use ModuleCompilerAnalyzedOutput instead of FirResult
Remove FirResult since it has the same semantics value
This commit is contained in:
committed by
Space Team
parent
57dda3bf92
commit
bcfdbaa6a6
+7
-19
@@ -41,11 +41,7 @@ import org.jetbrains.kotlin.fir.declarations.FirFile
|
||||
import org.jetbrains.kotlin.fir.declarations.FirSimpleFunction
|
||||
import org.jetbrains.kotlin.fir.extensions.FirExtensionRegistrar
|
||||
import org.jetbrains.kotlin.fir.java.FirProjectSessionProvider
|
||||
import org.jetbrains.kotlin.fir.pipeline.buildFirFromKtFiles
|
||||
import org.jetbrains.kotlin.fir.pipeline.convertToIr
|
||||
import org.jetbrains.kotlin.fir.pipeline.runCheckers
|
||||
import org.jetbrains.kotlin.fir.pipeline.runResolution
|
||||
import org.jetbrains.kotlin.fir.resolve.ScopeSession
|
||||
import org.jetbrains.kotlin.fir.pipeline.*
|
||||
import org.jetbrains.kotlin.fir.session.FirSessionFactoryHelper
|
||||
import org.jetbrains.kotlin.fir.session.IncrementalCompilationContext
|
||||
import org.jetbrains.kotlin.fir.session.environment.AbstractProjectEnvironment
|
||||
@@ -114,7 +110,7 @@ object FirKotlinToJvmBytecodeCompiler {
|
||||
return false
|
||||
}
|
||||
|
||||
val outputs = ArrayList<Pair<FirResult, GenerationState>>(chunk.size)
|
||||
val outputs = ArrayList<Pair<ModuleCompilerAnalyzedOutput, GenerationState>>(chunk.size)
|
||||
val targetIds = projectConfiguration.get(JVMConfigurationKeys.MODULES)?.map(::TargetId)
|
||||
val incrementalComponents = projectConfiguration.get(JVMConfigurationKeys.INCREMENTAL_COMPILATION_COMPONENTS)
|
||||
val isMultiModuleChunk = chunk.size > 1
|
||||
@@ -151,7 +147,7 @@ object FirKotlinToJvmBytecodeCompiler {
|
||||
project,
|
||||
projectConfiguration,
|
||||
chunk,
|
||||
outputs.map(Pair<FirResult, GenerationState>::second),
|
||||
outputs.map(Pair<ModuleCompilerAnalyzedOutput, GenerationState>::second),
|
||||
mainClassFqName
|
||||
)
|
||||
}
|
||||
@@ -164,7 +160,7 @@ object FirKotlinToJvmBytecodeCompiler {
|
||||
?.mapTo(destination) { it::class.qualifiedName }
|
||||
}
|
||||
|
||||
private fun CompilationContext.compileModule(): Pair<FirResult, GenerationState>? {
|
||||
private fun CompilationContext.compileModule(): Pair<ModuleCompilerAnalyzedOutput, GenerationState>? {
|
||||
performanceManager?.notifyAnalysisStarted()
|
||||
ProgressIndicatorAndCompilationCanceledStatus.checkCanceled()
|
||||
|
||||
@@ -186,9 +182,7 @@ object FirKotlinToJvmBytecodeCompiler {
|
||||
|
||||
val fir2IrExtensions = JvmFir2IrExtensions(moduleConfiguration, JvmIrDeserializerImpl(), JvmIrMangler)
|
||||
val linkViaSignatures = moduleConfiguration.getBoolean(JVMConfigurationKeys.LINK_VIA_SIGNATURES)
|
||||
val fir2IrResult = firResult.session.convertToIr(
|
||||
firResult.scopeSession, firResult.fir, fir2IrExtensions, irGenerationExtensions, linkViaSignatures
|
||||
)
|
||||
val fir2IrResult = firResult.convertToIr(fir2IrExtensions, irGenerationExtensions, linkViaSignatures)
|
||||
|
||||
performanceManager?.notifyIRTranslationFinished()
|
||||
|
||||
@@ -209,13 +203,7 @@ object FirKotlinToJvmBytecodeCompiler {
|
||||
return firResult to generationState
|
||||
}
|
||||
|
||||
private class FirResult(
|
||||
val session: FirSession,
|
||||
val scopeSession: ScopeSession,
|
||||
val fir: List<FirFile>
|
||||
)
|
||||
|
||||
private fun CompilationContext.runFrontend(ktFiles: List<KtFile>, diagnosticsReporter: BaseDiagnosticsCollector): FirResult? {
|
||||
private fun CompilationContext.runFrontend(ktFiles: List<KtFile>, diagnosticsReporter: BaseDiagnosticsCollector): ModuleCompilerAnalyzedOutput? {
|
||||
@Suppress("NAME_SHADOWING")
|
||||
var ktFiles = ktFiles
|
||||
val syntaxErrors = ktFiles.fold(false) { errorsFound, ktFile ->
|
||||
@@ -313,7 +301,7 @@ object FirKotlinToJvmBytecodeCompiler {
|
||||
val (scopeSession, fir) = session.runResolution(rawFir)
|
||||
session.runCheckers(scopeSession, fir, diagnosticsReporter)
|
||||
|
||||
return if (syntaxErrors || diagnosticsReporter.hasErrors) null else FirResult(session, scopeSession, fir)
|
||||
return if (syntaxErrors || diagnosticsReporter.hasErrors) null else ModuleCompilerAnalyzedOutput(session, scopeSession, fir)
|
||||
}
|
||||
|
||||
private fun CompilationContext.createComponentsForIncrementalCompilation(
|
||||
|
||||
@@ -53,10 +53,7 @@ import org.jetbrains.kotlin.fir.checkers.registerExtendedCommonCheckers
|
||||
import org.jetbrains.kotlin.fir.extensions.FirExtensionRegistrar
|
||||
import org.jetbrains.kotlin.fir.java.FirProjectSessionProvider
|
||||
import org.jetbrains.kotlin.fir.moduleData
|
||||
import org.jetbrains.kotlin.fir.pipeline.buildFirViaLightTree
|
||||
import org.jetbrains.kotlin.fir.pipeline.convertToIr
|
||||
import org.jetbrains.kotlin.fir.pipeline.runCheckers
|
||||
import org.jetbrains.kotlin.fir.pipeline.runResolution
|
||||
import org.jetbrains.kotlin.fir.pipeline.*
|
||||
import org.jetbrains.kotlin.fir.resolve.providers.FirSymbolProvider
|
||||
import org.jetbrains.kotlin.fir.session.FirSessionFactoryHelper
|
||||
import org.jetbrains.kotlin.fir.session.IncrementalCompilationContext
|
||||
@@ -240,9 +237,7 @@ fun convertAnalyzedFirToIr(
|
||||
} ?: emptyList()
|
||||
val linkViaSignatures = input.configuration.getBoolean(JVMConfigurationKeys.LINK_VIA_SIGNATURES)
|
||||
val (irModuleFragment, components, pluginContext) =
|
||||
analysisResults.session.convertToIr(
|
||||
analysisResults.scopeSession, analysisResults.fir, extensions, irGenerationExtensions, linkViaSignatures
|
||||
)
|
||||
analysisResults.convertToIr(extensions, irGenerationExtensions, linkViaSignatures)
|
||||
|
||||
return ModuleCompilerIrBackendInput(
|
||||
input.targetId,
|
||||
|
||||
-8
@@ -43,14 +43,6 @@ data class ModuleCompilerOutput(
|
||||
val generationState: GenerationState
|
||||
)
|
||||
|
||||
// ---
|
||||
|
||||
data class ModuleCompilerAnalyzedOutput(
|
||||
val session: FirSession,
|
||||
val scopeSession: ScopeSession,
|
||||
val fir: List<FirFile>
|
||||
)
|
||||
|
||||
data class ModuleCompilerIrBackendInput(
|
||||
val targetId: TargetId,
|
||||
val configuration: CompilerConfiguration,
|
||||
|
||||
@@ -25,14 +25,18 @@ import org.jetbrains.kotlin.ir.backend.jvm.serialization.JvmDescriptorMangler
|
||||
import org.jetbrains.kotlin.ir.backend.jvm.serialization.JvmIrMangler
|
||||
import org.jetbrains.kotlin.ir.declarations.impl.IrFactoryImpl
|
||||
|
||||
fun FirSession.convertToIr(
|
||||
scopeSession: ScopeSession,
|
||||
firFiles: List<FirFile>,
|
||||
data class ModuleCompilerAnalyzedOutput(
|
||||
val session: FirSession,
|
||||
val scopeSession: ScopeSession,
|
||||
val fir: List<FirFile>
|
||||
)
|
||||
|
||||
fun ModuleCompilerAnalyzedOutput.convertToIr(
|
||||
fir2IrExtensions: Fir2IrExtensions,
|
||||
irGeneratorExtensions: Collection<IrGenerationExtension>,
|
||||
linkViaSignatures: Boolean
|
||||
): Fir2IrResult {
|
||||
val commonFirFiles = moduleData.dependsOnDependencies
|
||||
val commonFirFiles = session.moduleData.dependsOnDependencies
|
||||
.map { it.session }
|
||||
.filter { it.kind == FirSession.Kind.Source }
|
||||
.flatMap { (it.firProvider as FirProviderImpl).getAllFirFiles() }
|
||||
@@ -40,9 +44,9 @@ fun FirSession.convertToIr(
|
||||
if (linkViaSignatures) {
|
||||
val signaturer = JvmIdSignatureDescriptor(mangler = JvmDescriptorMangler(mainDetector = null))
|
||||
return Fir2IrConverter.createModuleFragmentWithSignaturesIfNeeded(
|
||||
this, scopeSession, firFiles + commonFirFiles,
|
||||
languageVersionSettings, signaturer, fir2IrExtensions,
|
||||
FirJvmKotlinMangler(this),
|
||||
session, scopeSession, fir + commonFirFiles,
|
||||
session.languageVersionSettings, signaturer, fir2IrExtensions,
|
||||
FirJvmKotlinMangler(session),
|
||||
JvmIrMangler, IrFactoryImpl, FirJvmVisibilityConverter,
|
||||
Fir2IrJvmSpecialAnnotationSymbolProvider(),
|
||||
irGeneratorExtensions,
|
||||
@@ -51,9 +55,9 @@ fun FirSession.convertToIr(
|
||||
)
|
||||
} else {
|
||||
return Fir2IrConverter.createModuleFragmentWithoutSignatures(
|
||||
this, scopeSession, firFiles + commonFirFiles,
|
||||
languageVersionSettings, fir2IrExtensions,
|
||||
FirJvmKotlinMangler(this),
|
||||
session, scopeSession, fir + commonFirFiles,
|
||||
session.languageVersionSettings, fir2IrExtensions,
|
||||
FirJvmKotlinMangler(session),
|
||||
JvmIrMangler, IrFactoryImpl, FirJvmVisibilityConverter,
|
||||
Fir2IrJvmSpecialAnnotationSymbolProvider(),
|
||||
irGeneratorExtensions,
|
||||
|
||||
+1
@@ -48,6 +48,7 @@ import org.jetbrains.kotlin.fir.backend.jvm.FirJvmVisibilityConverter
|
||||
import org.jetbrains.kotlin.fir.backend.jvm.JvmFir2IrExtensions
|
||||
import org.jetbrains.kotlin.fir.languageVersionSettings
|
||||
import org.jetbrains.kotlin.fir.moduleData
|
||||
import org.jetbrains.kotlin.fir.pipeline.ModuleCompilerAnalyzedOutput
|
||||
import org.jetbrains.kotlin.fir.resolve.providers.firProvider
|
||||
import org.jetbrains.kotlin.fir.resolve.providers.impl.FirProviderImpl
|
||||
import org.jetbrains.kotlin.fir.session.environment.AbstractProjectFileSearchScope
|
||||
|
||||
+1
-1
@@ -9,7 +9,6 @@ import org.jetbrains.kotlin.backend.common.pop
|
||||
import org.jetbrains.kotlin.backend.common.push
|
||||
import org.jetbrains.kotlin.backend.jvm.metadata.MetadataSerializer
|
||||
import org.jetbrains.kotlin.build.report.ICReporter
|
||||
import org.jetbrains.kotlin.cli.jvm.compiler.pipeline.ModuleCompilerAnalyzedOutput
|
||||
import org.jetbrains.kotlin.codegen.serialization.JvmSerializationBindings
|
||||
import org.jetbrains.kotlin.config.CompilerConfiguration
|
||||
import org.jetbrains.kotlin.fir.FirElement
|
||||
@@ -17,6 +16,7 @@ import org.jetbrains.kotlin.fir.backend.FirMetadataSource
|
||||
import org.jetbrains.kotlin.fir.backend.jvm.makeLocalFirMetadataSerializerForMetadataSource
|
||||
import org.jetbrains.kotlin.fir.declarations.*
|
||||
import org.jetbrains.kotlin.fir.declarations.utils.classId
|
||||
import org.jetbrains.kotlin.fir.pipeline.ModuleCompilerAnalyzedOutput
|
||||
import org.jetbrains.kotlin.fir.scopes.jvm.computeJvmDescriptor
|
||||
import org.jetbrains.kotlin.fir.visitors.FirVisitor
|
||||
import org.jetbrains.kotlin.metadata.ProtoBuf
|
||||
|
||||
Reference in New Issue
Block a user