IR: reorganize IrProvider handling
Make DeclarationStubGenerator a subclass of IrProvider, anticipating deserialization of IR structures for JVM_IR backend.
This commit is contained in:
@@ -28,6 +28,7 @@ import org.jetbrains.kotlin.ir.descriptors.IrBuiltIns
|
||||
import org.jetbrains.kotlin.ir.util.ExpectDeclarationRemover
|
||||
import org.jetbrains.kotlin.ir.util.IrDeserializer
|
||||
import org.jetbrains.kotlin.ir.util.SymbolTable
|
||||
import org.jetbrains.kotlin.ir.util.generateTypicalIrProviderList
|
||||
import org.jetbrains.kotlin.ir.visitors.acceptVoid
|
||||
import org.jetbrains.kotlin.js.analyzer.JsAnalysisResult
|
||||
import org.jetbrains.kotlin.js.config.JSConfigurationKeys
|
||||
@@ -201,7 +202,8 @@ fun GeneratorContext.generateModuleFragmentWithPlugins(
|
||||
files: List<KtFile>,
|
||||
deserializer: IrDeserializer? = null
|
||||
): IrModuleFragment {
|
||||
val psi2Ir = Psi2IrTranslator(languageVersionSettings, configuration)
|
||||
val irProviders = generateTypicalIrProviderList(moduleDescriptor, irBuiltIns, symbolTable, deserializer)
|
||||
val psi2Ir = Psi2IrTranslator(languageVersionSettings, configuration, mangler = JsMangler)
|
||||
|
||||
for (extension in IrGenerationExtension.getInstances(project)) {
|
||||
psi2Ir.addPostprocessingStep { module ->
|
||||
@@ -223,13 +225,17 @@ fun GeneratorContext.generateModuleFragmentWithPlugins(
|
||||
psi2Ir.generateModuleFragment(
|
||||
this,
|
||||
files,
|
||||
deserializer
|
||||
irProviders
|
||||
)
|
||||
return moduleFragment
|
||||
}
|
||||
|
||||
fun GeneratorContext.generateModuleFragment(files: List<KtFile>, deserializer: IrDeserializer? = null) =
|
||||
Psi2IrTranslator(languageVersionSettings, configuration).generateModuleFragment(this, files, deserializer)
|
||||
fun GeneratorContext.generateModuleFragment(files: List<KtFile>, deserializer: IrDeserializer? = null): IrModuleFragment {
|
||||
val irProviders = generateTypicalIrProviderList(moduleDescriptor, irBuiltIns, symbolTable, deserializer)
|
||||
return Psi2IrTranslator(
|
||||
languageVersionSettings, configuration, mangler = JsMangler
|
||||
).generateModuleFragment(this, files, irProviders)
|
||||
}
|
||||
|
||||
|
||||
private fun createBuiltIns(storageManager: StorageManager) = object : KotlinBuiltIns(storageManager) {}
|
||||
|
||||
Reference in New Issue
Block a user