mirror of
https://github.com/python/cpython.git
synced 2025-07-08 03:45:36 +00:00
reflect with statements with multiple items in the AST (closes #12106)
This commit is contained in:
parent
0501070669
commit
bf1bbc1452
7 changed files with 182 additions and 85 deletions
|
@ -185,6 +185,7 @@ static int symtable_visit_params(struct symtable *st, asdl_seq *args);
|
|||
static int symtable_visit_argannotations(struct symtable *st, asdl_seq *args);
|
||||
static int symtable_implicit_arg(struct symtable *st, int pos);
|
||||
static int symtable_visit_annotations(struct symtable *st, stmt_ty s);
|
||||
static int symtable_visit_withitem(struct symtable *st, withitem_ty item);
|
||||
|
||||
|
||||
static identifier top = NULL, lambda = NULL, genexpr = NULL,
|
||||
|
@ -1305,10 +1306,7 @@ symtable_visit_stmt(struct symtable *st, stmt_ty s)
|
|||
/* nothing to do here */
|
||||
break;
|
||||
case With_kind:
|
||||
VISIT(st, expr, s->v.With.context_expr);
|
||||
if (s->v.With.optional_vars) {
|
||||
VISIT(st, expr, s->v.With.optional_vars);
|
||||
}
|
||||
VISIT_SEQ(st, withitem, s->v.With.items);
|
||||
VISIT_SEQ(st, stmt, s->v.With.body);
|
||||
break;
|
||||
}
|
||||
|
@ -1540,6 +1538,16 @@ symtable_visit_excepthandler(struct symtable *st, excepthandler_ty eh)
|
|||
return 1;
|
||||
}
|
||||
|
||||
static int
|
||||
symtable_visit_withitem(struct symtable *st, withitem_ty item)
|
||||
{
|
||||
VISIT(st, expr, item->context_expr);
|
||||
if (item->optional_vars) {
|
||||
VISIT(st, expr, item->optional_vars);
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
static int
|
||||
symtable_visit_alias(struct symtable *st, alias_ty a)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue