From b8dfa191be9426d73c87c5b4223f50cfaf9d75c6 Mon Sep 17 00:00:00 2001 From: overlookmotel <557937+overlookmotel@users.noreply.github.com> Date: Wed, 23 Oct 2024 13:18:09 +0000 Subject: [PATCH] refactor(transformer): shorten code (#6809) Use `BoundIdentifier::create_binding_pattern`, rather than writing out the code to create a `BindingPattern` manually each time. --- .../src/common/var_declarations.rs | 8 +++----- .../src/es2015/arrow_functions.rs | 12 ++---------- crates/oxc_transformer/src/react/jsx_source.rs | 17 +++++------------ 3 files changed, 10 insertions(+), 27 deletions(-) diff --git a/crates/oxc_transformer/src/common/var_declarations.rs b/crates/oxc_transformer/src/common/var_declarations.rs index fe6bce4bf..91ea4f114 100644 --- a/crates/oxc_transformer/src/common/var_declarations.rs +++ b/crates/oxc_transformer/src/common/var_declarations.rs @@ -15,7 +15,7 @@ use std::cell::RefCell; use oxc_allocator::Vec; -use oxc_ast::{ast::*, NONE}; +use oxc_ast::ast::*; use oxc_data_structures::stack::SparseStack; use oxc_span::SPAN; use oxc_traverse::{Ancestor, BoundIdentifier, Traverse, TraverseCtx}; @@ -74,10 +74,8 @@ impl<'a> VarDeclarationsStore<'a> { init: Option>, ctx: &TraverseCtx<'a>, ) { - let ident = binding.create_binding_identifier(ctx); - let ident = ctx.ast.binding_pattern_kind_from_binding_identifier(ident); - let ident = ctx.ast.binding_pattern(ident, NONE, false); - self.insert_binding_pattern(ident, init, ctx); + let pattern = binding.create_binding_pattern(ctx); + self.insert_binding_pattern(pattern, init, ctx); } /// Add a `VariableDeclarator` to be inserted at top of current enclosing statement block, diff --git a/crates/oxc_transformer/src/es2015/arrow_functions.rs b/crates/oxc_transformer/src/es2015/arrow_functions.rs index eebfc5c51..0df81e0ca 100644 --- a/crates/oxc_transformer/src/es2015/arrow_functions.rs +++ b/crates/oxc_transformer/src/es2015/arrow_functions.rs @@ -127,7 +127,7 @@ use serde::Deserialize; use oxc_allocator::Vec; -use oxc_ast::{ast::*, NONE}; +use oxc_ast::ast::*; use oxc_data_structures::stack::SparseStack; use oxc_span::SPAN; use oxc_syntax::{ @@ -409,18 +409,10 @@ impl<'a> ArrowFunctions<'a> { this_var: &BoundIdentifier<'a>, ctx: &TraverseCtx<'a>, ) { - let binding_pattern = ctx.ast.binding_pattern( - ctx.ast.binding_pattern_kind_from_binding_identifier( - this_var.create_binding_identifier(ctx), - ), - NONE, - false, - ); - let variable_declarator = ctx.ast.variable_declarator( SPAN, VariableDeclarationKind::Var, - binding_pattern, + this_var.create_binding_pattern(ctx), Some(ctx.ast.expression_this(SPAN)), false, ); diff --git a/crates/oxc_transformer/src/react/jsx_source.rs b/crates/oxc_transformer/src/react/jsx_source.rs index 265572322..457095355 100644 --- a/crates/oxc_transformer/src/react/jsx_source.rs +++ b/crates/oxc_transformer/src/react/jsx_source.rs @@ -35,7 +35,7 @@ use ropey::Rope; -use oxc_ast::{ast::*, NONE}; +use oxc_ast::ast::*; use oxc_diagnostics::OxcDiagnostic; use oxc_span::{Span, SPAN}; use oxc_syntax::{number::NumberBase, symbol::SymbolFlags}; @@ -205,17 +205,10 @@ impl<'a, 'ctx> ReactJsxSource<'a, 'ctx> { ) -> Option> { let filename_var = self.filename_var.as_ref()?; - let var_kind = VariableDeclarationKind::Var; - let id = { - let ident = filename_var.create_binding_identifier(ctx); - let ident = ctx.ast.binding_pattern_kind_from_binding_identifier(ident); - ctx.ast.binding_pattern(ident, NONE, false) - }; - let decl = { - let init = - ctx.ast.expression_string_literal(SPAN, self.ctx.source_path.to_string_lossy()); - ctx.ast.variable_declarator(SPAN, var_kind, id, Some(init), false) - }; + let id = filename_var.create_binding_pattern(ctx); + let init = ctx.ast.expression_string_literal(SPAN, self.ctx.source_path.to_string_lossy()); + let decl = + ctx.ast.variable_declarator(SPAN, VariableDeclarationKind::Var, id, Some(init), false); Some(decl) }