Don't reorder parameters in function calls (#7268)

## Summary

In `f(*args, a=b, *args2, **kwargs)` the args (`*args`, `*args2`) and
keywords (`a=b`, `**kwargs`) are interleaved, which we previously didn't
handle.

Fixes #6498

**main**

| project | similarity index | total files | changed files |

|--------------|------------------:|------------------:|------------------:|
| cpython | 0.76083 | 1789 | 1632 |
| **django** | 0.99966 | 2760 | 58 |
| transformers | 0.99930 | 2587 | 447 |
| twine | 1.00000 | 33 | 0 |
| typeshed | 0.99983 | 3496 | 18 |
| warehouse | 0.99825 | 648 | 22 |
| zulip | 0.99950 | 1437 | 27 |

**PR**

| project | similarity index | total files | changed files |

|--------------|------------------:|------------------:|------------------:|
| cpython | 0.76083 | 1789 | 1632 |
| **django** | 0.99967 | 2760 | 53 |
| transformers | 0.99930 | 2587 | 447 |
| twine | 1.00000 | 33 | 0 |
| typeshed | 0.99983 | 3496 | 18 |
| warehouse | 0.99825 | 648 | 22 |
| zulip | 0.99950 | 1437 | 27 |


## Test Plan

New fixtures
This commit is contained in:
konsti 2023-09-13 11:01:49 +02:00 committed by GitHub
parent 56440ad835
commit f4c7bff36b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 203 additions and 129 deletions

View file

@ -248,6 +248,29 @@ f(x=(
# comment
1
))
args = [2]
args2 = [3]
kwargs = {"4": 5}
# https://github.com/astral-sh/ruff/issues/6498
f(a=1, *args, **kwargs)
f(*args, a=1, **kwargs)
f(*args, a=1, *args2, **kwargs)
f( # a
* # b
args
# c
, # d
a=1,
# e
* # f
args2
# g
** # h
kwargs,
)
```
## Output
@ -493,6 +516,27 @@ f(
1
)
)
args = [2]
args2 = [3]
kwargs = {"4": 5}
# https://github.com/astral-sh/ruff/issues/6498
f(a=1, *args, **kwargs)
f(*args, a=1, **kwargs)
f(*args, a=1, *args2, **kwargs)
f( # a
# b
*args, # d
# c
a=1,
# e
# f
*args2
# g
** # h
kwargs,
)
```