@@ -4196,15 +4196,14 @@ expr_constant(struct compiler *c, expr_ty e)
4196
4196
static int
4197
4197
compiler_async_with (struct compiler * c , stmt_ty s , int pos )
4198
4198
{
4199
- basicblock * block , * finally , * finally_await ;
4199
+ basicblock * block , * finally ;
4200
4200
withitem_ty item = asdl_seq_GET (s -> v .AsyncWith .items , pos );
4201
4201
4202
4202
assert (s -> kind == AsyncWith_kind );
4203
4203
4204
4204
block = compiler_new_block (c );
4205
4205
finally = compiler_new_block (c );
4206
- finally_await = compiler_new_block (c );
4207
- if (!block || !finally || !finally_await )
4206
+ if (!block || !finally )
4208
4207
return 0 ;
4209
4208
4210
4209
/* Evaluate EXPR */
@@ -4213,7 +4212,6 @@ compiler_async_with(struct compiler *c, stmt_ty s, int pos)
4213
4212
ADDOP (c , BEFORE_ASYNC_WITH );
4214
4213
ADDOP (c , GET_AWAITABLE );
4215
4214
ADDOP_O (c , LOAD_CONST , Py_None , consts );
4216
- ADDOP_JREL (c , DEFER_PENDING_UNTIL , block );
4217
4215
ADDOP (c , YIELD_FROM );
4218
4216
ADDOP_JREL (c , SETUP_ASYNC_WITH , finally );
4219
4217
@@ -4239,7 +4237,6 @@ compiler_async_with(struct compiler *c, stmt_ty s, int pos)
4239
4237
return 0 ;
4240
4238
4241
4239
/* End of try block; start the finally block */
4242
- ADDOP_JREL (c , DEFER_PENDING_UNTIL , finally_await );
4243
4240
ADDOP (c , POP_BLOCK );
4244
4241
compiler_pop_fblock (c , FINALLY_TRY , block );
4245
4242
@@ -4253,10 +4250,8 @@ compiler_async_with(struct compiler *c, stmt_ty s, int pos)
4253
4250
opcode. */
4254
4251
ADDOP (c , WITH_CLEANUP_START );
4255
4252
4256
- ADDOP_JREL (c , DEFER_PENDING_UNTIL , finally_await );
4257
4253
ADDOP (c , GET_AWAITABLE );
4258
4254
ADDOP_O (c , LOAD_CONST , Py_None , consts );
4259
- compiler_use_next_block (c , finally_await );
4260
4255
ADDOP (c , YIELD_FROM );
4261
4256
4262
4257
ADDOP (c , WITH_CLEANUP_FINISH );
0 commit comments