Skip to content

Commit 30c0689

Browse files
committed
refactor(linter/no-map-spread): remove Visit::enter_node usage (#8537)
Use `Visit::visit_*` method instead of `Visit::enter_node` / `leave_node`. A step towards solving #8461, but also may improve performance.
1 parent b4c87e2 commit 30c0689

File tree

1 file changed

+10
-15
lines changed

1 file changed

+10
-15
lines changed

crates/oxc_linter/src/rules/oxc/no_map_spread.rs

Lines changed: 10 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,9 @@ use serde::{Deserialize, Serialize};
55
use oxc_ast::{
66
ast::{
77
ArrayExpression, ArrayExpressionElement, CallExpression, Expression, ObjectExpression,
8-
ObjectPropertyKind,
8+
ObjectPropertyKind, ReturnStatement,
99
},
10+
visit::walk,
1011
AstKind, Visit,
1112
};
1213
use oxc_diagnostics::{LabeledSpan, OxcDiagnostic};
@@ -637,21 +638,15 @@ impl<'a, F> Visit<'a> for SpreadInReturnVisitor<'a, '_, F>
637638
where
638639
F: FnMut(Spread<'a, '_>),
639640
{
640-
#[inline]
641-
fn enter_node(&mut self, kind: AstKind<'a>) {
642-
if let AstKind::ReturnStatement(stmt) = kind {
643-
self.is_in_return = true;
644-
self.return_span = stmt.argument.as_ref().map(GetSpan::span);
645-
}
646-
}
641+
fn visit_return_statement(&mut self, stmt: &ReturnStatement<'a>) {
642+
self.is_in_return = true;
643+
self.return_span = stmt.argument.as_ref().map(GetSpan::span);
647644

648-
#[inline]
649-
fn leave_node(&mut self, kind: AstKind<'a>) {
650-
if let AstKind::ReturnStatement(_) = kind {
651-
self.is_in_return = false;
652-
// NOTE: do not clear `return_span` here. We want to keep the last
653-
// encountered `return` for reporting.
654-
}
645+
walk::walk_return_statement(self, stmt);
646+
647+
self.is_in_return = false;
648+
// NOTE: do not clear `return_span` here. We want to keep the last
649+
// encountered `return` for reporting.
655650
}
656651

657652
fn visit_expression(&mut self, expr: &Expression<'a>) {

0 commit comments

Comments
 (0)