Noarg: somewhat refactor tests
Extract method that registers components, merge abstract test classes into one file.
This commit is contained in:
@@ -17,6 +17,7 @@
|
||||
package org.jetbrains.kotlin.noarg
|
||||
|
||||
import com.intellij.mock.MockProject
|
||||
import com.intellij.openapi.project.Project
|
||||
import org.jetbrains.kotlin.codegen.extensions.ExpressionCodegenExtension
|
||||
import org.jetbrains.kotlin.compiler.plugin.*
|
||||
import org.jetbrains.kotlin.config.CompilerConfiguration
|
||||
@@ -66,7 +67,7 @@ class NoArgCommandLineProcessor : CommandLineProcessor {
|
||||
required = false, allowMultipleOccurrences = false
|
||||
)
|
||||
|
||||
val PLUGIN_ID = "org.jetbrains.kotlin.noarg"
|
||||
const val PLUGIN_ID = "org.jetbrains.kotlin.noarg"
|
||||
}
|
||||
|
||||
override val pluginId = PLUGIN_ID
|
||||
@@ -82,16 +83,20 @@ class NoArgCommandLineProcessor : CommandLineProcessor {
|
||||
|
||||
class NoArgComponentRegistrar : ComponentRegistrar {
|
||||
override fun registerProjectComponents(project: MockProject, configuration: CompilerConfiguration) {
|
||||
val annotations = configuration.get(ANNOTATION)?.toMutableList() ?: mutableListOf()
|
||||
val annotations = configuration.get(ANNOTATION).orEmpty().toMutableList()
|
||||
configuration.get(PRESET)?.forEach { preset ->
|
||||
SUPPORTED_PRESETS[preset]?.let { annotations += it }
|
||||
}
|
||||
if (annotations.isEmpty()) return
|
||||
if (annotations.isNotEmpty()) {
|
||||
registerNoArgComponents(project, annotations, configuration.getBoolean(INVOKE_INITIALIZERS))
|
||||
}
|
||||
}
|
||||
|
||||
StorageComponentContainerContributor.registerExtension(project, CliNoArgComponentContainerContributor(annotations))
|
||||
|
||||
val invokeInitializers = configuration[INVOKE_INITIALIZERS] ?: false
|
||||
ExpressionCodegenExtension.registerExtension(project, CliNoArgExpressionCodegenExtension(annotations, invokeInitializers))
|
||||
internal companion object {
|
||||
fun registerNoArgComponents(project: Project, annotations: List<String>, invokeInitializers: Boolean) {
|
||||
StorageComponentContainerContributor.registerExtension(project, CliNoArgComponentContainerContributor(annotations))
|
||||
ExpressionCodegenExtension.registerExtension(project, CliNoArgExpressionCodegenExtension(annotations, invokeInitializers))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -103,4 +108,4 @@ class CliNoArgComponentContainerContributor(val annotations: List<String>) : Sto
|
||||
|
||||
container.useInstance(CliNoArgDeclarationChecker(annotations))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user