require async for and async with to actually be in an async def method instead of just a generator
This commit is contained in:
parent
a6e048686f
commit
9a1f1236cc
@ -1713,11 +1713,11 @@ STATIC void compile_yield_from(compiler_t *comp) {
|
|||||||
#if MICROPY_PY_ASYNC_AWAIT
|
#if MICROPY_PY_ASYNC_AWAIT
|
||||||
STATIC bool compile_require_async_context(compiler_t *comp, mp_parse_node_struct_t *pns) {
|
STATIC bool compile_require_async_context(compiler_t *comp, mp_parse_node_struct_t *pns) {
|
||||||
int scope_flags = comp->scope_cur->scope_flags;
|
int scope_flags = comp->scope_cur->scope_flags;
|
||||||
if(scope_flags & MP_SCOPE_FLAG_GENERATOR) {
|
if(scope_flags & MP_SCOPE_FLAG_ASYNC) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
compile_syntax_error(comp, (mp_parse_node_t)pns,
|
compile_syntax_error(comp, (mp_parse_node_t)pns,
|
||||||
translate("'async for' or 'async with' outside async function"));
|
translate("'await', 'async for' or 'async with' outside async function"));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2645,6 +2645,7 @@ STATIC void compile_atom_expr_await(compiler_t *comp, mp_parse_node_struct_t *pn
|
|||||||
compile_syntax_error(comp, (mp_parse_node_t)pns, translate("'await' outside function"));
|
compile_syntax_error(comp, (mp_parse_node_t)pns, translate("'await' outside function"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
compile_require_async_context(comp, pns);
|
||||||
compile_atom_expr_normal(comp, pns);
|
compile_atom_expr_normal(comp, pns);
|
||||||
compile_yield_from(comp);
|
compile_yield_from(comp);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user