mirror of https://github.com/python/cpython
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
|
pass
|
||||||
|
|
|
@ -205,12 +205,14 @@ class AsyncBadSyntaxTest(unittest.TestCase):
|
||||||
return lambda a: await
|
return lambda a: await
|
||||||
""",
|
""",
|
||||||
|
|
||||||
"""async def foo(a: await b):
|
"""await a()""",
|
||||||
|
|
||||||
|
"""async def foo(a=await b):
|
||||||
pass
|
pass
|
||||||
""",
|
""",
|
||||||
|
|
||||||
"""def baz():
|
"""def baz():
|
||||||
async def foo(a: await b):
|
async def foo(a=await b):
|
||||||
pass
|
pass
|
||||||
""",
|
""",
|
||||||
|
|
||||||
|
@ -271,10 +273,9 @@ class AsyncBadSyntaxTest(unittest.TestCase):
|
||||||
pass\nawait a
|
pass\nawait a
|
||||||
"""]
|
"""]
|
||||||
|
|
||||||
ns = {}
|
|
||||||
for code in samples:
|
for code in samples:
|
||||||
with self.subTest(code=code), self.assertRaises(SyntaxError):
|
with self.subTest(code=code), self.assertRaises(SyntaxError):
|
||||||
exec(code, ns, ns)
|
compile(code, "<test>", "exec")
|
||||||
|
|
||||||
def test_goodsyntax_1(self):
|
def test_goodsyntax_1(self):
|
||||||
# Tests for issue 24619
|
# 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 = asdl_seq_LEN(args->defaults);
|
||||||
arglength |= kw_default_count << 8;
|
arglength |= kw_default_count << 8;
|
||||||
arglength |= num_annotations << 16;
|
arglength |= num_annotations << 16;
|
||||||
|
if (is_async)
|
||||||
|
co->co_flags |= CO_COROUTINE;
|
||||||
compiler_make_closure(c, co, arglength, qualname);
|
compiler_make_closure(c, co, arglength, qualname);
|
||||||
Py_DECREF(qualname);
|
Py_DECREF(qualname);
|
||||||
Py_DECREF(co);
|
Py_DECREF(co);
|
||||||
|
|
||||||
if (is_async)
|
|
||||||
co->co_flags |= CO_COROUTINE;
|
|
||||||
|
|
||||||
/* decorators */
|
/* decorators */
|
||||||
for (i = 0; i < asdl_seq_LEN(decos); i++) {
|
for (i = 0; i < asdl_seq_LEN(decos); i++) {
|
||||||
ADDOP_I(c, CALL_FUNCTION, 1);
|
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))
|
if (a->kwonlyargs && !symtable_visit_argannotations(st, a->kwonlyargs))
|
||||||
return 0;
|
return 0;
|
||||||
if (returns)
|
if (returns)
|
||||||
VISIT(st, expr, s->v.FunctionDef.returns);
|
VISIT(st, expr, returns);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue