diff --git a/Lib/test/test_parser.py b/Lib/test/test_parser.py index f91131969f3..e199728bc08 100644 --- a/Lib/test/test_parser.py +++ b/Lib/test/test_parser.py @@ -110,6 +110,8 @@ def test_expressions(self): self.check_expr("lambda x, *y, **z: 0") self.check_expr("(x for x in range(10))") self.check_expr("foo(x for x in range(10))") + self.check_expr("...") + self.check_expr("a[...]") def test_simple_expression(self): # expr_stmt diff --git a/Misc/NEWS b/Misc/NEWS index 4904a2179d3..9e48da5c354 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -20,6 +20,8 @@ Core and Builtins Library ------- +- Issue #14741: Fix missing support for Ellipsis ('...') in parser module. + - Issue #14697: Fix missing support for set displays and set comprehensions in parser module. diff --git a/Modules/parsermodule.c b/Modules/parsermodule.c index 994de4940d2..b9c1201a9d8 100644 --- a/Modules/parsermodule.c +++ b/Modules/parsermodule.c @@ -2419,17 +2419,13 @@ validate_atom(node *tree) break; case NAME: case NUMBER: + case ELLIPSIS: res = (nch == 1); break; case STRING: for (pos = 1; res && (pos < nch); ++pos) res = validate_ntype(CHILD(tree, pos), STRING); break; - case DOT: - res = (nch == 3 && - validate_ntype(CHILD(tree, 1), DOT) && - validate_ntype(CHILD(tree, 2), DOT)); - break; default: res = 0; break;