// WARNING: This file is auto-generated. #![allow(unused_mut)] #![allow(unused_parens)] #![allow(unused_variables)] #![allow(dead_code)] use crate::arena; use crate::source_atom_set::SourceAtomSetIndex; use crate::source_slice_list::SourceSliceIndex; use crate::types::*; pub trait Pass<'alloc> { fn visit_argument(&mut self, ast: &'alloc Argument<'alloc>) { self.enter_argument(ast); match ast { Argument::SpreadElement(ast) => { self.visit_enum_argument_variant_spread_element(ast) } Argument::Expression(ast) => { self.visit_enum_argument_variant_expression(ast) } } self.leave_argument(ast); } fn enter_argument(&mut self, ast: &'alloc Argument<'alloc>) { } fn leave_argument(&mut self, ast: &'alloc Argument<'alloc>) { } fn visit_enum_argument_variant_spread_element( &mut self, ast: &'alloc arena::Box<'alloc, Expression<'alloc>>, ) { self.enter_enum_argument_variant_spread_element(ast); self.visit_expression(ast); self.leave_enum_argument_variant_spread_element(ast); } fn enter_enum_argument_variant_spread_element( &mut self, ast: &'alloc arena::Box<'alloc, Expression<'alloc>>, ) { } fn leave_enum_argument_variant_spread_element( &mut self, ast: &'alloc arena::Box<'alloc, Expression<'alloc>>, ) { } fn visit_enum_argument_variant_expression( &mut self, ast: &'alloc arena::Box<'alloc, Expression<'alloc>>, ) { self.enter_enum_argument_variant_expression(ast); self.visit_expression(ast); self.leave_enum_argument_variant_expression(ast); } fn enter_enum_argument_variant_expression( &mut self, ast: &'alloc arena::Box<'alloc, Expression<'alloc>>, ) { } fn leave_enum_argument_variant_expression( &mut self, ast: &'alloc arena::Box<'alloc, Expression<'alloc>>, ) { } fn visit_arguments(&mut self, ast: &'alloc Arguments<'alloc>) { self.enter_arguments(ast); for item in &ast.args { self.visit_argument(item); } self.leave_arguments(ast); } fn enter_arguments(&mut self, ast: &'alloc Arguments<'alloc>) { } fn leave_arguments(&mut self, ast: &'alloc Arguments<'alloc>) { } fn visit_identifier(&mut self, ast: &'alloc Identifier) { self.enter_identifier(ast); self.leave_identifier(ast); } fn enter_identifier(&mut self, ast: &'alloc Identifier) { } fn leave_identifier(&mut self, ast: &'alloc Identifier) { } fn visit_identifier_name(&mut self, ast: &'alloc IdentifierName) { self.enter_identifier_name(ast); self.leave_identifier_name(ast); } fn enter_identifier_name(&mut self, ast: &'alloc IdentifierName) { } fn leave_identifier_name(&mut self, ast: &'alloc IdentifierName) { } fn visit_private_identifier(&mut self, ast: &'alloc PrivateIdentifier) { self.enter_private_identifier(ast); self.leave_private_identifier(ast); } fn enter_private_identifier(&mut self, ast: &'alloc PrivateIdentifier) { } fn leave_private_identifier(&mut self, ast: &'alloc PrivateIdentifier) { } fn visit_label(&mut self, ast: &'alloc Label) { self.enter_label(ast); self.leave_label(ast); } fn enter_label(&mut self, ast: &'alloc Label) { } fn leave_label(&mut self, ast: &'alloc Label) { } fn visit_variable_declaration_kind(&mut self, ast: &'alloc VariableDeclarationKind) { self.enter_variable_declaration_kind(ast); match ast { VariableDeclarationKind::Var { .. } => { self.visit_enum_variable_declaration_kind_variant_var() } VariableDeclarationKind::Let { .. } => { self.visit_enum_variable_declaration_kind_variant_let() } VariableDeclarationKind::Const { .. } => { self.visit_enum_variable_declaration_kind_variant_const() } } self.leave_variable_declaration_kind(ast); } fn enter_variable_declaration_kind(&mut self, ast: &'alloc VariableDeclarationKind) { } fn leave_variable_declaration_kind(&mut self, ast: &'alloc VariableDeclarationKind) { } fn visit_enum_variable_declaration_kind_variant_var(&mut self) { } fn visit_enum_variable_declaration_kind_variant_let(&mut self) { } fn visit_enum_variable_declaration_kind_variant_const(&mut self) { } fn visit_compound_assignment_operator(&mut self, ast: &'alloc CompoundAssignmentOperator) { self.enter_compound_assignment_operator(ast); match ast { CompoundAssignmentOperator::LogicalOr { .. } => { self.visit_enum_compound_assignment_operator_variant_logical_or() } CompoundAssignmentOperator::LogicalAnd { .. } => { self.visit_enum_compound_assignment_operator_variant_logical_and() } CompoundAssignmentOperator::Coalesce { .. } => { self.visit_enum_compound_assignment_operator_variant_coalesce() } CompoundAssignmentOperator::Add { .. } => { self.visit_enum_compound_assignment_operator_variant_add() } CompoundAssignmentOperator::Sub { .. } => { self.visit_enum_compound_assignment_operator_variant_sub() } CompoundAssignmentOperator::Mul { .. } => { self.visit_enum_compound_assignment_operator_variant_mul() } CompoundAssignmentOperator::Div { .. } => { self.visit_enum_compound_assignment_operator_variant_div() } CompoundAssignmentOperator::Mod { .. } => { self.visit_enum_compound_assignment_operator_variant_mod() } CompoundAssignmentOperator::Pow { .. } => { self.visit_enum_compound_assignment_operator_variant_pow() } CompoundAssignmentOperator::LeftShift { .. } => { self.visit_enum_compound_assignment_operator_variant_left_shift() } CompoundAssignmentOperator::RightShift { .. } => { self.visit_enum_compound_assignment_operator_variant_right_shift() } CompoundAssignmentOperator::RightShiftExt { .. } => { self.visit_enum_compound_assignment_operator_variant_right_shift_ext() } CompoundAssignmentOperator::Or { .. } => { self.visit_enum_compound_assignment_operator_variant_or() } CompoundAssignmentOperator::Xor { .. } => { self.visit_enum_compound_assignment_operator_variant_xor() } CompoundAssignmentOperator::And { .. } => { self.visit_enum_compound_assignment_operator_variant_and() } } self.leave_compound_assignment_operator(ast); } fn enter_compound_assignment_operator(&mut self, ast: &'alloc CompoundAssignmentOperator) { } fn leave_compound_assignment_operator(&mut self, ast: &'alloc CompoundAssignmentOperator) { } fn visit_enum_compound_assignment_operator_variant_logical_or(&mut self) { } fn visit_enum_compound_assignment_operator_variant_logical_and(&mut self) { } fn visit_enum_compound_assignment_operator_variant_coalesce(&mut self) { } fn visit_enum_compound_assignment_operator_variant_add(&mut self) { } fn visit_enum_compound_assignment_operator_variant_sub(&mut self) { } fn visit_enum_compound_assignment_operator_variant_mul(&mut self) { } fn visit_enum_compound_assignment_operator_variant_div(&mut self) { } fn visit_enum_compound_assignment_operator_variant_mod(&mut self) { } fn visit_enum_compound_assignment_operator_variant_pow(&mut self) { } fn visit_enum_compound_assignment_operator_variant_left_shift(&mut self) { } fn visit_enum_compound_assignment_operator_variant_right_shift(&mut self) { } fn visit_enum_compound_assignment_operator_variant_right_shift_ext(&mut self) { } fn visit_enum_compound_assignment_operator_variant_or(&mut self) { } fn visit_enum_compound_assignment_operator_variant_xor(&mut self) { } fn visit_enum_compound_assignment_operator_variant_and(&mut self) { } fn visit_binary_operator(&mut self, ast: &'alloc BinaryOperator) { self.enter_binary_operator(ast); match ast { BinaryOperator::Equals { .. } => { self.visit_enum_binary_operator_variant_equals() } BinaryOperator::NotEquals { .. } => { self.visit_enum_binary_operator_variant_not_equals() } BinaryOperator::StrictEquals { .. } => { self.visit_enum_binary_operator_variant_strict_equals() } BinaryOperator::StrictNotEquals { .. } => { self.visit_enum_binary_operator_variant_strict_not_equals() } BinaryOperator::LessThan { .. } => { self.visit_enum_binary_operator_variant_less_than() } BinaryOperator::LessThanOrEqual { .. } => { self.visit_enum_binary_operator_variant_less_than_or_equal() } BinaryOperator::GreaterThan { .. } => { self.visit_enum_binary_operator_variant_greater_than() } BinaryOperator::GreaterThanOrEqual { .. } => { self.visit_enum_binary_operator_variant_greater_than_or_equal() } BinaryOperator::In { .. } => { self.visit_enum_binary_operator_variant_in() } BinaryOperator::Instanceof { .. } => { self.visit_enum_binary_operator_variant_instanceof() } BinaryOperator::LeftShift { .. } => { self.visit_enum_binary_operator_variant_left_shift() } BinaryOperator::RightShift { .. } => { self.visit_enum_binary_operator_variant_right_shift() } BinaryOperator::RightShiftExt { .. } => { self.visit_enum_binary_operator_variant_right_shift_ext() } BinaryOperator::Add { .. } => { self.visit_enum_binary_operator_variant_add() } BinaryOperator::Sub { .. } => { self.visit_enum_binary_operator_variant_sub() } BinaryOperator::Mul { .. } => { self.visit_enum_binary_operator_variant_mul() } BinaryOperator::Div { .. } => { self.visit_enum_binary_operator_variant_div() } BinaryOperator::Mod { .. } => { self.visit_enum_binary_operator_variant_mod() } BinaryOperator::Pow { .. } => { self.visit_enum_binary_operator_variant_pow() } BinaryOperator::Comma { .. } => { self.visit_enum_binary_operator_variant_comma() } BinaryOperator::Coalesce { .. } => { self.visit_enum_binary_operator_variant_coalesce() } BinaryOperator::LogicalOr { .. } => { self.visit_enum_binary_operator_variant_logical_or() } BinaryOperator::LogicalAnd { .. } => { self.visit_enum_binary_operator_variant_logical_and() } BinaryOperator::BitwiseOr { .. } => { self.visit_enum_binary_operator_variant_bitwise_or() } BinaryOperator::BitwiseXor { .. } => { self.visit_enum_binary_operator_variant_bitwise_xor() } BinaryOperator::BitwiseAnd { .. } => { self.visit_enum_binary_operator_variant_bitwise_and() } } self.leave_binary_operator(ast); } fn enter_binary_operator(&mut self, ast: &'alloc BinaryOperator) { } fn leave_binary_operator(&mut self, ast: &'alloc BinaryOperator) { } fn visit_enum_binary_operator_variant_equals(&mut self) { } fn visit_enum_binary_operator_variant_not_equals(&mut self) { } fn visit_enum_binary_operator_variant_strict_equals(&mut self) { } fn visit_enum_binary_operator_variant_strict_not_equals(&mut self) { } fn visit_enum_binary_operator_variant_less_than(&mut self) { } fn visit_enum_binary_operator_variant_less_than_or_equal(&mut self) { } fn visit_enum_binary_operator_variant_greater_than(&mut self) { } fn visit_enum_binary_operator_variant_greater_than_or_equal(&mut self) { } fn visit_enum_binary_operator_variant_in(&mut self) { } fn visit_enum_binary_operator_variant_instanceof(&mut self) { } fn visit_enum_binary_operator_variant_left_shift(&mut self) { } fn visit_enum_binary_operator_variant_right_shift(&mut self) { } fn visit_enum_binary_operator_variant_right_shift_ext(&mut self) { } fn visit_enum_binary_operator_variant_add(&mut self) { } fn visit_enum_binary_operator_variant_sub(&mut self) { } fn visit_enum_binary_operator_variant_mul(&mut self) { } fn visit_enum_binary_operator_variant_div(&mut self) { } fn visit_enum_binary_operator_variant_mod(&mut self) { } fn visit_enum_binary_operator_variant_pow(&mut self) { } fn visit_enum_binary_operator_variant_comma(&mut self) { } fn visit_enum_binary_operator_variant_coalesce(&mut self) { } fn visit_enum_binary_operator_variant_logical_or(&mut self) { } fn visit_enum_binary_operator_variant_logical_and(&mut self) { } fn visit_enum_binary_operator_variant_bitwise_or(&mut self) { } fn visit_enum_binary_operator_variant_bitwise_xor(&mut self) { } fn visit_enum_binary_operator_variant_bitwise_and(&mut self) { } fn visit_unary_operator(&mut self, ast: &'alloc UnaryOperator) { self.enter_unary_operator(ast); match ast { UnaryOperator::Plus { .. } => { self.visit_enum_unary_operator_variant_plus() } UnaryOperator::Minus { .. } => { self.visit_enum_unary_operator_variant_minus() } UnaryOperator::LogicalNot { .. } => { self.visit_enum_unary_operator_variant_logical_not() } UnaryOperator::BitwiseNot { .. } => { self.visit_enum_unary_operator_variant_bitwise_not() } UnaryOperator::Typeof { .. } => { self.visit_enum_unary_operator_variant_typeof() } UnaryOperator::Void { .. } => { self.visit_enum_unary_operator_variant_void() } UnaryOperator::Delete { .. } => { self.visit_enum_unary_operator_variant_delete() } } self.leave_unary_operator(ast); } fn enter_unary_operator(&mut self, ast: &'alloc UnaryOperator) { } fn leave_unary_operator(&mut self, ast: &'alloc UnaryOperator) { } fn visit_enum_unary_operator_variant_plus(&mut self) { } fn visit_enum_unary_operator_variant_minus(&mut self) { } fn visit_enum_unary_operator_variant_logical_not(&mut self) { } fn visit_enum_unary_operator_variant_bitwise_not(&mut self) { } fn visit_enum_unary_operator_variant_typeof(&mut self) { } fn visit_enum_unary_operator_variant_void(&mut self) { } fn visit_enum_unary_operator_variant_delete(&mut self) { } fn visit_update_operator(&mut self, ast: &'alloc UpdateOperator) { self.enter_update_operator(ast); match ast { UpdateOperator::Increment { .. } => { self.visit_enum_update_operator_variant_increment() } UpdateOperator::Decrement { .. } => { self.visit_enum_update_operator_variant_decrement() } } self.leave_update_operator(ast); } fn enter_update_operator(&mut self, ast: &'alloc UpdateOperator) { } fn leave_update_operator(&mut self, ast: &'alloc UpdateOperator) { } fn visit_enum_update_operator_variant_increment(&mut self) { } fn visit_enum_update_operator_variant_decrement(&mut self) { } fn visit_function(&mut self, ast: &'alloc Function<'alloc>) { self.enter_function(ast); if let Some(item) = &ast.name { self.visit_binding_identifier(item); } self.visit_formal_parameters(&ast.params); self.visit_function_body(&ast.body); self.leave_function(ast); } fn enter_function(&mut self, ast: &'alloc Function<'alloc>) { } fn leave_function(&mut self, ast: &'alloc Function<'alloc>) { } fn visit_program(&mut self, ast: &'alloc Program<'alloc>) { self.enter_program(ast); match ast { Program::Module(ast) => { self.visit_enum_program_variant_module(ast) } Program::Script(ast) => { self.visit_enum_program_variant_script(ast) } } self.leave_program(ast); } fn enter_program(&mut self, ast: &'alloc Program<'alloc>) { } fn leave_program(&mut self, ast: &'alloc Program<'alloc>) { } fn visit_enum_program_variant_module( &mut self, ast: &'alloc Module<'alloc>, ) { self.enter_enum_program_variant_module(ast); self.visit_module(ast); self.leave_enum_program_variant_module(ast); } fn enter_enum_program_variant_module( &mut self, ast: &'alloc Module<'alloc>, ) { } fn leave_enum_program_variant_module( &mut self, ast: &'alloc Module<'alloc>, ) { } fn visit_enum_program_variant_script( &mut self, ast: &'alloc Script<'alloc>, ) { self.enter_enum_program_variant_script(ast); self.visit_script(ast); self.leave_enum_program_variant_script(ast); } fn enter_enum_program_variant_script( &mut self, ast: &'alloc Script<'alloc>, ) { } fn leave_enum_program_variant_script( &mut self, ast: &'alloc Script<'alloc>, ) { } fn visit_if_statement(&mut self, ast: &'alloc IfStatement<'alloc>) { self.enter_if_statement(ast); self.visit_expression(&ast.test); self.visit_statement(&ast.consequent); if let Some(item) = &ast.alternate { self.visit_statement(item); } self.leave_if_statement(ast); } fn enter_if_statement(&mut self, ast: &'alloc IfStatement<'alloc>) { } fn leave_if_statement(&mut self, ast: &'alloc IfStatement<'alloc>) { } fn visit_statement(&mut self, ast: &'alloc Statement<'alloc>) { self.enter_statement(ast); match ast { Statement::BlockStatement { block, .. } => { self.visit_enum_statement_variant_block_statement( block, ) } Statement::BreakStatement { label, .. } => { self.visit_enum_statement_variant_break_statement( label, ) } Statement::ContinueStatement { label, .. } => { self.visit_enum_statement_variant_continue_statement( label, ) } Statement::DebuggerStatement { .. } => { self.visit_enum_statement_variant_debugger_statement() } Statement::DoWhileStatement { block, test, .. } => { self.visit_enum_statement_variant_do_while_statement( block, test, ) } Statement::EmptyStatement { .. } => { self.visit_enum_statement_variant_empty_statement() } Statement::ExpressionStatement(ast) => { self.visit_enum_statement_variant_expression_statement(ast) } Statement::ForInStatement { left, right, block, .. } => { self.visit_enum_statement_variant_for_in_statement( left, right, block, ) } Statement::ForOfStatement { left, right, block, .. } => { self.visit_enum_statement_variant_for_of_statement( left, right, block, ) } Statement::ForStatement { init, test, update, block, .. } => { self.visit_enum_statement_variant_for_statement( init, test, update, block, ) } Statement::IfStatement(ast) => { self.visit_enum_statement_variant_if_statement(ast) } Statement::LabelledStatement { label, body, .. } => { self.visit_enum_statement_variant_labelled_statement( label, body, ) } Statement::ReturnStatement { expression, .. } => { self.visit_enum_statement_variant_return_statement( expression, ) } Statement::SwitchStatement { discriminant, cases, .. } => { self.visit_enum_statement_variant_switch_statement( discriminant, cases, ) } Statement::SwitchStatementWithDefault { discriminant, pre_default_cases, default_case, post_default_cases, .. } => { self.visit_enum_statement_variant_switch_statement_with_default( discriminant, pre_default_cases, default_case, post_default_cases, ) } Statement::ThrowStatement { expression, .. } => { self.visit_enum_statement_variant_throw_statement( expression, ) } Statement::TryCatchStatement { body, catch_clause, .. } => { self.visit_enum_statement_variant_try_catch_statement( body, catch_clause, ) } Statement::TryFinallyStatement { body, catch_clause, finalizer, .. } => { self.visit_enum_statement_variant_try_finally_statement( body, catch_clause, finalizer, ) } Statement::WhileStatement { test, block, .. } => { self.visit_enum_statement_variant_while_statement( test, block, ) } Statement::WithStatement { object, body, .. } => { self.visit_enum_statement_variant_with_statement( object, body, ) } Statement::VariableDeclarationStatement(ast) => { self.visit_enum_statement_variant_variable_declaration_statement(ast) } Statement::FunctionDeclaration(ast) => { self.visit_enum_statement_variant_function_declaration(ast) } Statement::ClassDeclaration(ast) => { self.visit_enum_statement_variant_class_declaration(ast) } } self.leave_statement(ast); } fn enter_statement(&mut self, ast: &'alloc Statement<'alloc>) { } fn leave_statement(&mut self, ast: &'alloc Statement<'alloc>) { } fn visit_enum_statement_variant_block_statement( &mut self, block: &'alloc Block<'alloc>, ) { self.enter_enum_statement_variant_block_statement( block, ); self.visit_block(block); self.leave_enum_statement_variant_block_statement( block, ); } fn enter_enum_statement_variant_block_statement( &mut self, block: &'alloc Block<'alloc>, ) { } fn leave_enum_statement_variant_block_statement( &mut self, block: &'alloc Block<'alloc>, ) { } fn visit_enum_statement_variant_break_statement( &mut self, label: &'alloc Option