Skip to content

Commit 5a06a41

Browse files
committed
fix late for-visitor
1 parent d6198a2 commit 5a06a41

File tree

1 file changed

+11
-7
lines changed

1 file changed

+11
-7
lines changed

gcc/rust/resolve/rust-late-name-resolver-2.0.cc

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -62,18 +62,22 @@ Late::visit (AST::ForLoopExpr &expr)
6262
{
6363
visit_outer_attrs (expr);
6464

65-
ctx.bindings.enter (BindingSource::For);
65+
visit (expr.get_iterator_expr ());
6666

67-
visit (expr.get_pattern ());
67+
auto vis_method = [this, &expr] () {
68+
ctx.bindings.enter (BindingSource::For);
6869

69-
ctx.bindings.exit ();
70+
visit (expr.get_pattern ());
7071

71-
visit (expr.get_iterator_expr ());
72+
ctx.bindings.exit ();
73+
74+
if (expr.has_loop_label ())
75+
visit (expr.get_loop_label ());
7276

73-
if (expr.has_loop_label ())
74-
visit (expr.get_loop_label ());
77+
visit (expr.get_loop_block ());
78+
};
7579

76-
visit (expr.get_loop_block ());
80+
ctx.scoped (Rib::Kind::Normal, expr.get_node_id (), vis_method);
7781
}
7882

7983
void

0 commit comments

Comments
 (0)