[python] refactoring: Match positional-or-keyword parameters similar to positional-only and keyword-only

GitOrigin-RevId: b0e860d4a4a71e08adb892c68475af3867cec4f0
This commit is contained in:
Mikhail Golubev
2025-11-25 18:58:25 +00:00
committed by intellij-monorepo-bot
parent dbb60963b9
commit 5381c8352f
@@ -1018,7 +1018,19 @@ fun analyzeArguments(
variadicPositionalArguments.clear()
variadicKeywordArguments.clear()
}
else if (allPositionalArguments.isEmpty()) {
else if (!allPositionalArguments.isEmpty()) {
val positionalArgument = allPositionalArguments.next()
if (positionalArgument != null) {
mappedParameters.put(positionalArgument, parameter)
if (positionalComponentsOfVariadicArguments.contains(positionalArgument)) {
parametersMappedToVariadicPositionalArguments.add(parameter)
}
}
else if (!parameter.hasDefaultValue()) {
unmappedParameters.add(parameter)
}
}
else {
val keywordArgument = keywordArguments.removeKeywordArgument(parameterName)
if (keywordArgument != null && !(!hasSlashParameter && !seenStarArgs && parameterName != null && isPrivate(parameterName))) {
mappedParameters.put(keywordArgument, parameter)
@@ -1036,18 +1048,6 @@ fun analyzeArguments(
unmappedParameters.add(parameter)
}
}
else {
val positionalArgument = allPositionalArguments.next()
if (positionalArgument != null) {
mappedParameters.put(positionalArgument, parameter)
if (positionalComponentsOfVariadicArguments.contains(positionalArgument)) {
parametersMappedToVariadicPositionalArguments.add(parameter)
}
}
else if (!parameter.hasDefaultValue()) {
unmappedParameters.add(parameter)
}
}
}
else if (psi is PyTupleParameter) {
val positionalArgument = allPositionalArguments.next()