From 550c53c2ac3cf17eb0c29815b13b669980329a3e Mon Sep 17 00:00:00 2001 From: Andrey Uskov Date: Wed, 8 Jul 2020 01:21:51 +0300 Subject: [PATCH] Report jvm-default compiler arguments from Gradle #KT-39977 Fixed --- .../kotlin/compilerRunner/GradleKotlinCompilerRunner.kt | 6 ++++++ .../jetbrains/kotlin/statistics/metrics/StringMetrics.kt | 3 +++ 2 files changed, 9 insertions(+) diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/compilerRunner/GradleKotlinCompilerRunner.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/compilerRunner/GradleKotlinCompilerRunner.kt index 7554ba60bd0..88867593723 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/compilerRunner/GradleKotlinCompilerRunner.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/compilerRunner/GradleKotlinCompilerRunner.kt @@ -32,6 +32,7 @@ import org.jetbrains.kotlin.gradle.utils.relativeToRoot import org.jetbrains.kotlin.incremental.IncrementalModuleEntry import org.jetbrains.kotlin.incremental.IncrementalModuleInfo import org.jetbrains.kotlin.statistics.metrics.BooleanMetrics +import org.jetbrains.kotlin.statistics.metrics.StringMetrics import java.io.File import java.lang.ref.WeakReference @@ -113,11 +114,16 @@ internal open class GradleCompilerRunner(protected val task: Task) { compilerArgs.version = false } val argsArray = ArgumentUtils.convertArgumentsToStringList(compilerArgs).toTypedArray() + + // compilerArgs arguments may have some attributes which are overrided by freeCompilerArguments. + // Here we perform the work which is repeated in compiler in order to obtain correct values. This extra work could be avoided when + // compiler would report metrics by itself via JMX KotlinBuildStatsService.applyIfInitialised { if (compilerArgs is K2JVMCompilerArguments) { val args = K2JVMCompilerArguments() parseCommandLineArguments(argsArray.toList(), args) KotlinBuildStatsService.getInstance()?.report(BooleanMetrics.JVM_COMPILER_IR_MODE, args.useIR) + KotlinBuildStatsService.getInstance()?.report(StringMetrics.JVM_DEFAULTS, args.jvmDefault) } } diff --git a/libraries/tools/kotlin-gradle-statistics/src/org/jetbrains/kotlin/statistics/metrics/StringMetrics.kt b/libraries/tools/kotlin-gradle-statistics/src/org/jetbrains/kotlin/statistics/metrics/StringMetrics.kt index b59b121678d..f4e52e31013 100644 --- a/libraries/tools/kotlin-gradle-statistics/src/org/jetbrains/kotlin/statistics/metrics/StringMetrics.kt +++ b/libraries/tools/kotlin-gradle-statistics/src/org/jetbrains/kotlin/statistics/metrics/StringMetrics.kt @@ -40,4 +40,7 @@ enum class StringMetrics(val type: StringOverridePolicy, val anonymization: Stri // Features KOTLIN_LANGUAGE_VERSION(OVERRIDE, COMPONENT_VERSION), KOTLIN_API_VERSION(OVERRIDE, COMPONENT_VERSION), + + // Compiler parameters + JVM_DEFAULTS(CONCAT, SAFE), }