Skip to content

Commit ac01ff3

Browse files
committed
Apply suggested changes
1 parent 5697be9 commit ac01ff3

File tree

4 files changed

+58
-65
lines changed

4 files changed

+58
-65
lines changed
Lines changed: 21 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
package org.jetbrains.kotlin.compiler.plugin.template.runners
22

3-
import org.jetbrains.kotlin.compiler.plugin.template.services.ExtensionRegistrarConfigurator
4-
import org.jetbrains.kotlin.compiler.plugin.template.services.PluginAnnotationsProvider
5-
import org.jetbrains.kotlin.compiler.plugin.template.services.PluginRuntimeAnnotationsProvider
3+
import org.jetbrains.kotlin.compiler.plugin.template.services.configurePlugin
64
import org.jetbrains.kotlin.test.FirParser
75
import org.jetbrains.kotlin.test.builders.TestConfigurationBuilder
86
import org.jetbrains.kotlin.test.directives.CodegenTestDirectives
@@ -17,35 +15,27 @@ open class AbstractJvmBoxTest : AbstractFirBlackBoxCodegenTestBase(FirParser.Lig
1715
return EnvironmentBasedStandardLibrariesPathProvider
1816
}
1917

20-
override fun configure(builder: TestConfigurationBuilder) {
21-
super.configure(builder)
18+
override fun configure(builder: TestConfigurationBuilder) = with(builder) {
19+
super.configure(this)
20+
/*
21+
* Containers of different directives, which can be used in tests:
22+
* - ModuleStructureDirectives
23+
* - LanguageSettingsDirectives
24+
* - DiagnosticsDirectives
25+
* - FirDiagnosticsDirectives
26+
* - CodegenTestDirectives
27+
* - JvmEnvironmentConfigurationDirectives
28+
*
29+
* All of them are located in `org.jetbrains.kotlin.test.directives` package
30+
*/
31+
defaultDirectives {
32+
+CodegenTestDirectives.DUMP_IR
33+
+FirDiagnosticsDirectives.FIR_DUMP
34+
+JvmEnvironmentConfigurationDirectives.FULL_JDK
2235

23-
with(builder) {
24-
/*
25-
* Containers of different directives, which can be used in tests:
26-
* - ModuleStructureDirectives
27-
* - LanguageSettingsDirectives
28-
* - DiagnosticsDirectives
29-
* - FirDiagnosticsDirectives
30-
* - CodegenTestDirectives
31-
* - JvmEnvironmentConfigurationDirectives
32-
*
33-
* All of them are located in `org.jetbrains.kotlin.test.directives` package
34-
*/
35-
defaultDirectives {
36-
+CodegenTestDirectives.DUMP_IR
37-
+FirDiagnosticsDirectives.FIR_DUMP
38-
+JvmEnvironmentConfigurationDirectives.FULL_JDK
39-
40-
+CodegenTestDirectives.IGNORE_DEXING // Avoids loading R8 from the classpath.
41-
}
42-
43-
useConfigurators(
44-
::PluginAnnotationsProvider,
45-
::ExtensionRegistrarConfigurator
46-
)
47-
48-
useCustomRuntimeClasspathProviders(::PluginRuntimeAnnotationsProvider)
36+
+CodegenTestDirectives.IGNORE_DEXING // Avoids loading R8 from the classpath.
4937
}
38+
39+
configurePlugin()
5040
}
5141
}
Lines changed: 18 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package org.jetbrains.kotlin.compiler.plugin.template.runners
22

3-
import org.jetbrains.kotlin.compiler.plugin.template.services.ExtensionRegistrarConfigurator
4-
import org.jetbrains.kotlin.compiler.plugin.template.services.PluginAnnotationsProvider
3+
import org.jetbrains.kotlin.compiler.plugin.template.services.configurePlugin
54
import org.jetbrains.kotlin.test.FirParser
65
import org.jetbrains.kotlin.test.builders.TestConfigurationBuilder
76
import org.jetbrains.kotlin.test.directives.CodegenTestDirectives
@@ -16,31 +15,25 @@ open class AbstractJvmDiagnosticTest : AbstractFirPhasedDiagnosticTest(FirParser
1615
return EnvironmentBasedStandardLibrariesPathProvider
1716
}
1817

19-
override fun configure(builder: TestConfigurationBuilder) {
18+
override fun configure(builder: TestConfigurationBuilder) = with(builder) {
2019
super.configure(builder)
20+
/*
21+
* Containers of different directives, which can be used in tests:
22+
* - ModuleStructureDirectives
23+
* - LanguageSettingsDirectives
24+
* - DiagnosticsDirectives
25+
* - FirDiagnosticsDirectives
26+
*
27+
* All of them are located in `org.jetbrains.kotlin.test.directives` package
28+
*/
29+
defaultDirectives {
30+
+FirDiagnosticsDirectives.FIR_DUMP
31+
+FirDiagnosticsDirectives.DISABLE_GENERATED_FIR_TAGS
32+
+JvmEnvironmentConfigurationDirectives.FULL_JDK
2133

22-
with(builder) {
23-
/*
24-
* Containers of different directives, which can be used in tests:
25-
* - ModuleStructureDirectives
26-
* - LanguageSettingsDirectives
27-
* - DiagnosticsDirectives
28-
* - FirDiagnosticsDirectives
29-
*
30-
* All of them are located in `org.jetbrains.kotlin.test.directives` package
31-
*/
32-
defaultDirectives {
33-
+FirDiagnosticsDirectives.FIR_DUMP
34-
+FirDiagnosticsDirectives.DISABLE_GENERATED_FIR_TAGS
35-
+JvmEnvironmentConfigurationDirectives.FULL_JDK
36-
37-
+CodegenTestDirectives.IGNORE_DEXING // Avoids loading R8 from the classpath.
38-
}
39-
40-
useConfigurators(
41-
::PluginAnnotationsProvider,
42-
::ExtensionRegistrarConfigurator
43-
)
34+
+CodegenTestDirectives.IGNORE_DEXING // Avoids loading R8 from the classpath.
4435
}
36+
37+
configurePlugin()
4538
}
4639
}

compiler-plugin/test-fixtures/org/jetbrains/kotlin/compiler/plugin/template/services/ExtensionRegistrarConfigurator.kt

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,17 @@ import org.jetbrains.kotlin.compiler.plugin.template.SimplePluginRegistrar
66
import org.jetbrains.kotlin.compiler.plugin.template.ir.SimpleIrGenerationExtension
77
import org.jetbrains.kotlin.config.CompilerConfiguration
88
import org.jetbrains.kotlin.fir.extensions.FirExtensionRegistrarAdapter
9+
import org.jetbrains.kotlin.test.builders.TestConfigurationBuilder
910
import org.jetbrains.kotlin.test.model.TestModule
1011
import org.jetbrains.kotlin.test.services.EnvironmentConfigurator
1112
import org.jetbrains.kotlin.test.services.TestServices
1213

13-
class ExtensionRegistrarConfigurator(testServices: TestServices) : EnvironmentConfigurator(testServices) {
14+
fun TestConfigurationBuilder.configurePlugin() {
15+
useConfigurators(::ExtensionRegistrarConfigurator)
16+
configureAnnotations()
17+
}
18+
19+
private class ExtensionRegistrarConfigurator(testServices: TestServices) : EnvironmentConfigurator(testServices) {
1420
override fun CompilerPluginRegistrar.ExtensionStorage.registerCompilerExtensions(
1521
module: TestModule,
1622
configuration: CompilerConfiguration

compiler-plugin/test-fixtures/org/jetbrains/kotlin/compiler/plugin/template/services/PluginAnnotationsProvider.kt

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,24 +2,28 @@ package org.jetbrains.kotlin.compiler.plugin.template.services
22

33
import org.jetbrains.kotlin.cli.jvm.config.addJvmClasspathRoots
44
import org.jetbrains.kotlin.config.CompilerConfiguration
5+
import org.jetbrains.kotlin.test.builders.TestConfigurationBuilder
56
import org.jetbrains.kotlin.test.model.TestModule
67
import org.jetbrains.kotlin.test.services.EnvironmentConfigurator
78
import org.jetbrains.kotlin.test.services.RuntimeClasspathProvider
89
import org.jetbrains.kotlin.test.services.TestServices
910
import java.io.File
1011

11-
class PluginAnnotationsProvider(testServices: TestServices) : EnvironmentConfigurator(testServices) {
12-
companion object {
13-
val annotationsRuntimeClasspath =
14-
System.getProperty("annotationsRuntime.classpath")?.split(File.pathSeparator)?.map(::File)
15-
?: error("Unable to get a valid classpath from 'annotationsRuntime.classpath' property")
16-
}
12+
private val annotationsRuntimeClasspath =
13+
System.getProperty("annotationsRuntime.classpath")?.split(File.pathSeparator)?.map(::File)
14+
?: error("Unable to get a valid classpath from 'annotationsRuntime.classpath' property")
15+
16+
fun TestConfigurationBuilder.configureAnnotations() {
17+
useConfigurators(::PluginAnnotationsProvider)
18+
useCustomRuntimeClasspathProviders(::PluginAnnotationsClasspathProvider)
19+
}
1720

21+
private class PluginAnnotationsProvider(testServices: TestServices) : EnvironmentConfigurator(testServices) {
1822
override fun configureCompilerConfiguration(configuration: CompilerConfiguration, module: TestModule) {
1923
configuration.addJvmClasspathRoots(annotationsRuntimeClasspath)
2024
}
2125
}
2226

23-
class PluginRuntimeAnnotationsProvider(testServices: TestServices) : RuntimeClasspathProvider(testServices) {
24-
override fun runtimeClassPaths(module: TestModule) = PluginAnnotationsProvider.annotationsRuntimeClasspath
27+
private class PluginAnnotationsClasspathProvider(testServices: TestServices) : RuntimeClasspathProvider(testServices) {
28+
override fun runtimeClassPaths(module: TestModule) = annotationsRuntimeClasspath
2529
}

0 commit comments

Comments
 (0)