diff --git a/crates/oxc_semantic/src/builder.rs b/crates/oxc_semantic/src/builder.rs index 117d1bbdaf0aa..de728a6c35590 100644 --- a/crates/oxc_semantic/src/builder.rs +++ b/crates/oxc_semantic/src/builder.rs @@ -827,12 +827,12 @@ impl<'a> Visit<'a> for SemanticBuilder<'a> { fn visit_for_statement(&mut self, stmt: &ForStatement<'a>) { let kind = AstKind::ForStatement(self.alloc(stmt)); + self.enter_node(kind); let is_lexical_declaration = stmt.init.as_ref().is_some_and(ForStatementInit::is_lexical_declaration); if is_lexical_declaration { self.enter_scope(ScopeFlags::empty(), &stmt.scope_id); } - self.enter_node(kind); if let Some(init) = &stmt.init { self.visit_for_statement_init(init); } @@ -890,19 +890,19 @@ impl<'a> Visit<'a> for SemanticBuilder<'a> { }); /* cfg */ - self.leave_node(kind); if is_lexical_declaration { self.leave_scope(); } + self.leave_node(kind); } fn visit_for_in_statement(&mut self, stmt: &ForInStatement<'a>) { let kind = AstKind::ForInStatement(self.alloc(stmt)); + self.enter_node(kind); let is_lexical_declaration = stmt.left.is_lexical_declaration(); if is_lexical_declaration { self.enter_scope(ScopeFlags::empty(), &stmt.scope_id); } - self.enter_node(kind); self.visit_for_statement_left(&stmt.left); @@ -954,19 +954,19 @@ impl<'a> Visit<'a> for SemanticBuilder<'a> { }); /* cfg */ - self.leave_node(kind); if is_lexical_declaration { self.leave_scope(); } + self.leave_node(kind); } fn visit_for_of_statement(&mut self, stmt: &ForOfStatement<'a>) { let kind = AstKind::ForOfStatement(self.alloc(stmt)); + self.enter_node(kind); let is_lexical_declaration = stmt.left.is_lexical_declaration(); if is_lexical_declaration { self.enter_scope(ScopeFlags::empty(), &stmt.scope_id); } - self.enter_node(kind); self.visit_for_statement_left(&stmt.left); @@ -1017,10 +1017,10 @@ impl<'a> Visit<'a> for SemanticBuilder<'a> { }); /* cfg */ - self.leave_node(kind); if is_lexical_declaration { self.leave_scope(); } + self.leave_node(kind); } fn visit_if_statement(&mut self, stmt: &IfStatement<'a>) {