diff --git a/build-common/src/org/jetbrains/kotlin/compilerRunner/argumentsToStrings.kt b/build-common/src/org/jetbrains/kotlin/compilerRunner/argumentsToStrings.kt index 659ee13d605..dea13b22e36 100644 --- a/build-common/src/org/jetbrains/kotlin/compilerRunner/argumentsToStrings.kt +++ b/build-common/src/org/jetbrains/kotlin/compilerRunner/argumentsToStrings.kt @@ -30,9 +30,8 @@ internal fun toArgumentStrings( thisArguments: T, type: KClass, shortArgumentKeys: Boolean, compactArgumentValues: Boolean -): List { +): List = ArrayList().apply { val defaultArguments = type.newArgumentsInstance() - val result = mutableListOf() type.memberProperties.forEach { property -> val argumentAnnotation = property.findAnnotation() ?: return@forEach val rawPropertyValue = property.get(thisArguments) @@ -63,24 +62,23 @@ internal fun toArgumentStrings( when { /* We can just enable the flag by passing the argument name like -myFlag: Value not required */ rawPropertyValue is Boolean && rawPropertyValue -> { - result.add(argumentName) + add(argumentName) } /* Advanced (e.g. -X arguments) or boolean properties need to be passed using the '=' */ argumentAnnotation.isAdvanced || property.returnType.classifier == Boolean::class -> { - result.add("$argumentName=$argumentStringValue") + add("$argumentName=$argumentStringValue") } else -> { - result.add(argumentName) - result.add(argumentStringValue) + add(argumentName) + add(argumentStringValue) } } } } - result.addAll(thisArguments.freeArgs) - result.addAll(thisArguments.internalArguments.map { it.stringRepresentation }) - return result + addAll(thisArguments.freeArgs) + addAll(thisArguments.internalArguments.map { it.stringRepresentation }) } private fun getArgumentStringValue(argumentAnnotation: Argument, values: Array<*>?, compactArgumentValues: Boolean): List {