Add ir generation plugins to JS and JVM BE
This commit is contained in:
@@ -7,6 +7,7 @@ package org.jetbrains.kotlin.ir.backend.js
|
||||
|
||||
import com.intellij.openapi.project.Project
|
||||
import org.jetbrains.kotlin.backend.common.FileLoweringPass
|
||||
import org.jetbrains.kotlin.backend.common.extensions.IrGenerationExtension
|
||||
import org.jetbrains.kotlin.backend.common.lower.*
|
||||
import org.jetbrains.kotlin.backend.common.runOnFilePostfix
|
||||
import org.jetbrains.kotlin.config.CompilerConfiguration
|
||||
@@ -60,6 +61,11 @@ fun compile(
|
||||
ExternalDependenciesGenerator(psi2IrContext.moduleDescriptor, psi2IrContext.symbolTable, psi2IrContext.irBuiltIns)
|
||||
.generateUnboundSymbolsAsDependencies(moduleFragment)
|
||||
|
||||
val extensions = IrGenerationExtension.getInstances(project)
|
||||
extensions.forEach { extension ->
|
||||
moduleFragment.files.forEach { irFile -> extension.generate(irFile, context, psi2IrContext.bindingContext) }
|
||||
}
|
||||
|
||||
MoveExternalDeclarationsToSeparatePlace().lower(moduleFragment.files)
|
||||
|
||||
context.performInlining(moduleFragment)
|
||||
|
||||
@@ -16,16 +16,20 @@
|
||||
|
||||
package org.jetbrains.kotlin.backend.jvm
|
||||
|
||||
import org.jetbrains.kotlin.backend.common.extensions.IrGenerationExtension
|
||||
import org.jetbrains.kotlin.ir.declarations.IrClass
|
||||
import org.jetbrains.kotlin.ir.declarations.IrFile
|
||||
import org.jetbrains.kotlin.ir.util.render
|
||||
import java.lang.AssertionError
|
||||
|
||||
class JvmBackend(context: JvmBackendContext) {
|
||||
class JvmBackend(val context: JvmBackendContext) {
|
||||
private val lower = JvmLower(context)
|
||||
private val codegen = JvmCodegen(context)
|
||||
|
||||
fun generateFile(irFile: IrFile) {
|
||||
val extensions = IrGenerationExtension.getInstances(context.state.project)
|
||||
extensions.forEach { it.generate(irFile, context, context.state.bindingContext) }
|
||||
|
||||
lower.lower(irFile)
|
||||
|
||||
for (loweredClass in irFile.declarations) {
|
||||
|
||||
Reference in New Issue
Block a user