diff --git a/compiler/cli/cli-common/src/org/jetbrains/kotlin/cli/common/arguments/parseCommandLineArguments.kt b/compiler/cli/cli-common/src/org/jetbrains/kotlin/cli/common/arguments/parseCommandLineArguments.kt index 9b7c57c7ac3..7cdf188f19e 100644 --- a/compiler/cli/cli-common/src/org/jetbrains/kotlin/cli/common/arguments/parseCommandLineArguments.kt +++ b/compiler/cli/cli-common/src/org/jetbrains/kotlin/cli/common/arguments/parseCommandLineArguments.kt @@ -21,6 +21,7 @@ import java.lang.reflect.Field annotation class Argument( val value: String, val shortName: String = "", + val delimiter: String = ",", val valueDescription: String = "", val description: String ) @@ -81,15 +82,15 @@ fun parseCommandLineArguments(args: Array, result.duplicateArguments.put(argument.value, value) } - updateField(field, result, value) + updateField(field, result, value, argument.delimiter) } } -private fun updateField(field: Field, result: A, value: Any) { +private fun updateField(field: Field, result: A, value: Any, delimiter: String) { when (field.type) { Boolean::class.java, String::class.java -> field.set(result, value) Array::class.java -> { - val newElements = (value as String).split(",").toTypedArray() + val newElements = (value as String).split(delimiter).toTypedArray() @Suppress("UNCHECKED_CAST") val oldValue = field.get(result) as Array? field.set(result, if (oldValue != null) arrayOf(*oldValue, *newElements) else newElements)