Minor, simplify code in parseCommandLineArguments

This commit is contained in:
Alexander Udalov
2019-05-20 17:20:43 +02:00
parent effbcdaf70
commit d340f6dc62
@@ -136,12 +136,10 @@ private fun <A : CommonToolArguments> parsePreprocessedCommandLineArguments(args
errors.unknownExtraFlags += arg errors.unknownExtraFlags += arg
} else { } else {
val newInternalArgument = parser.parseInternalArgument(arg, errors) ?: continue val newInternalArgument = parser.parseInternalArgument(arg, errors) ?: continue
val argumentWillBeOverridden = when (newInternalArgument) { // Manual language feature setting overrides the previous value of the same feature setting, if it exists.
is ManualLanguageFeatureSetting -> internalArguments.firstOrNull { (it is ManualLanguageFeatureSetting) && (it.languageFeature == newInternalArgument.languageFeature) } internalArguments.removeIf {
else -> null (it as? ManualLanguageFeatureSetting)?.languageFeature ==
} (newInternalArgument as? ManualLanguageFeatureSetting)?.languageFeature
if (argumentWillBeOverridden != null) {
internalArguments.remove(argumentWillBeOverridden)
} }
internalArguments.add(newInternalArgument) internalArguments.add(newInternalArgument)
} }