summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Lib/test/badsyntax_async2.py2
-rw-r--r--Lib/test/test_coroutines.py9
-rw-r--r--Python/compile.c5
-rw-r--r--Python/symtable.c2
4 files changed, 9 insertions, 9 deletions
diff --git a/Lib/test/badsyntax_async2.py b/Lib/test/badsyntax_async2.py
index 6f6f4f5..fb85e29 100644
--- a/Lib/test/badsyntax_async2.py
+++ b/Lib/test/badsyntax_async2.py
@@ -1,2 +1,2 @@
-async def foo(a:await something()):
+async def foo(a=await something()):
pass
diff --git a/Lib/test/test_coroutines.py b/Lib/test/test_coroutines.py
index 3ba2f23..94994e5 100644
--- a/Lib/test/test_coroutines.py
+++ b/Lib/test/test_coroutines.py
@@ -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
diff --git a/Python/compile.c b/Python/compile.c
index 2202e8f..33cc8c2 100644
--- a/Python/compile.c
+++ b/Python/compile.c
@@ -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);
diff --git a/Python/symtable.c b/Python/symtable.c
index 354b799..64910d8 100644
--- a/Python/symtable.c
+++ b/Python/symtable.c
@@ -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;
}