@@ -193,22 +193,30 @@ static int
193
193
append_ast_args (_PyUnicodeWriter * writer , arguments_ty args )
194
194
{
195
195
bool first ;
196
- Py_ssize_t i , di , arg_count , default_count ;
196
+ Py_ssize_t i , di , arg_count , posonlyarg_count , default_count ;
197
197
198
198
first = true;
199
199
200
- /* positional arguments with defaults */
200
+ /* positional-only and positional arguments with defaults */
201
+ posonlyarg_count = asdl_seq_LEN (args -> posonlyargs );
201
202
arg_count = asdl_seq_LEN (args -> args );
202
203
default_count = asdl_seq_LEN (args -> defaults );
203
- for (i = 0 ; i < arg_count ; i ++ ) {
204
+ for (i = 0 ; i < posonlyarg_count + arg_count ; i ++ ) {
204
205
APPEND_STR_IF_NOT_FIRST (", " );
205
- APPEND (arg , (arg_ty )asdl_seq_GET (args -> args , i ));
206
+ if (i < posonlyarg_count ){
207
+ APPEND (arg , (arg_ty )asdl_seq_GET (args -> posonlyargs , i ));
208
+ } else {
209
+ APPEND (arg , (arg_ty )asdl_seq_GET (args -> args , i - posonlyarg_count ));
210
+ }
206
211
207
- di = i - arg_count + default_count ;
212
+ di = i - posonlyarg_count - arg_count + default_count ;
208
213
if (di >= 0 ) {
209
214
APPEND_STR ("=" );
210
215
APPEND_EXPR ((expr_ty )asdl_seq_GET (args -> defaults , di ), PR_TEST );
211
216
}
217
+ if (posonlyarg_count && i + 1 == posonlyarg_count ) {
218
+ APPEND_STR (", /" );
219
+ }
212
220
}
213
221
214
222
/* vararg, or bare '*' if no varargs but keyword-only arguments present */
@@ -251,7 +259,9 @@ static int
251
259
append_ast_lambda (_PyUnicodeWriter * writer , expr_ty e , int level )
252
260
{
253
261
APPEND_STR_IF (level > PR_TEST , "(" );
254
- APPEND_STR (asdl_seq_LEN (e -> v .Lambda .args -> args ) ? "lambda " : "lambda" );
262
+ Py_ssize_t n_positional = (asdl_seq_LEN (e -> v .Lambda .args -> args ) +
263
+ asdl_seq_LEN (e -> v .Lambda .args -> posonlyargs ));
264
+ APPEND_STR (n_positional ? "lambda " : "lambda" );
255
265
APPEND (args , e -> v .Lambda .args );
256
266
APPEND_STR (": " );
257
267
APPEND_EXPR (e -> v .Lambda .body , PR_TEST );
0 commit comments