Issue title: Named _* can be used only for last argument
 Issue body: ## Minimized code

```Scala
Starting scala3 REPL...
scala> def f(i: Int, j: Int*) = i + j.sum
def f(i: Int, j: Int*): Int

scala> f(j = List(2, 3, 4): _*, i = 42)
1 |f(j = List(2, 3, 4): _*, i = 42)
  |                     ^
  |                     _* can be used only for last argument

scala> f(List(2, 3, 4): _*)
1 |f(List(2, 3, 4): _*)
  |  ^^^^^^^^^^^^^^^^^
  |Sequence argument type annotation `: _*` cannot be used here: the corresponding parameter has type Int which is not a repeated parameter type

scala> f(j = List(2, 3, 4): _*)
1 |f(j = List(2, 3, 4): _*)
  |^^^^^^^^^^^^^^^^^^^^^^^^
  |missing argument for parameter i of method f: (i: Int, j: Int*): Int
```

## Output

```scala
scala> f(j = List(2, 3, 4): _*, i = 42)
1 |f(j = List(2, 3, 4): _*, i = 42)
  |                     ^
  |                     _* can be used only for last argument
```

## Expectation

```
scala 2.13.3> f(j = List(2, 3, 4): _*, i = 42)
val res3: Int = 51
```
Dotty fumbles a varargs "swap job", as it's known in the default args business.

Observed at https://github.com/scala/bug/issues/12219

Would be nice to enclose `_*` in backticks in the message.

 Comments: 
 Comment 0: I think dotty's behavior is reasonable here. I don't think this warrants a fix, unless someone wants to work on it. In that case, please re-open.


{'source': 'GithubIssues', 'repo_name_with_owner': 'lampepfl/dotty', 'issue_id': 738192701, 'repo_stars': 5558.0}