mirror of
https://github.com/python/cpython.git
synced 2025-07-24 03:35:53 +00:00
make lib2to3 parse async generators everywhere (GH-6588)
This commit is contained in:
parent
8ed1833912
commit
149addd496
3 changed files with 17 additions and 8 deletions
|
@ -512,13 +512,14 @@ def generate_tokens(readline):
|
|||
stashed = tok
|
||||
continue
|
||||
|
||||
if token == 'def':
|
||||
if token in ('def', 'for'):
|
||||
if (stashed
|
||||
and stashed[0] == NAME
|
||||
and stashed[1] == 'async'):
|
||||
|
||||
async_def = True
|
||||
async_def_indent = indents[-1]
|
||||
if token == 'def':
|
||||
async_def = True
|
||||
async_def_indent = indents[-1]
|
||||
|
||||
yield (ASYNC, stashed[1],
|
||||
stashed[2], stashed[3],
|
||||
|
|
|
@ -200,20 +200,27 @@ class TestAsyncAwait(GrammarTest):
|
|||
self.validate("""await = 1""")
|
||||
self.validate("""def async(): pass""")
|
||||
|
||||
def test_async_with(self):
|
||||
def test_async_for(self):
|
||||
self.validate("""async def foo():
|
||||
async for a in b: pass""")
|
||||
|
||||
self.invalid_syntax("""def foo():
|
||||
async for a in b: pass""")
|
||||
|
||||
def test_async_for(self):
|
||||
def test_async_with(self):
|
||||
self.validate("""async def foo():
|
||||
async with a: pass""")
|
||||
|
||||
self.invalid_syntax("""def foo():
|
||||
async with a: pass""")
|
||||
|
||||
def test_async_generator(self):
|
||||
self.validate(
|
||||
"""async def foo():
|
||||
return (i * 2 async for i in arange(42))"""
|
||||
)
|
||||
self.validate(
|
||||
"""def foo():
|
||||
return (i * 2 async for i in arange(42))"""
|
||||
)
|
||||
|
||||
|
||||
class TestRaiseChanges(GrammarTest):
|
||||
def test_2x_style_1(self):
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
lib2to3 now recognizes async generators everywhere.
|
Loading…
Add table
Add a link
Reference in a new issue