bpo-34013: Don't consider a grouped expression when reporting legacy … · python/cpython@35035bc (original) (raw)

`@@ -18180,7 +18180,7 @@ expression_without_invalid_rule(Parser *p)

`

18180

18180

` return _res;

`

18181

18181

`}

`

18182

18182

``

18183

``

`-

// invalid_legacy_expression: NAME star_expressions

`

``

18183

`+

// invalid_legacy_expression: NAME !'(' star_expressions

`

18184

18184

`static void *

`

18185

18185

`invalid_legacy_expression_rule(Parser *p)

`

18186

18186

`{

`

`@@ -18191,21 +18191,23 @@ invalid_legacy_expression_rule(Parser *p)

`

18191

18191

` }

`

18192

18192

` void * _res = NULL;

`

18193

18193

` int _mark = p->mark;

`

18194

``

`-

{ // NAME star_expressions

`

``

18194

`+

{ // NAME !'(' star_expressions

`

18195

18195

` if (p->error_indicator) {

`

18196

18196

` D(p->level--);

`

18197

18197

` return NULL;

`

18198

18198

` }

`

18199

``

`-

D(fprintf(stderr, "%*c> invalid_legacy_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME star_expressions"));

`

``

18199

`+

D(fprintf(stderr, "%*c> invalid_legacy_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME !'(' star_expressions"));

`

18200

18200

` expr_ty a;

`

18201

18201

` expr_ty b;

`

18202

18202

` if (

`

18203

18203

` (a = _PyPegen_name_token(p)) // NAME

`

18204

18204

` &&

`

``

18205

`+

_PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 7) // token='('

`

``

18206

`+

&&

`

18205

18207

` (b = star_expressions_rule(p)) // star_expressions

`

18206

18208

` )

`

18207

18209

` {

`

18208

``

`-

D(fprintf(stderr, "%*c+ invalid_legacy_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME star_expressions"));

`

``

18210

`+

D(fprintf(stderr, "%*c+ invalid_legacy_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME !'(' star_expressions"));

`

18209

18211

` _res = _PyPegen_check_legacy_stmt ( p , a ) ? RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "Missing parentheses in call to '%U'. Did you mean %U(...)?" , a -> v . Name . id , a -> v . Name . id ) : NULL;

`

18210

18212

` if (_res == NULL && PyErr_Occurred()) {

`

18211

18213

` p->error_indicator = 1;

`

`@@ -18216,7 +18218,7 @@ invalid_legacy_expression_rule(Parser *p)

`

18216

18218

` }

`

18217

18219

` p->mark = _mark;

`

18218

18220

` D(fprintf(stderr, "%*c%s invalid_legacy_expression[%d-%d]: %s failed!\n", p->level, ' ',

`

18219

``

`-

p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME star_expressions"));

`

``

18221

`+

p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME !'(' star_expressions"));

`

18220

18222

` }

`

18221

18223

` _res = NULL;

`

18222

18224

` done:

`