Issue #24619: More tests; fix nits in compiler.c
This commit is contained in:
parent
8fb307cd65
commit
b7666a3093
|
@ -1,2 +1,2 @@
|
|||
async def foo(a:await something()):
|
||||
async def foo(a=await something()):
|
||||
pass
|
||||
|
|
|
@ -205,12 +205,14 @@ class AsyncBadSyntaxTest(unittest.TestCase):
|
|||
return lambda a: await
|
||||
""",
|
||||
|
||||
"""async def foo(a: await b):
|
||||
"""await a()""",
|
||||
|
||||
"""async def foo(a=await b):
|
||||
pass
|
||||
""",
|
||||
|
||||
"""def baz():
|
||||
async def foo(a: await b):
|
||||
async def foo(a=await b):
|
||||
pass
|
||||
""",
|
||||
|
||||
|
@ -271,10 +273,9 @@ class AsyncBadSyntaxTest(unittest.TestCase):
|
|||
pass\nawait a
|
||||
"""]
|
||||
|
||||
ns = {}
|
||||
for code in samples:
|
||||
with self.subTest(code=code), self.assertRaises(SyntaxError):
|
||||
exec(code, ns, ns)
|
||||
compile(code, "<test>", "exec")
|
||||
|
||||
def test_goodsyntax_1(self):
|
||||
# Tests for issue 24619
|
||||
|
|
|
@ -1749,13 +1749,12 @@ compiler_function(struct compiler *c, stmt_ty s, int is_async)
|
|||
arglength = asdl_seq_LEN(args->defaults);
|
||||
arglength |= kw_default_count << 8;
|
||||
arglength |= num_annotations << 16;
|
||||
if (is_async)
|
||||
co->co_flags |= CO_COROUTINE;
|
||||
compiler_make_closure(c, co, arglength, qualname);
|
||||
Py_DECREF(qualname);
|
||||
Py_DECREF(co);
|
||||
|
||||
if (is_async)
|
||||
co->co_flags |= CO_COROUTINE;
|
||||
|
||||
/* decorators */
|
||||
for (i = 0; i < asdl_seq_LEN(decos); i++) {
|
||||
ADDOP_I(c, CALL_FUNCTION, 1);
|
||||
|
|
|
@ -1542,7 +1542,7 @@ symtable_visit_annotations(struct symtable *st, stmt_ty s,
|
|||
if (a->kwonlyargs && !symtable_visit_argannotations(st, a->kwonlyargs))
|
||||
return 0;
|
||||
if (returns)
|
||||
VISIT(st, expr, s->v.FunctionDef.returns);
|
||||
VISIT(st, expr, returns);
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue