Fir2Ir: add irProviders to Fir2IrComponents
Removes the last use of DeclarationStubGenerator in the FIR pipeline.
This commit is contained in:
committed by
Alexander Udalov
parent
13d4d60afa
commit
3f66b31a47
+1
-1
@@ -344,7 +344,7 @@ object FirKotlinToJvmBytecodeCompiler {
|
||||
generationState.beforeCompile()
|
||||
generationState.oldBEInitTrace(ktFiles)
|
||||
codegenFactory.generateModuleInFrontendIRMode(
|
||||
generationState, moduleFragment, symbolTable, extensions, FirJvmBackendExtension(session, components)
|
||||
generationState, moduleFragment, symbolTable, components.irProviders, extensions, FirJvmBackendExtension(session, components)
|
||||
) {
|
||||
performanceManager?.notifyIRLoweringFinished()
|
||||
performanceManager?.notifyIRGenerationStarted()
|
||||
|
||||
@@ -241,7 +241,7 @@ fun generateCodeFromIr(
|
||||
|
||||
generationState.beforeCompile()
|
||||
codegenFactory.generateModuleInFrontendIRMode(
|
||||
generationState, input.irModuleFragment, input.symbolTable, input.extensions,
|
||||
generationState, input.irModuleFragment, input.symbolTable, input.components.irProviders, input.extensions,
|
||||
FirJvmBackendExtension(input.firSession, input.components)
|
||||
) {
|
||||
performanceManager?.notifyIRLoweringFinished()
|
||||
|
||||
+1
-2
@@ -14,7 +14,6 @@ import org.jetbrains.kotlin.config.JvmSerializeIrMode
|
||||
import org.jetbrains.kotlin.config.languageVersionSettings
|
||||
import org.jetbrains.kotlin.fir.backend.Fir2IrComponents
|
||||
import org.jetbrains.kotlin.fir.backend.Fir2IrExtensions
|
||||
import org.jetbrains.kotlin.fir.backend.FirIrProvider
|
||||
import org.jetbrains.kotlin.ir.IrBuiltIns
|
||||
import org.jetbrains.kotlin.ir.backend.jvm.serialization.JvmIrMangler
|
||||
import org.jetbrains.kotlin.ir.declarations.*
|
||||
@@ -86,7 +85,7 @@ class JvmFir2IrExtensions(configuration: CompilerConfiguration) : Fir2IrExtensio
|
||||
} ?: return false
|
||||
deserializeFromByteArray(
|
||||
serializedIr,
|
||||
irBuiltIns, symbolTable, listOf(FirIrProvider(this)),
|
||||
irBuiltIns, symbolTable, irProviders,
|
||||
irClass,
|
||||
JvmIrTypeSystemContext(irBuiltIns), allowErrorNodes = false
|
||||
)
|
||||
|
||||
@@ -14,6 +14,7 @@ import org.jetbrains.kotlin.fir.resolve.ScopeSession
|
||||
import org.jetbrains.kotlin.ir.IrBuiltIns
|
||||
import org.jetbrains.kotlin.ir.IrLock
|
||||
import org.jetbrains.kotlin.ir.declarations.IrFactory
|
||||
import org.jetbrains.kotlin.ir.linkage.IrProvider
|
||||
import org.jetbrains.kotlin.ir.util.SymbolTable
|
||||
|
||||
interface Fir2IrComponents {
|
||||
@@ -26,6 +27,7 @@ interface Fir2IrComponents {
|
||||
val irBuiltIns: IrBuiltIns
|
||||
val builtIns: Fir2IrBuiltIns
|
||||
val irFactory: IrFactory
|
||||
val irProviders: List<IrProvider>
|
||||
val lock: IrLock
|
||||
|
||||
val classifierStorage: Fir2IrClassifierStorage
|
||||
|
||||
@@ -15,6 +15,7 @@ import org.jetbrains.kotlin.fir.signaturer.FirBasedSignatureComposer
|
||||
import org.jetbrains.kotlin.ir.IrBuiltIns
|
||||
import org.jetbrains.kotlin.ir.IrLock
|
||||
import org.jetbrains.kotlin.ir.declarations.IrFactory
|
||||
import org.jetbrains.kotlin.ir.linkage.IrProvider
|
||||
import org.jetbrains.kotlin.ir.util.SymbolTable
|
||||
|
||||
class Fir2IrComponentsStorage(
|
||||
@@ -32,6 +33,7 @@ class Fir2IrComponentsStorage(
|
||||
|
||||
override lateinit var irBuiltIns: IrBuiltIns
|
||||
override lateinit var builtIns: Fir2IrBuiltIns
|
||||
override lateinit var irProviders: List<IrProvider>
|
||||
|
||||
override lateinit var typeConverter: Fir2IrTypeConverter
|
||||
override lateinit var visibilityConverter: Fir2IrVisibilityConverter
|
||||
|
||||
@@ -459,6 +459,8 @@ class Fir2IrConverter(
|
||||
components.fakeOverrideGenerator = fakeOverrideGenerator
|
||||
val callGenerator = CallAndReferenceGenerator(components, fir2irVisitor, conversionScope)
|
||||
components.callGenerator = callGenerator
|
||||
val irProvider = FirIrProvider(components)
|
||||
components.irProviders = listOf(irProvider)
|
||||
|
||||
fir2IrExtensions.registerDeclarations(symbolTable)
|
||||
|
||||
|
||||
+1
-14
@@ -44,7 +44,6 @@ import org.jetbrains.kotlin.psi2ir.generators.DeclarationStubGeneratorForNotFoun
|
||||
import org.jetbrains.kotlin.psi2ir.generators.DeclarationStubGeneratorImpl
|
||||
import org.jetbrains.kotlin.psi2ir.generators.fragments.EvaluatorFragmentInfo
|
||||
import org.jetbrains.kotlin.psi2ir.generators.fragments.FragmentContext
|
||||
import org.jetbrains.kotlin.psi2ir.generators.generateTypicalIrProviderList
|
||||
import org.jetbrains.kotlin.psi2ir.preprocessing.SourceDeclarationsPreprocessor
|
||||
import org.jetbrains.kotlin.resolve.CleanableBindingContext
|
||||
|
||||
@@ -292,26 +291,14 @@ open class JvmIrCodegenFactory(
|
||||
state: GenerationState,
|
||||
irModuleFragment: IrModuleFragment,
|
||||
symbolTable: SymbolTable,
|
||||
irProviders: List<IrProvider>,
|
||||
extensions: JvmGeneratorExtensions,
|
||||
backendExtension: JvmBackendExtension,
|
||||
notifyCodegenStart: () -> Unit = {}
|
||||
) {
|
||||
val irProviders = configureBuiltInsAndGenerateIrProvidersInFrontendIRMode(irModuleFragment, symbolTable, jvmGeneratorExtensions)
|
||||
generateModule(
|
||||
state,
|
||||
JvmIrBackendInput(irModuleFragment, symbolTable, phaseConfig, irProviders, extensions, backendExtension, notifyCodegenStart)
|
||||
)
|
||||
}
|
||||
|
||||
fun configureBuiltInsAndGenerateIrProvidersInFrontendIRMode(
|
||||
irModuleFragment: IrModuleFragment,
|
||||
symbolTable: SymbolTable,
|
||||
extensions: JvmGeneratorExtensionsImpl,
|
||||
): List<IrProvider> {
|
||||
return generateTypicalIrProviderList(
|
||||
irModuleFragment.descriptor, irModuleFragment.irBuiltins, symbolTable,
|
||||
DescriptorByIdSignatureFinderImpl(irModuleFragment.descriptor, JvmDescriptorMangler(null)),
|
||||
extensions = extensions
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
+1
-4
@@ -71,9 +71,6 @@ class Fir2IrResultsConverter(
|
||||
FirJvmBackendClassResolver(components)
|
||||
).build()
|
||||
|
||||
val extensions = JvmGeneratorExtensionsImpl(configuration)
|
||||
val irProviders = codegenFactory.configureBuiltInsAndGenerateIrProvidersInFrontendIRMode(irModuleFragment, symbolTable, extensions)
|
||||
|
||||
return IrBackendInput.JvmIrBackendInput(
|
||||
generationState,
|
||||
codegenFactory,
|
||||
@@ -81,7 +78,7 @@ class Fir2IrResultsConverter(
|
||||
irModuleFragment,
|
||||
symbolTable,
|
||||
phaseConfig,
|
||||
irProviders,
|
||||
components.irProviders,
|
||||
fir2IrExtensions,
|
||||
FirJvmBackendExtension(inputArtifact.session, components),
|
||||
notifyCodegenStart = {},
|
||||
|
||||
@@ -14,7 +14,6 @@ import org.jetbrains.kotlin.TestsCompiletimeError
|
||||
import org.jetbrains.kotlin.analyzer.AnalysisResult
|
||||
import org.jetbrains.kotlin.asJava.finder.JavaElementFinder
|
||||
import org.jetbrains.kotlin.backend.common.extensions.IrGenerationExtension
|
||||
import org.jetbrains.kotlin.backend.jvm.JvmGeneratorExtensionsImpl
|
||||
import org.jetbrains.kotlin.backend.jvm.JvmIrCodegenFactory
|
||||
import org.jetbrains.kotlin.cli.common.CLIConfigurationKeys
|
||||
import org.jetbrains.kotlin.cli.common.messages.CompilerMessageSeverity
|
||||
@@ -134,7 +133,8 @@ object GenerationUtils {
|
||||
generationState.beforeCompile()
|
||||
generationState.oldBEInitTrace(files)
|
||||
codegenFactory.generateModuleInFrontendIRMode(
|
||||
generationState, moduleFragment, symbolTable, fir2IrExtensions, FirJvmBackendExtension(session, components),
|
||||
generationState, moduleFragment, symbolTable, components.irProviders,
|
||||
fir2IrExtensions, FirJvmBackendExtension(session, components),
|
||||
) {}
|
||||
|
||||
generationState.factory.done()
|
||||
|
||||
Reference in New Issue
Block a user