[NoArg] Add implementation of plugin for FIR
This commit is contained in:
committed by
teamcity
parent
8acb8aa043
commit
5d0655247f
@@ -7,9 +7,11 @@ plugins {
|
||||
|
||||
dependencies {
|
||||
api(project(":kotlin-noarg-compiler-plugin.k1"))
|
||||
api(project(":kotlin-noarg-compiler-plugin.k2"))
|
||||
api(project(":kotlin-noarg-compiler-plugin.backend"))
|
||||
compileOnly(project(":compiler:util"))
|
||||
compileOnly(project(":compiler:plugin-api"))
|
||||
compileOnly(project(":compiler:fir:entrypoint"))
|
||||
compileOnly(project(":compiler:backend"))
|
||||
compileOnly(project(":compiler:ir.backend.common"))
|
||||
compileOnly(intellijCore())
|
||||
|
||||
@@ -17,13 +17,17 @@ import org.jetbrains.kotlin.container.StorageComponentContainer
|
||||
import org.jetbrains.kotlin.container.useInstance
|
||||
import org.jetbrains.kotlin.descriptors.ModuleDescriptor
|
||||
import org.jetbrains.kotlin.extensions.StorageComponentContainerContributor
|
||||
import org.jetbrains.kotlin.fir.extensions.FirExtensionRegistrar
|
||||
import org.jetbrains.kotlin.fir.extensions.FirExtensionRegistrarAdapter
|
||||
import org.jetbrains.kotlin.noarg.NoArgCommandLineProcessor.Companion.SUPPORTED_PRESETS
|
||||
import org.jetbrains.kotlin.noarg.NoArgConfigurationKeys.ANNOTATION
|
||||
import org.jetbrains.kotlin.noarg.NoArgConfigurationKeys.INVOKE_INITIALIZERS
|
||||
import org.jetbrains.kotlin.noarg.NoArgConfigurationKeys.PRESET
|
||||
import org.jetbrains.kotlin.noarg.diagnostic.CliNoArgDeclarationChecker
|
||||
import org.jetbrains.kotlin.noarg.fir.FirNoArgExtensionRegistrar
|
||||
import org.jetbrains.kotlin.platform.TargetPlatform
|
||||
import org.jetbrains.kotlin.platform.jvm.isJvm
|
||||
import java.util.concurrent.Executors
|
||||
|
||||
object NoArgConfigurationKeys {
|
||||
val ANNOTATION: CompilerConfigurationKey<List<String>> =
|
||||
@@ -73,6 +77,9 @@ class NoArgCommandLineProcessor : CommandLineProcessor {
|
||||
}
|
||||
|
||||
class NoArgComponentRegistrar : ComponentRegistrar {
|
||||
override val supportsK2: Boolean
|
||||
get() = true
|
||||
|
||||
override fun registerProjectComponents(project: MockProject, configuration: CompilerConfiguration) {
|
||||
val annotations = configuration.get(ANNOTATION).orEmpty().toMutableList()
|
||||
configuration.get(PRESET)?.forEach { preset ->
|
||||
@@ -88,6 +95,7 @@ class NoArgComponentRegistrar : ComponentRegistrar {
|
||||
companion object {
|
||||
fun registerNoArgComponents(project: Project, annotations: List<String>, useIr: Boolean, invokeInitializers: Boolean) {
|
||||
StorageComponentContainerContributor.registerExtension(project, CliNoArgComponentContainerContributor(annotations, useIr))
|
||||
FirExtensionRegistrar.registerExtension(project, FirNoArgExtensionRegistrar(annotations))
|
||||
ExpressionCodegenExtension.registerExtension(project, CliNoArgExpressionCodegenExtension(annotations, invokeInitializers))
|
||||
IrGenerationExtension.registerExtension(project, NoArgIrGenerationExtension(annotations, invokeInitializers))
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user