CLI: support "arg=value" for argument's deprecatedName

#KT-51093 Fixed
This commit is contained in:
Alexander Udalov
2022-02-01 21:43:29 +01:00
parent 4e84e14d34
commit 9826172720
2 changed files with 8 additions and 17 deletions
@@ -87,29 +87,20 @@ private fun <A : CommonToolArguments> parsePreprocessedCommandLineArguments(args
return true
}
val deprecatedName = argument.deprecatedName.takeUnless(String::isEmpty)
if (deprecatedName == arg) {
val deprecatedName = argument.deprecatedName
if (deprecatedName.isNotEmpty() && (deprecatedName == arg || arg.startsWith("$deprecatedName="))) {
errors.deprecatedArguments[deprecatedName] = argument.value
return true
}
if (argument.isAdvanced) {
if (argument.value == arg) {
if (property.returnType.classifier != Boolean::class) {
errors.extraArgumentsPassedInObsoleteForm.add(arg)
}
return true
if (argument.value == arg) {
if (argument.isAdvanced && property.returnType.classifier != Boolean::class) {
errors.extraArgumentsPassedInObsoleteForm.add(arg)
}
if (deprecatedName != null && arg.startsWith("$deprecatedName=")) {
errors.deprecatedArguments[deprecatedName] = argument.value
return true
}
return arg.startsWith(argument.value + "=")
return true
}
return argument.value == arg || arg.startsWith(argument.value + "=")
return arg.startsWith(argument.value + "=")
}
val freeArgs = ArrayList<String>()