diff options
author | Pablo Galindo <Pablogsal@gmail.com> | 2021-02-03 23:29:26 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-02-03 23:29:26 (GMT) |
commit | d4e6ed7e5fb43320ea714d7436bc11667c624d43 (patch) | |
tree | 1b7139c3a92eb9de5b91e61b5d5a7e92bed07bd7 /Parser/parser.c | |
parent | bfe544d2f2c2e7a7c03a764bed3276a1e27a0f5c (diff) | |
download | cpython-d4e6ed7e5fb43320ea714d7436bc11667c624d43.zip cpython-d4e6ed7e5fb43320ea714d7436bc11667c624d43.tar.gz cpython-d4e6ed7e5fb43320ea714d7436bc11667c624d43.tar.bz2 |
bpo-43121: Fix incorrect SyntaxError message for missing comma (GH-24436)
Diffstat (limited to 'Parser/parser.c')
-rw-r--r-- | Parser/parser.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/Parser/parser.c b/Parser/parser.c index c709e45..f4501d3 100644 --- a/Parser/parser.c +++ b/Parser/parser.c @@ -15217,7 +15217,7 @@ invalid_primary_rule(Parser *p) // invalid_comprehension: // | ('[' | '(' | '{') starred_expression for_if_clauses -// | ('[' | '{') star_named_expression ',' star_named_expressions? +// | ('[' | '{') star_named_expression ',' star_named_expressions? for_if_clauses static void * invalid_comprehension_rule(Parser *p) { @@ -15258,17 +15258,18 @@ invalid_comprehension_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_comprehension[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses")); } - { // ('[' | '{') star_named_expression ',' star_named_expressions? + { // ('[' | '{') star_named_expression ',' star_named_expressions? for_if_clauses if (p->error_indicator) { D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> invalid_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('[' | '{') star_named_expression ',' star_named_expressions?")); + D(fprintf(stderr, "%*c> invalid_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('[' | '{') star_named_expression ',' star_named_expressions? for_if_clauses")); Token * _literal; void *_opt_var; UNUSED(_opt_var); // Silence compiler warnings void *_tmp_132_var; expr_ty a; + asdl_comprehension_seq* for_if_clauses_var; if ( (_tmp_132_var = _tmp_132_rule(p)) // '[' | '{' && @@ -15277,9 +15278,11 @@ invalid_comprehension_rule(Parser *p) (_literal = _PyPegen_expect_token(p, 12)) // token=',' && (_opt_var = star_named_expressions_rule(p), 1) // star_named_expressions? + && + (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses ) { - D(fprintf(stderr, "%*c+ invalid_comprehension[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('[' | '{') star_named_expression ',' star_named_expressions?")); + D(fprintf(stderr, "%*c+ invalid_comprehension[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('[' | '{') star_named_expression ',' star_named_expressions? for_if_clauses")); _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "did you forget parentheses around the comprehension target?" ); if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; @@ -15290,7 +15293,7 @@ invalid_comprehension_rule(Parser *p) } p->mark = _mark; D(fprintf(stderr, "%*c%s invalid_comprehension[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('[' | '{') star_named_expression ',' star_named_expressions?")); + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('[' | '{') star_named_expression ',' star_named_expressions? for_if_clauses")); } _res = NULL; done: |