mirror of
https://github.com/danbulant/oxc
synced 2026-05-24 12:21:58 +00:00
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.
This commit is contained in:
parent
b4c87e27a1
commit
30c0689dfc
1 changed files with 10 additions and 15 deletions
|
|
@ -5,8 +5,9 @@ use serde::{Deserialize, Serialize};
|
||||||
use oxc_ast::{
|
use oxc_ast::{
|
||||||
ast::{
|
ast::{
|
||||||
ArrayExpression, ArrayExpressionElement, CallExpression, Expression, ObjectExpression,
|
ArrayExpression, ArrayExpressionElement, CallExpression, Expression, ObjectExpression,
|
||||||
ObjectPropertyKind,
|
ObjectPropertyKind, ReturnStatement,
|
||||||
},
|
},
|
||||||
|
visit::walk,
|
||||||
AstKind, Visit,
|
AstKind, Visit,
|
||||||
};
|
};
|
||||||
use oxc_diagnostics::{LabeledSpan, OxcDiagnostic};
|
use oxc_diagnostics::{LabeledSpan, OxcDiagnostic};
|
||||||
|
|
@ -637,21 +638,15 @@ impl<'a, F> Visit<'a> for SpreadInReturnVisitor<'a, '_, F>
|
||||||
where
|
where
|
||||||
F: FnMut(Spread<'a, '_>),
|
F: FnMut(Spread<'a, '_>),
|
||||||
{
|
{
|
||||||
#[inline]
|
fn visit_return_statement(&mut self, stmt: &ReturnStatement<'a>) {
|
||||||
fn enter_node(&mut self, kind: AstKind<'a>) {
|
self.is_in_return = true;
|
||||||
if let AstKind::ReturnStatement(stmt) = kind {
|
self.return_span = stmt.argument.as_ref().map(GetSpan::span);
|
||||||
self.is_in_return = true;
|
|
||||||
self.return_span = stmt.argument.as_ref().map(GetSpan::span);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#[inline]
|
walk::walk_return_statement(self, stmt);
|
||||||
fn leave_node(&mut self, kind: AstKind<'a>) {
|
|
||||||
if let AstKind::ReturnStatement(_) = kind {
|
self.is_in_return = false;
|
||||||
self.is_in_return = false;
|
// NOTE: do not clear `return_span` here. We want to keep the last
|
||||||
// NOTE: do not clear `return_span` here. We want to keep the last
|
// encountered `return` for reporting.
|
||||||
// encountered `return` for reporting.
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fn visit_expression(&mut self, expr: &Expression<'a>) {
|
fn visit_expression(&mut self, expr: &Expression<'a>) {
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue