@@ -612,11 +612,11 @@ of arguments:
612612 call: `primary ` "(" [`argument_list ` [","]
613613 : | `expression ` `genexpr_for `] ")"
614614 argument_list: `positional_arguments ` ["," `keyword_arguments `]
615- : ["," "*" `expression `]
616- : ["," "**" `expression `]
615+ : ["," "*" `expression `] ["," ` keyword_arguments `]
616+ : ["," "**" `expression `]
617617 : | `keyword_arguments ` ["," "*" `expression `]
618- : ["," "**" `expression `]
619- : | "*" `expression ` ["," "**" `expression `]
618+ : ["," ` keyword_arguments `] ["," "**" `expression `]
619+ : | "*" `expression ` ["," ` keyword_arguments `] ["," "**" `expression `]
620620 : | "**" `expression `
621621 positional_arguments: `expression ` ("," `expression `)*
622622 keyword_arguments: `keyword_item ` ("," `keyword_item `)*
@@ -674,12 +674,13 @@ there were no excess keyword arguments.
674674
675675If the syntax ``*expression `` appears in the function call, ``expression `` must
676676evaluate to a sequence. Elements from this sequence are treated as if they were
677- additional positional arguments; if there are positional arguments *x1 *,...,*xN*
678- , and ``expression `` evaluates to a sequence *y1 *,...,*yM*, this is equivalent
679- to a call with M+N positional arguments *x1 *,...,*xN*,*y1*,...,*yM*.
677+ additional positional arguments; if there are positional arguments *x1 *,...,
678+ *xN *, and ``expression `` evaluates to a sequence *y1 *, ..., *yM *, this is
679+ equivalent to a call with M+N positional arguments *x1 *, ..., *xN *, *y1 *, ...,
680+ *yM *.
680681
681- A consequence of this is that although the ``*expression `` syntax appears
682- *after * any keyword arguments, it is processed *before * the keyword arguments
682+ A consequence of this is that although the ``*expression `` syntax may appear
683+ *after * some keyword arguments, it is processed *before * the keyword arguments
683684(and the ``**expression `` argument, if any -- see below). So::
684685
685686 >>> def f(a, b):
0 commit comments