bpo-40493: fix function type comment parsing (GH-19894) · python/cpython@603d354 · GitHub
Skip to content

Commit 603d354

Browse files
authored
bpo-40493: fix function type comment parsing (GH-19894)
The grammar for func_type_input rejected things like `(*t1) ->t2`. This fixes that. Automerge-Triggered-By: @gvanrossum
1 parent c95e691 commit 603d354

3 files changed

Lines changed: 78 additions & 0 deletions

File tree

Grammar/python.gram

Lines changed: 4 additions & 0 deletions

Lib/test/test_type_comments.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -399,6 +399,14 @@ def parse_func_type_input(source):
399399
self.assertEqual(tree.argtypes[2].id, "Any")
400400
self.assertEqual(tree.returns.id, "float")
401401

402+
tree = parse_func_type_input("(*int) -> None")
403+
self.assertEqual(tree.argtypes[0].id, "int")
404+
tree = parse_func_type_input("(**int) -> None")
405+
self.assertEqual(tree.argtypes[0].id, "int")
406+
tree = parse_func_type_input("(*int, **str) -> None")
407+
self.assertEqual(tree.argtypes[0].id, "int")
408+
self.assertEqual(tree.argtypes[1].id, "str")
409+
402410
with self.assertRaises(SyntaxError):
403411
tree = parse_func_type_input("(int, *str, *Any) -> float")
404412

Parser/pegen/parse.c

Lines changed: 66 additions & 0 deletions

0 commit comments

Comments
 (0)