[3.8] bpo-37947: Adjust correctly the recursion level in symtable for named expressions (GH-15499) (GH-15515)
(cherry picked from commit 0e4ea16336685cf3fa353d8c54af59b45b2d5c33)
Co-authored-by: Pablo Galindo <Pablogsal@gmail.com>
diff --git a/Misc/NEWS.d/next/Core and Builtins/2019-08-26-04-09-57.bpo-37947.mzAQtB.rst b/Misc/NEWS.d/next/Core and Builtins/2019-08-26-04-09-57.bpo-37947.mzAQtB.rst
new file mode 100644
index 0000000..2b3b723
--- /dev/null
+++ b/Misc/NEWS.d/next/Core and Builtins/2019-08-26-04-09-57.bpo-37947.mzAQtB.rst
@@ -0,0 +1,2 @@
+Adjust correctly the recursion level in the symtable generation for named
+expressions. Patch by Pablo Galindo.
diff --git a/Python/symtable.c b/Python/symtable.c
index e48baa8..18ea576 100644
--- a/Python/symtable.c
+++ b/Python/symtable.c
@@ -1508,6 +1508,7 @@
}
VISIT(st, expr, e->v.NamedExpr.value);
VISIT(st, expr, e->v.NamedExpr.target);
+ VISIT_QUIT(st, 1);
}
static int
@@ -1520,7 +1521,8 @@
}
switch (e->kind) {
case NamedExpr_kind:
- symtable_handle_namedexpr(st, e);
+ if(!symtable_handle_namedexpr(st, e))
+ VISIT_QUIT(st, 0);
break;
case BoolOp_kind:
VISIT_SEQ(st, expr, e->v.BoolOp.values);