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