Improved parsing of internal compiler arguments with boolean state in
case when the argument is listed twice in the list of command line arguments. The last value will be used. #KT-27181 Fixed
This commit is contained in:
+9
-1
@@ -135,7 +135,15 @@ private fun <A : CommonToolArguments> parsePreprocessedCommandLineArguments(args
|
||||
if (parser == null) {
|
||||
errors.unknownExtraFlags += arg
|
||||
} else {
|
||||
internalArguments.add(parser.parseInternalArgument(arg, errors) ?: continue)
|
||||
val newInternalArgument = parser.parseInternalArgument(arg, errors) ?: continue
|
||||
val argumentWillBeOverridden = when (newInternalArgument) {
|
||||
is ManualLanguageFeatureSetting -> internalArguments.firstOrNull { (it is ManualLanguageFeatureSetting) && (it.languageFeature == newInternalArgument.languageFeature) }
|
||||
else -> null
|
||||
}
|
||||
if (argumentWillBeOverridden != null) {
|
||||
internalArguments.remove(argumentWillBeOverridden)
|
||||
}
|
||||
internalArguments.add(newInternalArgument)
|
||||
}
|
||||
|
||||
continue
|
||||
|
||||
Reference in New Issue
Block a user