Source code

Revision control

Copy as Markdown

Other Tools

// WARNING: This file is auto-generated by crates/ast/generate_ast.py.
#![allow(unused_variables)]
use crate::arena;
use crate::source_atom_set::{SourceAtomSet, SourceAtomSetIndex};
use crate::source_slice_list::{SourceSliceList, SourceSliceIndex};
use crate::types::*;
use std::ops::Deref;
use std::io;
fn newline<W>(out: &mut W, depth: usize)
where
W: io::Write,
{
writeln!(out, "").expect("failed to dump");
for i in 0..depth {
write!(out, " ").expect("failed to dump");
}
}
pub trait ASTDump {
fn dump_with_atoms<W>(
&self,
out: &mut W,
atoms: &SourceAtomSet,
slices: &SourceSliceList
)
where
W: io::Write,
{
self.dump_with_atoms_at(out, atoms, slices, 0);
writeln!(out, "").expect("failed to dump");
}
fn dump_with_atoms_at<W>(
&self,
out: &mut W,
atoms: &SourceAtomSet,
slices: &SourceSliceList,
depth: usize,
)
where W: io::Write;
}
impl<'alloc> ASTDump for Argument<'alloc> {
fn dump_with_atoms_at<W>(&self, out: &mut W, atoms: &SourceAtomSet, slices: &SourceSliceList, depth: usize)
where W: io::Write
{
match self {
Argument::SpreadElement(ast) => {
ast.dump_with_atoms_at(out, atoms, slices, depth);
}
Argument::Expression(ast) => {
ast.dump_with_atoms_at(out, atoms, slices, depth);
}
}
}
}
impl<'alloc> ASTDump for Arguments<'alloc> {
fn dump_with_atoms_at<W>(&self, out: &mut W, atoms: &SourceAtomSet, slices: &SourceSliceList, depth: usize)
where W: io::Write
{
write!(out, "(Arguments").expect("failed to dump");
write!(out, " ").expect("failed to dump");
write!(out, "args=").expect("failed to dump");
self.args.dump_with_atoms_at(out, atoms, slices, depth + 1);
write!(out, ")").expect("failed to dump");
}
}
impl<'alloc> ASTDump for Identifier {
fn dump_with_atoms_at<W>(&self, out: &mut W, atoms: &SourceAtomSet, slices: &SourceSliceList, depth: usize)
where W: io::Write
{
write!(out, "(Identifier").expect("failed to dump");
write!(out, " ").expect("failed to dump");
write!(out, "value=").expect("failed to dump");
self.value.dump_with_atoms_at(out, atoms, slices, depth + 1);
write!(out, ")").expect("failed to dump");
}
}
impl<'alloc> ASTDump for IdentifierName {
fn dump_with_atoms_at<W>(&self, out: &mut W, atoms: &SourceAtomSet, slices: &SourceSliceList, depth: usize)
where W: io::Write
{
write!(out, "(IdentifierName").expect("failed to dump");
write!(out, " ").expect("failed to dump");
write!(out, "value=").expect("failed to dump");
self.value.dump_with_atoms_at(out, atoms, slices, depth + 1);
write!(out, ")").expect("failed to dump");
}
}
impl<'alloc> ASTDump for PrivateIdentifier {
fn dump_with_atoms_at<W>(&self, out: &mut W, atoms: &SourceAtomSet, slices: &SourceSliceList, depth: usize)
where W: io::Write
{
write!(out, "(PrivateIdentifier").expect("failed to dump");
write!(out, " ").expect("failed to dump");
write!(out, "value=").expect("failed to dump");
self.value.dump_with_atoms_at(out, atoms, slices, depth + 1);
write!(out, ")").expect("failed to dump");
}
}
impl<'alloc> ASTDump for Label {
fn dump_with_atoms_at<W>(&self, out: &mut W, atoms: &SourceAtomSet, slices: &SourceSliceList, depth: usize)
where W: io::Write
{
write!(out, "(Label").expect("failed to dump");
write!(out, " ").expect("failed to dump");
write!(out, "value=").expect("failed to dump");
self.value.dump_with_atoms_at(out, atoms, slices, depth + 1);
write!(out, ")").expect("failed to dump");
}
}
impl<'alloc> ASTDump for VariableDeclarationKind {
fn dump_with_atoms_at<W>(&self, out: &mut W, atoms: &SourceAtomSet, slices: &SourceSliceList, depth: usize)
where W: io::Write
{
match self {
VariableDeclarationKind::Var { .. } => {
write!(out, "Var").expect("failed to dump");
}
VariableDeclarationKind::Let { .. } => {
write!(out, "Let").expect("failed to dump");
}
VariableDeclarationKind::Const { .. } => {
write!(out, "Const").expect("failed to dump");
}
}
}
}
impl<'alloc> ASTDump for CompoundAssignmentOperator {
fn dump_with_atoms_at<W>(&self, out: &mut W, atoms: &SourceAtomSet, slices: &SourceSliceList, depth: usize)
where W: io::Write
{
match self {
CompoundAssignmentOperator::LogicalOr { .. } => {
write!(out, "LogicalOr").expect("failed to dump");
}
CompoundAssignmentOperator::LogicalAnd { .. } => {
write!(out, "LogicalAnd").expect("failed to dump");
}
CompoundAssignmentOperator::Coalesce { .. } => {
write!(out, "Coalesce").expect("failed to dump");
}
CompoundAssignmentOperator::Add { .. } => {
write!(out, "Add").expect("failed to dump");
}
CompoundAssignmentOperator::Sub { .. } => {
write!(out, "Sub").expect("failed to dump");
}
CompoundAssignmentOperator::Mul { .. } => {
write!(out, "Mul").expect("failed to dump");
}
CompoundAssignmentOperator::Div { .. } => {
write!(out, "Div").expect("failed to dump");
}
CompoundAssignmentOperator::Mod { .. } => {
write!(out, "Mod").expect("failed to dump");
}
CompoundAssignmentOperator::Pow { .. } => {
write!(out, "Pow").expect("failed to dump");
}
CompoundAssignmentOperator::LeftShift { .. } => {
write!(out, "LeftShift").expect("failed to dump");
}
CompoundAssignmentOperator::RightShift { .. } => {
write!(out, "RightShift").expect("failed to dump");
}
CompoundAssignmentOperator::RightShiftExt { .. } => {
write!(out, "RightShiftExt").expect("failed to dump");
}
CompoundAssignmentOperator::Or { .. } => {
write!(out, "Or").expect("failed to dump");
}
CompoundAssignmentOperator::Xor { .. } => {
write!(out, "Xor").expect("failed to dump");
}
CompoundAssignmentOperator::And { .. } => {
write!(out, "And").expect("failed to dump");
}
}
}
}
impl<'alloc> ASTDump for BinaryOperator {
fn dump_with_atoms_at<W>(&self, out: &mut W, atoms: &SourceAtomSet, slices: &SourceSliceList, depth: usize)
where W: io::Write
{
match self {
BinaryOperator::Equals { .. } => {
write!(out, "Equals").expect("failed to dump");
}
BinaryOperator::NotEquals { .. } => {
write!(out, "NotEquals").expect("failed to dump");
}
BinaryOperator::StrictEquals { .. } => {
write!(out, "StrictEquals").expect("failed to dump");
}
BinaryOperator::StrictNotEquals { .. } => {
write!(out, "StrictNotEquals").expect("failed to dump");
}
BinaryOperator::LessThan { .. } => {
write!(out, "LessThan").expect("failed to dump");
}
BinaryOperator::LessThanOrEqual { .. } => {
write!(out, "LessThanOrEqual").expect("failed to dump");
}
BinaryOperator::GreaterThan { .. } => {
write!(out, "GreaterThan").expect("failed to dump");
}
BinaryOperator::GreaterThanOrEqual { .. } => {
write!(out, "GreaterThanOrEqual").expect("failed to dump");
}
BinaryOperator::In { .. } => {
write!(out, "In").expect("failed to dump");
}
BinaryOperator::Instanceof { .. } => {
write!(out, "Instanceof").expect("failed to dump");
}
BinaryOperator::LeftShift { .. } => {
write!(out, "LeftShift").expect("failed to dump");
}
BinaryOperator::RightShift { .. } => {
write!(out, "RightShift").expect("failed to dump");
}
BinaryOperator::RightShiftExt { .. } => {
write!(out, "RightShiftExt").expect("failed to dump");
}
BinaryOperator::Add { .. } => {
write!(out, "Add").expect("failed to dump");
}
BinaryOperator::Sub { .. } => {
write!(out, "Sub").expect("failed to dump");
}
BinaryOperator::Mul { .. } => {
write!(out, "Mul").expect("failed to dump");
}
BinaryOperator::Div { .. } => {
write!(out, "Div").expect("failed to dump");
}
BinaryOperator::Mod { .. } => {
write!(out, "Mod").expect("failed to dump");
}
BinaryOperator::Pow { .. } => {
write!(out, "Pow").expect("failed to dump");
}
BinaryOperator::Comma { .. } => {
write!(out, "Comma").expect("failed to dump");
}
BinaryOperator::Coalesce { .. } => {
write!(out, "Coalesce").expect("failed to dump");
}
BinaryOperator::LogicalOr { .. } => {
write!(out, "LogicalOr").expect("failed to dump");
}
BinaryOperator::LogicalAnd { .. } => {
write!(out, "LogicalAnd").expect("failed to dump");
}
BinaryOperator::BitwiseOr { .. } => {
write!(out, "BitwiseOr").expect("failed to dump");
}
BinaryOperator::BitwiseXor { .. } => {
write!(out, "BitwiseXor").expect("failed to dump");
}
BinaryOperator::BitwiseAnd { .. } => {
write!(out, "BitwiseAnd").expect("failed to dump");
}
}
}
}
impl<'alloc> ASTDump for UnaryOperator {
fn dump_with_atoms_at<W>(&self, out: &mut W, atoms: &SourceAtomSet, slices: &SourceSliceList, depth: usize)
where W: io::Write
{
match self {
UnaryOperator::Plus { .. } => {
write!(out, "Plus").expect("failed to dump");
}
UnaryOperator::Minus { .. } => {
write!(out, "Minus").expect("failed to dump");
}
UnaryOperator::LogicalNot { .. } => {
write!(out, "LogicalNot").expect("failed to dump");
}
UnaryOperator::BitwiseNot { .. } => {
write!(out, "BitwiseNot").expect("failed to dump");
}
UnaryOperator::Typeof { .. } => {
write!(out, "Typeof").expect("failed to dump");
}
UnaryOperator::Void { .. } => {
write!(out, "Void").expect("failed to dump");
}
UnaryOperator::Delete { .. } => {
write!(out, "Delete").expect("failed to dump");
}
}
}
}
impl<'alloc> ASTDump for UpdateOperator {
fn dump_with_atoms_at<W>(&self, out: &mut W, atoms: &SourceAtomSet, slices: &SourceSliceList, depth: usize)
where W: io::Write
{
match self {
UpdateOperator::Increment { .. } => {
write!(out, "Increment").expect("failed to dump");
}
UpdateOperator::Decrement { .. } => {
write!(out, "Decrement").expect("failed to dump");
}
}
}
}
impl<'alloc> ASTDump for Function<'alloc> {
fn dump_with_atoms_at<W>(&self, out: &mut W, atoms: &SourceAtomSet, slices: &SourceSliceList, depth: usize)
where W: io::Write
{
write!(out, "(Function").expect("failed to dump");
newline(out, depth + 1);
write!(out, "name=").expect("failed to dump");
self.name.dump_with_atoms_at(out, atoms, slices, depth + 1);
newline(out, depth + 1);
write!(out, "is_async=").expect("failed to dump");
self.is_async.dump_with_atoms_at(out, atoms, slices, depth + 1);
newline(out, depth + 1);
write!(out, "is_generator=").expect("failed to dump");
self.is_generator.dump_with_atoms_at(out, atoms, slices, depth + 1);
newline(out, depth + 1);
write!(out, "params=").expect("failed to dump");
self.params.dump_with_atoms_at(out, atoms, slices, depth + 1);
newline(out, depth + 1);
write!(out, "body=").expect("failed to dump");
self.body.dump_with_atoms_at(out, atoms, slices, depth + 1);
write!(out, ")").expect("failed to dump");
}
}
impl<'alloc> ASTDump for Program<'alloc> {
fn dump_with_atoms_at<W>(&self, out: &mut W, atoms: &SourceAtomSet, slices: &SourceSliceList, depth: usize)
where W: io::Write
{
match self {
Program::Module(ast) => {
ast.dump_with_atoms_at(out, atoms, slices, depth);
}
Program::Script(ast) => {
ast.dump_with_atoms_at(out, atoms, slices, depth);
}
}
}
}
impl<'alloc> ASTDump for IfStatement<'alloc> {
fn dump_with_atoms_at<W>(&self, out: &mut W, atoms: &SourceAtomSet, slices: &SourceSliceList, depth: usize)
where W: io::Write
{
write!(out, "(IfStatement").expect("failed to dump");
newline(out, depth + 1);
write!(out, "test=").expect("failed to dump");
self.test.dump_with_atoms_at(out, atoms, slices, depth + 1);
newline(out, depth + 1);
write!(out, "consequent=").expect("failed to dump");
self.consequent.dump_with_atoms_at(out, atoms, slices, depth + 1);
newline(out, depth + 1);
write!(out, "alternate=").expect("failed to dump");
self.alternate.dump_with_atoms_at(out, atoms, slices, depth + 1);
write!(out, ")").expect("failed to dump");
}
}
impl<'alloc> ASTDump for Statement<'alloc> {
fn dump_with_atoms_at<W>(&self, out: &mut W, atoms: &SourceAtomSet, slices: &SourceSliceList, depth: usize)
where W: io::Write
{
match self {
Statement::BlockStatement { block, .. } => {
write!(out, "(BlockStatement").expect("failed to dump");
write!(out, " ").expect("failed to dump");
write!(out, "block=").expect("failed to dump");
block.dump_with_atoms_at(out, atoms, slices, depth + 1);
write!(out, ")").expect("failed to dump");
}
Statement::BreakStatement { label, .. } => {
write!(out, "(BreakStatement").expect("failed to dump");
write!(out, " ").expect("failed to dump");
write!(out, "label=").expect("failed to dump");
label.dump_with_atoms_at(out, atoms, slices, depth + 1);
write!(out, ")").expect("failed to dump");
}
Statement::ContinueStatement { label, .. } => {
write!(out, "(ContinueStatement").expect("failed to dump");
write!(out, " ").expect("failed to dump");
write!(out, "label=").expect("failed to dump");
label.dump_with_atoms_at(out, atoms, slices, depth + 1);
write!(out, ")").expect("failed to dump");
}
Statement::DebuggerStatement { .. } => {
write!(out, "DebuggerStatement").expect("failed to dump");
}
Statement::DoWhileStatement { block, test, .. } => {
write!(out, "(DoWhileStatement").expect("failed to dump");
newline(out, depth + 1);
write!(out, "block=").expect("failed to dump");
block.dump_with_atoms_at(out, atoms, slices, depth + 1);
newline(out, depth + 1);
write!(out, "test=").expect("failed to dump");
test.dump_with_atoms_at(out, atoms, slices, depth + 1);
write!(out, ")").expect("failed to dump");
}
Statement::EmptyStatement { .. } => {
write!(out, "EmptyStatement").expect("failed to dump");
}
Statement::ExpressionStatement(ast) => {
ast.dump_with_atoms_at(out, atoms, slices, depth);
}
Statement::ForInStatement { left, right, block, .. } => {
write!(out, "(ForInStatement").expect("failed to dump");
newline(out, depth + 1);
write!(out, "left=").expect("failed to dump");
left.dump_with_atoms_at(out, atoms, slices, depth + 1);
newline(out, depth + 1);
write!(out, "right=").expect("failed to dump");
right.dump_with_atoms_at(out, atoms, slices, depth + 1);
newline(out, depth + 1);
write!(out, "block=").expect("failed to dump");
block.dump_with_atoms_at(out, atoms, slices, depth + 1);
write!(out, ")").expect("failed to dump");
}
Statement::ForOfStatement { left, right, block, .. } => {
write!(out, "(ForOfStatement").expect("failed to dump");
newline(out, depth + 1);
write!(out, "left=").expect("failed to dump");
left.dump_with_atoms_at(out, atoms, slices, depth + 1);
newline(out, depth + 1);
write!(out, "right=").expect("failed to dump");
right.dump_with_atoms_at(out, atoms, slices, depth + 1);
newline(out, depth + 1);
write!(out, "block=").expect("failed to dump");
block.dump_with_atoms_at(out, atoms, slices, depth + 1);
write!(out, ")").expect("failed to dump");
}
Statement::ForStatement { init, test, update, block, .. } => {
write!(out, "(ForStatement").expect("failed to dump");
newline(out, depth + 1);
write!(out, "init=").expect("failed to dump");
init.dump_with_atoms_at(out, atoms, slices, depth + 1);
newline(out, depth + 1);
write!(out, "test=").expect("failed to dump");
test.dump_with_atoms_at(out, atoms, slices, depth + 1);
newline(out, depth + 1);
write!(out, "update=").expect("failed to dump");
update.dump_with_atoms_at(out, atoms, slices, depth + 1);
newline(out, depth + 1);
write!(out, "block=").expect("failed to dump");
block.dump_with_atoms_at(out, atoms, slices, depth + 1);
write!(out, ")").expect("failed to dump");
}
Statement::IfStatement(ast) => {
ast.dump_with_atoms_at(out, atoms, slices, depth);
}
Statement::LabelledStatement { label, body, .. } => {
write!(out, "(LabelledStatement").expect("failed to dump");
newline(out, depth + 1);
write!(out, "label=").expect("failed to dump");
label.dump_with_atoms_at(out, atoms, slices, depth + 1);
newline(out, depth + 1);
write!(out, "body=").expect("failed to dump");
body.dump_with_atoms_at(out, atoms, slices, depth + 1);
write!(out, ")").expect("failed to dump");
}
Statement::ReturnStatement { expression, .. } => {
write!(out, "(ReturnStatement").expect("failed to dump");
write!(out, " ").expect("failed to dump");
write!(out, "expression=").expect("failed to dump");
expression.dump_with_atoms_at(out, atoms, slices, depth + 1);
write!(out, ")").expect("failed to dump");
}
Statement::SwitchStatement { discriminant, cases, .. } => {
write!(out, "(SwitchStatement").expect("failed to dump");
newline(out, depth + 1);
write!(out, "discriminant=").expect("failed to dump");
discriminant.dump_with_atoms_at(out, atoms, slices, depth + 1);
newline(out, depth + 1);
write!(out, "cases=").expect("failed to dump");
cases.dump_with_atoms_at(out, atoms, slices, depth + 1);
write!(out, ")").expect("failed to dump");
}
Statement::SwitchStatementWithDefault { discriminant, pre_default_cases, default_case, post_default_cases, .. } => {
write!(out, "(SwitchStatementWithDefault").expect("failed to dump");
newline(out, depth + 1);
write!(out, "discriminant=").expect("failed to dump");
discriminant.dump_with_atoms_at(out, atoms, slices, depth + 1);
newline(out, depth + 1);
write!(out, "pre_default_cases=").expect("failed to dump");
pre_default_cases.dump_with_atoms_at(out, atoms, slices, depth + 1);
newline(out, depth + 1);
write!(out, "default_case=").expect("failed to dump");
default_case.dump_with_atoms_at(out, atoms, slices, depth + 1);
newline(out, depth + 1);
write!(out, "post_default_cases=").expect("failed to dump");
post_default_cases.dump_with_atoms_at(out, atoms, slices, depth + 1);
write!(out, ")").expect("failed to dump");
}
Statement::ThrowStatement { expression, .. } => {
write!(out, "(ThrowStatement").expect("failed to dump");
write!(out, " ").expect("failed to dump");
write!(out, "expression=").expect("failed to dump");
expression.dump_with_atoms_at(out, atoms, slices, depth + 1);
write!(out, ")").expect("failed to dump");
}
Statement::TryCatchStatement { body, catch_clause, .. } => {
write!(out, "(TryCatchStatement").expect("failed to dump");
newline(out, depth + 1);
write!(out, "body=").expect("failed to dump");
body.dump_with_atoms_at(out, atoms, slices, depth + 1);
newline(out, depth + 1);
write!(out, "catch_clause=").expect("failed to dump");
catch_clause.dump_with_atoms_at(out, atoms, slices, depth + 1);
write!(out, ")").expect("failed to dump");
}
Statement::TryFinallyStatement { body, catch_clause, finalizer, .. } => {
write!(out, "(TryFinallyStatement").expect("failed to dump");
newline(out, depth + 1);
write!(out, "body=").expect("failed to dump");
body.dump_with_atoms_at(out, atoms, slices, depth + 1);
newline(out, depth + 1);
write!(out, "catch_clause=").expect("failed to dump");
catch_clause.dump_with_atoms_at(out, atoms, slices, depth + 1);
newline(out, depth + 1);
write!(out, "finalizer=").expect("failed to dump");
finalizer.dump_with_atoms_at(out, atoms, slices, depth + 1);
write!(out, ")").expect("failed to dump");
}
Statement::WhileStatement { test, block, .. } => {
write!(out, "(WhileStatement").expect("failed to dump");
newline(out, depth + 1);
write!(out, "test=").expect("failed to dump");
test.dump_with_atoms_at(out, atoms, slices, depth + 1);
newline(out, depth + 1);
write!(out, "block=").expect("failed to dump");
block.dump_with_atoms_at(out, atoms, slices, depth + 1);
write!(out, ")").expect("failed to dump");
}
Statement::WithStatement { object, body, .. } => {
write!(out, "(WithStatement").expect("failed to dump");
newline(out, depth + 1);
write!(out, "object=").expect("failed to dump");
object.dump_with_atoms_at(out, atoms, slices, depth + 1);
newline(out, depth + 1);
write!(out, "body=").expect("failed to dump");
body.dump_with_atoms_at(out, atoms, slices, depth + 1);
write!(out, ")").expect("failed to dump");
}
Statement::VariableDeclarationStatement(ast) => {
ast.dump_with_atoms_at(out, atoms, slices, depth);
}
Statement::FunctionDeclaration(ast) => {
ast.dump_with_atoms_at(out, atoms, slices, depth);
}
Statement::ClassDeclaration(ast) => {
ast.dump_with_atoms_at(out, atoms, slices, depth);
}
}
}
}
impl<'alloc> ASTDump for Expression<'alloc> {
fn dump_with_atoms_at<W>(&self, out: &mut W, atoms: &SourceAtomSet, slices: &SourceSliceList, depth: usize)
where W: io::Write
{
match self {
Expression::MemberExpression(ast) => {
ast.dump_with_atoms_at(out, atoms, slices, depth);
}
Expression::ClassExpression(ast) => {
ast.dump_with_atoms_at(out, atoms, slices, depth);
}
Expression::LiteralBooleanExpression { value, .. } => {
write!(out, "(LiteralBooleanExpression").expect("failed to dump");
write!(out, " ").expect("failed to dump");
write!(out, "value=").expect("failed to dump");
value.dump_with_atoms_at(out, atoms, slices, depth + 1);
write!(out, ")").expect("failed to dump");
}
Expression::LiteralInfinityExpression { .. } => {
write!(out, "LiteralInfinityExpression").expect("failed to dump");
}
Expression::LiteralNullExpression { .. } => {
write!(out, "LiteralNullExpression").expect("failed to dump");
}
Expression::LiteralNumericExpression(ast) => {
ast.dump_with_atoms_at(out, atoms, slices, depth);
}
Expression::LiteralRegExpExpression { pattern, global, ignore_case, multi_line, dot_all, sticky, unicode, .. } => {
write!(out, "(LiteralRegExpExpression").expect("failed to dump");
newline(out, depth + 1);
write!(out, "pattern=").expect("failed to dump");
pattern.dump_with_atoms_at(out, atoms, slices, depth + 1);
newline(out, depth + 1);
write!(out, "global=").expect("failed to dump");
global.dump_with_atoms_at(out, atoms, slices, depth + 1);
newline(out, depth + 1);
write!(out, "ignore_case=").expect("failed to dump");
ignore_case.dump_with_atoms_at(out, atoms, slices, depth + 1);
newline(out, depth + 1);
write!(out, "multi_line=").expect("failed to dump");
multi_line.dump_with_atoms_at(out, atoms, slices, depth + 1);
newline(out, depth + 1);
write!(out, "dot_all=").expect("failed to dump");
dot_all.dump_with_atoms_at(out, atoms, slices, depth + 1);
newline(out, depth + 1);
write!(out, "sticky=").expect("failed to dump");
sticky.dump_with_atoms_at(out, atoms, slices, depth + 1);
newline(out, depth + 1);
write!(out, "unicode=").expect("failed to dump");
unicode.dump_with_atoms_at(out, atoms, slices, depth + 1);
write!(out, ")").expect("failed to dump");
}
Expression::LiteralStringExpression { value, .. } => {
write!(out, "(LiteralStringExpression").expect("failed to dump");
write!(out, " ").expect("failed to dump");
write!(out, "value=").expect("failed to dump");
value.dump_with_atoms_at(out, atoms, slices, depth + 1);
write!(out, ")").expect("failed to dump");
}
Expression::ArrayExpression(ast) => {
ast.dump_with_atoms_at(out, atoms, slices, depth);
}
Expression::ArrowExpression { is_async, params, body, .. } => {
write!(out, "(ArrowExpression").expect("failed to dump");
newline(out, depth + 1);
write!(out, "is_async=").expect("failed to dump");
is_async.dump_with_atoms_at(out, atoms, slices, depth + 1);
newline(out, depth + 1);
write!(out, "params=").expect("failed to dump");
params.dump_with_atoms_at(out, atoms, slices, depth + 1);
newline(out, depth + 1);
write!(out, "body=").expect("failed to dump");
body.dump_with_atoms_at(out, atoms, slices, depth + 1);
write!(out, ")").expect("failed to dump");
}
Expression::AssignmentExpression { binding, expression, .. } => {
write!(out, "(AssignmentExpression").expect("failed to dump");
newline(out, depth + 1);
write!(out, "binding=").expect("failed to dump");
binding.dump_with_atoms_at(out, atoms, slices, depth + 1);
newline(out, depth + 1);
write!(out, "expression=").expect("failed to dump");
expression.dump_with_atoms_at(out, atoms, slices, depth + 1);
write!(out, ")").expect("failed to dump");
}
Expression::BinaryExpression { operator, left, right, .. } => {
write!(out, "(BinaryExpression").expect("failed to dump");
newline(out, depth + 1);
write!(out, "operator=").expect("failed to dump");
operator.dump_with_atoms_at(out, atoms, slices, depth + 1);
newline(out, depth + 1);
write!(out, "left=").expect("failed to dump");
left.dump_with_atoms_at(out, atoms, slices, depth + 1);
newline(out, depth + 1);
write!(out, "right=").expect("failed to dump");
right.dump_with_atoms_at(out, atoms, slices, depth + 1);
write!(out, ")").expect("failed to dump");
}
Expression::CallExpression(ast) => {
ast.dump_with_atoms_at(out, atoms, slices, depth);
}
Expression::CompoundAssignmentExpression { operator, binding, expression, .. } => {
write!(out, "(CompoundAssignmentExpression").expect("failed to dump");
newline(out, depth + 1);
write!(out, "operator=").expect("failed to dump");
operator.dump_with_atoms_at(out, atoms, slices, depth + 1);
newline(out, depth + 1);
write!(out, "binding=").expect("failed to dump");
binding.dump_with_atoms_at(out, atoms, slices, depth + 1);
newline(out, depth + 1);
write!(out, "expression=").expect("failed to dump");
expression.dump_with_atoms_at(out, atoms, slices, depth + 1);
write!(out, ")").expect("failed to dump");
}
Expression::ConditionalExpression { test, consequent, alternate, .. } => {
write!(out, "(ConditionalExpression").expect("failed to dump");
newline(out, depth + 1);
write!(out, "test=").expect("failed to dump");
test.dump_with_atoms_at(out, atoms, slices, depth + 1);
newline(out, depth + 1);
write!(out, "consequent=").expect("failed to dump");
consequent.dump_with_atoms_at(out, atoms, slices, depth + 1);
newline(out, depth + 1);
write!(out, "alternate=").expect("failed to dump");
alternate.dump_with_atoms_at(out, atoms, slices, depth + 1);
write!(out, ")").expect("failed to dump");
}
Expression::FunctionExpression(ast) => {
ast.dump_with_atoms_at(out, atoms, slices, depth);
}
Expression::IdentifierExpression(ast) => {
ast.dump_with_atoms_at(out, atoms, slices, depth);
}
Expression::NewExpression { callee, arguments, .. } => {
write!(out, "(NewExpression").expect("failed to dump");
newline(out, depth + 1);
write!(out, "callee=").expect("failed to dump");
callee.dump_with_atoms_at(out, atoms, slices, depth + 1);
newline(out, depth + 1);
write!(out, "arguments=").expect("failed to dump");
arguments.dump_with_atoms_at(out, atoms, slices, depth + 1);
write!(out, ")").expect("failed to dump");
}
Expression::NewTargetExpression { .. } => {
write!(out, "NewTargetExpression").expect("failed to dump");
}
Expression::ObjectExpression(ast) => {
ast.dump_with_atoms_at(out, atoms, slices, depth);
}
Expression::OptionalExpression { object, tail, .. } => {
write!(out, "(OptionalExpression").expect("failed to dump");
newline(out, depth + 1);
write!(out, "object=").expect("failed to dump");
object.dump_with_atoms_at(out, atoms, slices, depth + 1);
newline(out, depth + 1);
write!(out, "tail=").expect("failed to dump");
tail.dump_with_atoms_at(out, atoms, slices, depth + 1);
write!(out, ")").expect("failed to dump");
}
Expression::OptionalChain(ast) => {
ast.dump_with_atoms_at(out, atoms, slices, depth);
}
Expression::UnaryExpression { operator, operand, .. } => {
write!(out, "(UnaryExpression").expect("failed to dump");
newline(out, depth + 1);
write!(out, "operator=").expect("failed to dump");
operator.dump_with_atoms_at(out, atoms, slices, depth + 1);
newline(out, depth + 1);
write!(out, "operand=").expect("failed to dump");
operand.dump_with_atoms_at(out, atoms, slices, depth + 1);
write!(out, ")").expect("failed to dump");
}
Expression::TemplateExpression(ast) => {
ast.dump_with_atoms_at(out, atoms, slices, depth);
}
Expression::ThisExpression { .. } => {
write!(out, "ThisExpression").expect("failed to dump");
}
Expression::UpdateExpression { is_prefix, operator, operand, .. } => {
write!(out, "(UpdateExpression").expect("failed to dump");
newline(out, depth + 1);
write!(out, "is_prefix=").expect("failed to dump");
is_prefix.dump_with_atoms_at(out, atoms, slices, depth + 1);
newline(out, depth + 1);
write!(out, "operator=").expect("failed to dump");
operator.dump_with_atoms_at(out, atoms, slices, depth + 1);
newline(out, depth + 1);
write!(out, "operand=").expect("failed to dump");
operand.dump_with_atoms_at(out, atoms, slices, depth + 1);
write!(out, ")").expect("failed to dump");
}
Expression::YieldExpression { expression, .. } => {
write!(out, "(YieldExpression").expect("failed to dump");
write!(out, " ").expect("failed to dump");
write!(out, "expression=").expect("failed to dump");
expression.dump_with_atoms_at(out, atoms, slices, depth + 1);
write!(out, ")").expect("failed to dump");
}
Expression::YieldGeneratorExpression { expression, .. } => {
write!(out, "(YieldGeneratorExpression").expect("failed to dump");
write!(out, " ").expect("failed to dump");
write!(out, "expression=").expect("failed to dump");
expression.dump_with_atoms_at(out, atoms, slices, depth + 1);
write!(out, ")").expect("failed to dump");
}
Expression::AwaitExpression { expression, .. } => {
write!(out, "(AwaitExpression").expect("failed to dump");
write!(out, " ").expect("failed to dump");
write!(out, "expression=").expect("failed to dump");
expression.dump_with_atoms_at(out, atoms, slices, depth + 1);
write!(out, ")").expect("failed to dump");
}
Expression::ImportCallExpression { argument, .. } => {
write!(out, "(ImportCallExpression").expect("failed to dump");
write!(out, " ").expect("failed to dump");
write!(out, "argument=").expect("failed to dump");
argument.dump_with_atoms_at(out, atoms, slices, depth + 1);
write!(out, ")").expect("failed to dump");
}
}
}
}
impl<'alloc> ASTDump for MemberExpression<'alloc> {
fn dump_with_atoms_at<W>(&self, out: &mut W, atoms: &SourceAtomSet, slices: &SourceSliceList, depth: usize)
where W: io::Write
{
match self {
MemberExpression::ComputedMemberExpression(ast) => {
ast.dump_with_atoms_at(out, atoms, slices, depth);
}
MemberExpression::StaticMemberExpression(ast) => {
ast.dump_with_atoms_at(out, atoms, slices, depth);
}
MemberExpression::PrivateFieldExpression(ast) => {
ast.dump_with_atoms_at(out, atoms, slices, depth);
}
}
}
}
impl<'alloc> ASTDump for OptionalChain<'alloc> {
fn dump_with_atoms_at<W>(&self, out: &mut W, atoms: &SourceAtomSet, slices: &SourceSliceList, depth: usize)
where W: io::Write
{
match self {
OptionalChain::ComputedMemberExpressionTail { expression, .. } => {
write!(out, "(ComputedMemberExpressionTail").expect("failed to dump");
write!(out, " ").expect("failed to dump");
write!(out, "expression=").expect("failed to dump");
expression.dump_with_atoms_at(out, atoms, slices, depth + 1);
write!(out, ")").expect("failed to dump");
}
OptionalChain::StaticMemberExpressionTail { property, .. } => {
write!(out, "(StaticMemberExpressionTail").expect("failed to dump");
write!(out, " ").expect("failed to dump");
write!(out, "property=").expect("failed to dump");
property.dump_with_atoms_at(out, atoms, slices, depth + 1);
write!(out, ")").expect("failed to dump");
}
OptionalChain::PrivateFieldExpressionTail { field, .. } => {
write!(out, "(PrivateFieldExpressionTail").expect("failed to dump");
write!(out, " ").expect("failed to dump");
write!(out, "field=").expect("failed to dump");
field.dump_with_atoms_at(out, atoms, slices, depth + 1);
write!(out, ")").expect("failed to dump");
}
OptionalChain::CallExpressionTail { arguments, .. } => {
write!(out, "(CallExpressionTail").expect("failed to dump");
write!(out, " ").expect("failed to dump");
write!(out, "arguments=").expect("failed to dump");
arguments.dump_with_atoms_at(out, atoms, slices, depth + 1);
write!(out, ")").expect("failed to dump");
}
OptionalChain::ComputedMemberExpression(ast) => {
ast.dump_with_atoms_at(out, atoms, slices, depth);
}
OptionalChain::StaticMemberExpression(ast) => {
ast.dump_with_atoms_at(out, atoms, slices, depth);
}
OptionalChain::PrivateFieldExpression(ast) => {
ast.dump_with_atoms_at(out, atoms, slices, depth);
}
OptionalChain::CallExpression(ast) => {
ast.dump_with_atoms_at(out, atoms, slices, depth);
}
}
}
}
impl<'alloc> ASTDump for PropertyName<'alloc> {
fn dump_with_atoms_at<W>(&self, out: &mut W, atoms: &SourceAtomSet, slices: &SourceSliceList, depth: usize)
where W: io::Write
{
match self {
PropertyName::ComputedPropertyName(ast) => {
ast.dump_with_atoms_at(out, atoms, slices, depth);
}
PropertyName::StaticPropertyName(ast) => {
ast.dump_with_atoms_at(out, atoms, slices, depth);
}
PropertyName::StaticNumericPropertyName(ast) => {
ast.dump_with_atoms_at(out, atoms, slices, depth);
}
}
}
}
impl<'alloc> ASTDump for CallExpression<'alloc> {
fn dump_with_atoms_at<W>(&self, out: &mut W, atoms: &SourceAtomSet, slices: &SourceSliceList, depth: usize)
where W: io::Write
{
write!(out, "(CallExpression").expect("failed to dump");
newline(out, depth + 1);
write!(out, "callee=").expect("failed to dump");
self.callee.dump_with_atoms_at(out, atoms, slices, depth + 1);
newline(out, depth + 1);
write!(out, "arguments=").expect("failed to dump");
self.arguments.dump_with_atoms_at(out, atoms, slices, depth + 1);
write!(out, ")").expect("failed to dump");
}
}
impl<'alloc> ASTDump for ClassElementName<'alloc> {
fn dump_with_atoms_at<W>(&self, out: &mut W, atoms: &SourceAtomSet, slices: &SourceSliceList, depth: usize)
where W: io::Write
{
match self {
ClassElementName::ComputedPropertyName(ast) => {
ast.dump_with_atoms_at(out, atoms, slices, depth);
}
ClassElementName::StaticPropertyName(ast) => {
ast.dump_with_atoms_at(out, atoms, slices, depth);
}
ClassElementName::StaticNumericPropertyName(ast) => {
ast.dump_with_atoms_at(out, atoms, slices, depth);
}
ClassElementName::PrivateFieldName(ast) => {
ast.dump_with_atoms_at(out, atoms, slices, depth);
}
}
}
}
impl<'alloc> ASTDump for ObjectProperty<'alloc> {
fn dump_with_atoms_at<W>(&self, out: &mut W, atoms: &SourceAtomSet, slices: &SourceSliceList, depth: usize)
where W: io::Write
{
match self {
ObjectProperty::NamedObjectProperty(ast) => {
ast.dump_with_atoms_at(out, atoms, slices, depth);
}
ObjectProperty::ShorthandProperty(ast) => {
ast.dump_with_atoms_at(out, atoms, slices, depth);
}
ObjectProperty::SpreadProperty(ast) => {
ast.dump_with_atoms_at(out, atoms, slices, depth);
}
}
}
}
impl<'alloc> ASTDump for NamedObjectProperty<'alloc> {
fn dump_with_atoms_at<W>(&self, out: &mut W, atoms: &SourceAtomSet, slices: &SourceSliceList, depth: usize)
where W: io::Write
{
match self {
NamedObjectProperty::MethodDefinition(ast) => {
ast.dump_with_atoms_at(out, atoms, slices, depth);
}
NamedObjectProperty::DataProperty(ast) => {
ast.dump_with_atoms_at(out, atoms, slices, depth);
}
}
}
}
impl<'alloc> ASTDump for MethodDefinition<'alloc> {
fn dump_with_atoms_at<W>(&self, out: &mut W, atoms: &SourceAtomSet, slices: &SourceSliceList, depth: usize)
where W: io::Write
{
match self {
MethodDefinition::Method(ast) => {
ast.dump_with_atoms_at(out, atoms, slices, depth);
}
MethodDefinition::Getter(ast) => {
ast.dump_with_atoms_at(out, atoms, slices, depth);
}
MethodDefinition::Setter(ast) => {
ast.dump_with_atoms_at(out, atoms, slices, depth);
}
}
}
}
impl<'alloc> ASTDump for ImportDeclaration<'alloc> {
fn dump_with_atoms_at<W>(&self, out: &mut W, atoms: &SourceAtomSet, slices: &SourceSliceList, depth: usize)
where W: io::Write
{
match self {
ImportDeclaration::Import(ast) => {
ast.dump_with_atoms_at(out, atoms, slices, depth);
}
ImportDeclaration::ImportNamespace(ast) => {
ast.dump_with_atoms_at(out, atoms, slices, depth);
}
}
}
}
impl<'alloc> ASTDump for ExportDeclaration<'alloc> {
fn dump_with_atoms_at<W>(&self, out: &mut W, atoms: &SourceAtomSet, slices: &SourceSliceList, depth: usize)
where W: io::Write
{
match self {
ExportDeclaration::ExportAllFrom(ast) => {
ast.dump_with_atoms_at(out, atoms, slices, depth);
}
ExportDeclaration::ExportFrom(ast) => {
ast.dump_with_atoms_at(out, atoms, slices, depth);
}
ExportDeclaration::ExportLocals(ast) => {
ast.dump_with_atoms_at(out, atoms, slices, depth);
}
ExportDeclaration::Export(ast) => {
ast.dump_with_atoms_at(out, atoms, slices, depth);
}
ExportDeclaration::ExportDefault(ast) => {
ast.dump_with_atoms_at(out, atoms, slices, depth);
}
}
}
}
impl<'alloc> ASTDump for VariableReference {
fn dump_with_atoms_at<W>(&self, out: &mut W, atoms: &SourceAtomSet, slices: &SourceSliceList, depth: usize)
where W: io::Write
{
match self {
VariableReference::BindingIdentifier(ast) => {
ast.dump_with_atoms_at(out, atoms, slices, depth);
}
VariableReference::AssignmentTargetIdentifier(ast) => {
ast.dump_with_atoms_at(out, atoms, slices, depth);
}
}
}
}
impl<'alloc> ASTDump for BindingPattern<'alloc> {
fn dump_with_atoms_at<W>(&self, out: &mut W, atoms: &SourceAtomSet, slices: &SourceSliceList, depth: usize)
where W: io::Write
{
match self {
BindingPattern::ObjectBinding(ast) => {
ast.dump_with_atoms_at(out, atoms, slices, depth);
}
BindingPattern::ArrayBinding(ast) => {
ast.dump_with_atoms_at(out, atoms, slices, depth);
}
}
}
}
impl<'alloc> ASTDump for Binding<'alloc> {
fn dump_with_atoms_at<W>(&self, out: &mut W, atoms: &SourceAtomSet, slices: &SourceSliceList, depth: usize)
where W: io::Write
{
match self {
Binding::BindingPattern(ast) => {
ast.dump_with_atoms_at(out, atoms, slices, depth);
}
Binding::BindingIdentifier(ast) => {
ast.dump_with_atoms_at(out, atoms, slices, depth);
}
}
}
}
impl<'alloc> ASTDump for SimpleAssignmentTarget<'alloc> {
fn dump_with_atoms_at<W>(&self, out: &mut W, atoms: &SourceAtomSet, slices: &SourceSliceList, depth: usize)
where W: io::Write
{
match self {
SimpleAssignmentTarget::AssignmentTargetIdentifier(ast) => {
ast.dump_with_atoms_at(out, atoms, slices, depth);
}
SimpleAssignmentTarget::MemberAssignmentTarget(ast) => {
ast.dump_with_atoms_at(out, atoms, slices, depth);
}
}
}
}
impl<'alloc> ASTDump for AssignmentTargetPattern<'alloc> {
fn dump_with_atoms_at<W>(&self, out: &mut W, atoms: &SourceAtomSet, slices: &SourceSliceList, depth: usize)
where W: io::Write
{
match self {
AssignmentTargetPattern::ArrayAssignmentTarget(ast) => {
ast.dump_with_atoms_at(out, atoms, slices, depth);
}
AssignmentTargetPattern::ObjectAssignmentTarget(ast) => {
ast.dump_with_atoms_at(out, atoms, slices, depth);
}
}
}
}
impl<'alloc> ASTDump for AssignmentTarget<'alloc> {
fn dump_with_atoms_at<W>(&self, out: &mut W, atoms: &SourceAtomSet, slices: &SourceSliceList, depth: usize)
where W: io::Write
{
match self {
AssignmentTarget::AssignmentTargetPattern(ast) => {
ast.dump_with_atoms_at(out, atoms, slices, depth);
}
AssignmentTarget::SimpleAssignmentTarget(ast) => {
ast.dump_with_atoms_at(out, atoms, slices, depth);
}
}
}
}
impl<'alloc> ASTDump for Parameter<'alloc> {
fn dump_with_atoms_at<W>(&self, out: &mut W, atoms: &SourceAtomSet, slices: &SourceSliceList, depth: usize)
where W: io::Write
{
match self {
Parameter::Binding(ast) => {
ast.dump_with_atoms_at(out, atoms, slices, depth);
}
Parameter::BindingWithDefault(ast) => {
ast.dump_with_atoms_at(out, atoms, slices, depth);
}
}
}
}
impl<'alloc> ASTDump for BindingWithDefault<'alloc> {
fn dump_with_atoms_at<W>(&self, out: &mut W, atoms: &SourceAtomSet, slices: &SourceSliceList, depth: usize)
where W: io::Write
{
write!(out, "(BindingWithDefault").expect("failed to dump");
newline(out, depth + 1);
write!(out, "binding=").expect("failed to dump");
self.binding.dump_with_atoms_at(out, atoms, slices, depth + 1);
newline(out, depth + 1);
write!(out, "init=").expect("failed to dump");
self.init.dump_with_atoms_at(out, atoms, slices, depth + 1);
write!(out, ")").expect("failed to dump");
}
}
impl<'alloc> ASTDump for BindingIdentifier {
fn dump_with_atoms_at<W>(&self, out: &mut W, atoms: &SourceAtomSet, slices: &SourceSliceList, depth: usize)
where W: io::Write
{
write!(out, "(BindingIdentifier").expect("failed to dump");
write!(out, " ").expect("failed to dump");
write!(out, "name=").expect("failed to dump");
self.name.dump_with_atoms_at(out, atoms, slices, depth + 1);
write!(out, ")").expect("failed to dump");
}
}
impl<'alloc> ASTDump for AssignmentTargetIdentifier {
fn dump_with_atoms_at<W>(&self, out: &mut W, atoms: &SourceAtomSet, slices: &SourceSliceList, depth: usize)
where W: io::Write
{
write!(out, "(AssignmentTargetIdentifier").expect("failed to dump");
write!(out, " ").expect("failed to dump");
write!(out, "name=").expect("failed to dump");
self.name.dump_with_atoms_at(out, atoms, slices, depth + 1);
write!(out, ")").expect("failed to dump");
}
}
impl<'alloc> ASTDump for ExpressionOrSuper<'alloc> {
fn dump_with_atoms_at<W>(&self, out: &mut W, atoms: &SourceAtomSet, slices: &SourceSliceList, depth: usize)
where W: io::Write
{
match self {
ExpressionOrSuper::Expression(ast) => {
ast.dump_with_atoms_at(out, atoms, slices, depth);
}
ExpressionOrSuper::Super { .. } => {
write!(out, "Super").expect("failed to dump");
}
}
}
}
impl<'alloc> ASTDump for MemberAssignmentTarget<'alloc> {
fn dump_with_atoms_at<W>(&self, out: &mut W, atoms: &SourceAtomSet, slices: &SourceSliceList, depth: usize)
where W: io::Write
{
match self {
MemberAssignmentTarget::ComputedMemberAssignmentTarget(ast) => {
ast.dump_with_atoms_at(out, atoms, slices, depth);
}
MemberAssignmentTarget::PrivateFieldAssignmentTarget(ast) => {
ast.dump_with_atoms_at(out, atoms, slices, depth);
}
MemberAssignmentTarget::StaticMemberAssignmentTarget(ast) => {
ast.dump_with_atoms_at(out, atoms, slices, depth);
}
}
}
}
impl<'alloc> ASTDump for ComputedMemberAssignmentTarget<'alloc> {
fn dump_with_atoms_at<W>(&self, out: &mut W, atoms: &SourceAtomSet, slices: &SourceSliceList, depth: usize)
where W: io::Write
{
write!(out, "(ComputedMemberAssignmentTarget").expect("failed to dump");
newline(out, depth + 1);
write!(out, "object=").expect("failed to dump");
self.object.dump_with_atoms_at(out, atoms, slices, depth + 1);
newline(out, depth + 1);
write!(out, "expression=").expect("failed to dump");
self.expression.dump_with_atoms_at(out, atoms, slices, depth + 1);
write!(out, ")").expect("failed to dump");
}
}
impl<'alloc> ASTDump for PrivateFieldAssignmentTarget<'alloc> {
fn dump_with_atoms_at<W>(&self, out: &mut W, atoms: &SourceAtomSet, slices: &SourceSliceList, depth: usize)
where W: io::Write
{
write!(out, "(PrivateFieldAssignmentTarget").expect("failed to dump");
newline(out, depth + 1);
write!(out, "object=").expect("failed to dump");
self.object.dump_with_atoms_at(out, atoms, slices, depth + 1);
newline(out, depth + 1);
write!(out, "field=").expect("failed to dump");
self.field.dump_with_atoms_at(out, atoms, slices, depth + 1);
write!(out, ")").expect("failed to dump");
}
}
impl<'alloc> ASTDump for StaticMemberAssignmentTarget<'alloc> {
fn dump_with_atoms_at<W>(&self, out: &mut W, atoms: &SourceAtomSet, slices: &SourceSliceList, depth: usize)
where W: io::Write
{
write!(out, "(StaticMemberAssignmentTarget").expect("failed to dump");
newline(out, depth + 1);
write!(out, "object=").expect("failed to dump");
self.object.dump_with_atoms_at(out, atoms, slices, depth + 1);
newline(out, depth + 1);
write!(out, "property=").expect("failed to dump");
self.property.dump_with_atoms_at(out, atoms, slices, depth + 1);
write!(out, ")").expect("failed to dump");
}
}
impl<'alloc> ASTDump for ArrayBinding<'alloc> {
fn dump_with_atoms_at<W>(&self, out: &mut W, atoms: &SourceAtomSet, slices: &SourceSliceList, depth: usize)
where W: io::Write
{
write!(out, "(ArrayBinding").expect("failed to dump");
newline(out, depth + 1);
write!(out, "elements=").expect("failed to dump");
self.elements.dump_with_atoms_at(out, atoms, slices, depth + 1);
newline(out, depth + 1);
write!(out, "rest=").expect("failed to dump");
self.rest.dump_with_atoms_at(out, atoms, slices, depth + 1);
write!(out, ")").expect("failed to dump");
}
}
impl<'alloc> ASTDump for ObjectBinding<'alloc> {
fn dump_with_atoms_at<W>(&self, out: &mut W, atoms: &SourceAtomSet, slices: &SourceSliceList, depth: usize)
where W: io::Write
{
write!(out, "(ObjectBinding").expect("failed to dump");
newline(out, depth + 1);
write!(out, "properties=").expect("failed to dump");
self.properties.dump_with_atoms_at(out, atoms, slices, depth + 1);
newline(out, depth + 1);
write!(out, "rest=").expect("failed to dump");
self.rest.dump_with_atoms_at(out, atoms, slices, depth + 1);
write!(out, ")").expect("failed to dump");
}
}
impl<'alloc> ASTDump for BindingProperty<'alloc> {
fn dump_with_atoms_at<W>(&self, out: &mut W, atoms: &SourceAtomSet, slices: &SourceSliceList, depth: usize)
where W: io::Write
{
match self {
BindingProperty::BindingPropertyIdentifier(ast) => {
ast.dump_with_atoms_at(out, atoms, slices, depth);
}
BindingProperty::BindingPropertyProperty(ast) => {
ast.dump_with_atoms_at(out, atoms, slices, depth);
}
}
}
}
impl<'alloc> ASTDump for BindingPropertyIdentifier<'alloc> {
fn dump_with_atoms_at<W>(&self, out: &mut W, atoms: &SourceAtomSet, slices: &SourceSliceList, depth: usize)
where W: io::Write
{
write!(out, "(BindingPropertyIdentifier").expect("failed to dump");
newline(out, depth + 1);
write!(out, "binding=").expect("failed to dump");
self.binding.dump_with_atoms_at(out, atoms, slices, depth + 1);
newline(out, depth + 1);
write!(out, "init=").expect("failed to dump");
self.init.dump_with_atoms_at(out, atoms, slices, depth + 1);
write!(out, ")").expect("failed to dump");
}
}
impl<'alloc> ASTDump for BindingPropertyProperty<'alloc> {
fn dump_with_atoms_at<W>(&self, out: &mut W, atoms: &SourceAtomSet, slices: &SourceSliceList, depth: usize)
where W: io::Write
{
write!(out, "(BindingPropertyProperty").expect("failed to dump");
newline(out, depth + 1);
write!(out, "name=").expect("failed to dump");
self.name.dump_with_atoms_at(out, atoms, slices, depth + 1);
newline(out, depth + 1);
write!(out, "binding=").expect("failed to dump");
self.binding.dump_with_atoms_at(out, atoms, slices, depth + 1);
write!(out, ")").expect("failed to dump");
}
}
impl<'alloc> ASTDump for AssignmentTargetWithDefault<'alloc> {
fn dump_with_atoms_at<W>(&self, out: &mut W, atoms: &SourceAtomSet, slices: &SourceSliceList, depth: usize)
where W: io::Write
{
write!(out, "(AssignmentTargetWithDefault").expect("failed to dump");
newline(out, depth + 1);
write!(out, "binding=").expect("failed to dump");
self.binding.dump_with_atoms_at(out, atoms, slices, depth + 1);
newline(out, depth + 1);
write!(out, "init=").expect("failed to dump");
self.init.dump_with_atoms_at(out, atoms, slices, depth + 1);
write!(out, ")").expect("failed to dump");
}
}
impl<'alloc> ASTDump for AssignmentTargetMaybeDefault<'alloc> {
fn dump_with_atoms_at<W>(&self, out: &mut W, atoms: &SourceAtomSet, slices: &SourceSliceList, depth: usize)
where W: io::Write
{
match self {
AssignmentTargetMaybeDefault::AssignmentTarget(ast) => {
ast.dump_with_atoms_at(out, atoms, slices, depth);
}
AssignmentTargetMaybeDefault::AssignmentTargetWithDefault(ast) => {
ast.dump_with_atoms_at(out, atoms, slices, depth);
}
}
}
}
impl<'alloc> ASTDump for ArrayAssignmentTarget<'alloc> {
fn dump_with_atoms_at<W>(&self, out: &mut W, atoms: &SourceAtomSet, slices: &SourceSliceList, depth: usize)
where W: io::Write
{
write!(out, "(ArrayAssignmentTarget").expect("failed to dump");
newline(out, depth + 1);
write!(out, "elements=").expect("failed to dump");
self.elements.dump_with_atoms_at(out, atoms, slices, depth + 1);
newline(out, depth + 1);
write!(out, "rest=").expect("failed to dump");
self.rest.dump_with_atoms_at(out, atoms, slices, depth + 1);
write!(out, ")").expect("failed to dump");
}
}
impl<'alloc> ASTDump for ObjectAssignmentTarget<'alloc> {
fn dump_with_atoms_at<W>(&self, out: &mut W, atoms: &SourceAtomSet, slices: &SourceSliceList, depth: usize)
where W: io::Write
{
write!(out, "(ObjectAssignmentTarget").expect("failed to dump");
newline(out, depth + 1);
write!(out, "properties=").expect("failed to dump");
self.properties.dump_with_atoms_at(out, atoms, slices, depth + 1);
newline(out, depth + 1);
write!(out, "rest=").expect("failed to dump");
self.rest.dump_with_atoms_at(out, atoms, slices, depth + 1);
write!(out, ")").expect("failed to dump");
}
}
impl<'alloc> ASTDump for AssignmentTargetProperty<'alloc> {
fn dump_with_atoms_at<W>(&self, out: &mut W, atoms: &SourceAtomSet, slices: &SourceSliceList, depth: usize)
where W: io::Write
{
match self {
AssignmentTargetProperty::AssignmentTargetPropertyIdentifier(ast) => {
ast.dump_with_atoms_at(out, atoms, slices, depth);
}
AssignmentTargetProperty::AssignmentTargetPropertyProperty(ast) => {
ast.dump_with_atoms_at(out, atoms, slices, depth);
}
}
}
}
impl<'alloc> ASTDump for AssignmentTargetPropertyIdentifier<'alloc> {
fn dump_with_atoms_at<W>(&self, out: &mut W, atoms: &SourceAtomSet, slices: &SourceSliceList, depth: usize)
where W: io::Write
{
write!(out, "(AssignmentTargetPropertyIdentifier").expect("failed to dump");
newline(out, depth + 1);
write!(out, "binding=").expect("failed to dump");
self.binding.dump_with_atoms_at(out, atoms, slices, depth + 1);
newline(out, depth + 1);
write!(out, "init=").expect("failed to dump");
self.init.dump_with_atoms_at(out, atoms, slices, depth + 1);
write!(out, ")").expect("failed to dump");
}
}
impl<'alloc> ASTDump for AssignmentTargetPropertyProperty<'alloc> {
fn dump_with_atoms_at<W>(&self, out: &mut W, atoms: &SourceAtomSet, slices: &SourceSliceList, depth: usize)
where W: io::Write
{
write!(out, "(AssignmentTargetPropertyProperty").expect("failed to dump");
newline(out, depth + 1);
write!(out, "name=").expect("failed to dump");
self.name.dump_with_atoms_at(out, atoms, slices, depth + 1);
newline(out, depth + 1);
write!(out, "binding=").expect("failed to dump");
self.binding.dump_with_atoms_at(out, atoms, slices, depth + 1);
write!(out, ")").expect("failed to dump");
}
}
impl<'alloc> ASTDump for ClassExpression<'alloc> {
fn dump_with_atoms_at<W>(&self, out: &mut W, atoms: &SourceAtomSet, slices: &SourceSliceList, depth: usize)
where W: io::Write
{
write!(out, "(ClassExpression").expect("failed to dump");
newline(out, depth + 1);
write!(out, "name=").expect("failed to dump");
self.name.dump_with_atoms_at(out, atoms, slices, depth + 1);
newline(out, depth + 1);
write!(out, "super_=").expect("failed to dump");
self.super_.dump_with_atoms_at(out, atoms, slices, depth + 1);
newline(out, depth + 1);
write!(out, "elements=").expect("failed to dump");
self.elements.dump_with_atoms_at(out, atoms, slices, depth + 1);
write!(out, ")").expect("failed to dump");
}
}
impl<'alloc> ASTDump for ClassDeclaration<'alloc> {
fn dump_with_atoms_at<W>(&self, out: &mut W, atoms: &SourceAtomSet, slices: &SourceSliceList, depth: usize)
where W: io::Write
{
write!(out, "(ClassDeclaration").expect("failed to dump");
newline(out, depth + 1);
write!(out, "name=").expect("failed to dump");
self.name.dump_with_atoms_at(out, atoms, slices, depth + 1);
newline(out, depth + 1);
write!(out, "super_=").expect("failed to dump");
self.super_.dump_with_atoms_at(out, atoms, slices, depth + 1);
newline(out, depth + 1);
write!(out, "elements=").expect("failed to dump");
self.elements.dump_with_atoms_at(out, atoms, slices, depth + 1);
write!(out, ")").expect("failed to dump");
}
}
impl<'alloc> ASTDump for ClassElement<'alloc> {
fn dump_with_atoms_at<W>(&self, out: &mut W, atoms: &SourceAtomSet, slices: &SourceSliceList, depth: usize)
where W: io::Write
{
match self {
ClassElement::MethodDefinition { is_static, method, .. } => {
write!(out, "(MethodDefinition").expect("failed to dump");
newline(out, depth + 1);
write!(out, "is_static=").expect("failed to dump");
is_static.dump_with_atoms_at(out, atoms, slices, depth + 1);
newline(out, depth + 1);
write!(out, "method=").expect("failed to dump");
method.dump_with_atoms_at(out, atoms, slices, depth + 1);
write!(out, ")").expect("failed to dump");
}
ClassElement::FieldDefinition { name, init, .. } => {
write!(out, "(FieldDefinition").expect("failed to dump");
newline(out, depth + 1);
write!(out, "name=").expect("failed to dump");
name.dump_with_atoms_at(out, atoms, slices, depth + 1);
newline(out, depth + 1);
write!(out, "init=").expect("failed to dump");
init.dump_with_atoms_at(out, atoms, slices, depth + 1);
write!(out, ")").expect("failed to dump");
}
}
}
}
impl<'alloc> ASTDump for ModuleItems<'alloc> {
fn dump_with_atoms_at<W>(&self, out: &mut W, atoms: &SourceAtomSet, slices: &SourceSliceList, depth: usize)
where W: io::Write
{
match self {
ModuleItems::ImportDeclaration(ast) => {
ast.dump_with_atoms_at(out, atoms, slices, depth);
}
ModuleItems::ExportDeclaration(ast) => {
ast.dump_with_atoms_at(out, atoms, slices, depth);
}
ModuleItems::Statement(ast) => {
ast.dump_with_atoms_at(out, atoms, slices, depth);
}
}
}
}
impl<'alloc> ASTDump for Module<'alloc> {
fn dump_with_atoms_at<W>(&self, out: &mut W, atoms: &SourceAtomSet, slices: &SourceSliceList, depth: usize)
where W: io::Write
{
write!(out, "(Module").expect("failed to dump");
newline(out, depth + 1);
write!(out, "directives=").expect("failed to dump");
self.directives.dump_with_atoms_at(out, atoms, slices, depth + 1);
newline(out, depth + 1);
write!(out, "items=").expect("failed to dump");
self.items.dump_with_atoms_at(out, atoms, slices, depth + 1);
write!(out, ")").expect("failed to dump");
}
}
impl<'alloc> ASTDump for Import<'alloc> {
fn dump_with_atoms_at<W>(&self, out: &mut W, atoms: &SourceAtomSet, slices: &SourceSliceList, depth: usize)
where W: io::Write
{
write!(out, "(Import").expect("failed to dump");
newline(out, depth + 1);
write!(out, "module_specifier=").expect("failed to dump");
self.module_specifier.dump_with_atoms_at(out, atoms, slices, depth + 1);
newline(out, depth + 1);
write!(out, "default_binding=").expect("failed to dump");
self.default_binding.dump_with_atoms_at(out, atoms, slices, depth + 1);
newline(out, depth + 1);
write!(out, "named_imports=").expect("failed to dump");
self.named_imports.dump_with_atoms_at(out, atoms, slices, depth + 1);
write!(out, ")").expect("failed to dump");
}
}
impl<'alloc> ASTDump for ImportNamespace {
fn dump_with_atoms_at<W>(&self, out: &mut W, atoms: &SourceAtomSet, slices: &SourceSliceList, depth: usize)
where W: io::Write
{
write!(out, "(ImportNamespace").expect("failed to dump");
newline(out, depth + 1);
write!(out, "module_specifier=").expect("failed to dump");
self.module_specifier.dump_with_atoms_at(out, atoms, slices, depth + 1);
newline(out, depth + 1);
write!(out, "default_binding=").expect("failed to dump");
self.default_binding.dump_with_atoms_at(out, atoms, slices, depth + 1);
newline(out, depth + 1);
write!(out, "namespace_binding=").expect("failed to dump");
self.namespace_binding.dump_with_atoms_at(out, atoms, slices, depth + 1);
write!(out, ")").expect("failed to dump");
}
}
impl<'alloc> ASTDump for ImportSpecifier {
fn dump_with_atoms_at<W>(&self, out: &mut W, atoms: &SourceAtomSet, slices: &SourceSliceList, depth: usize)
where W: io::Write
{
write!(out, "(ImportSpecifier").expect("failed to dump");
newline(out, depth + 1);
write!(out, "name=").expect("failed to dump");
self.name.dump_with_atoms_at(out, atoms, slices, depth + 1);
newline(out, depth + 1);
write!(out, "binding=").expect("failed to dump");
self.binding.dump_with_atoms_at(out, atoms, slices, depth + 1);
write!(out, ")").expect("failed to dump");
}
}
impl<'alloc> ASTDump for ExportAllFrom {
fn dump_with_atoms_at<W>(&self, out: &mut W, atoms: &SourceAtomSet, slices: &SourceSliceList, depth: usize)
where W: io::Write
{
write!(out, "(ExportAllFrom").expect("failed to dump");
write!(out, " ").expect("failed to dump");
write!(out, "module_specifier=").expect("failed to dump");
self.module_specifier.dump_with_atoms_at(out, atoms, slices, depth + 1);
write!(out, ")").expect("failed to dump");
}
}
impl<'alloc> ASTDump for ExportFrom<'alloc> {
fn dump_with_atoms_at<W>(&self, out: &mut W, atoms: &SourceAtomSet, slices: &SourceSliceList, depth: usize)
where W: io::Write
{
write!(out, "(ExportFrom").expect("failed to dump");
newline(out, depth + 1);
write!(out, "named_exports=").expect("failed to dump");
self.named_exports.dump_with_atoms_at(out, atoms, slices, depth + 1);
newline(out, depth + 1);
write!(out, "module_specifier=").expect("failed to dump");
self.module_specifier.dump_with_atoms_at(out, atoms, slices, depth + 1);
write!(out, ")").expect("failed to dump");
}
}
impl<'alloc> ASTDump for ExportLocals<'alloc> {
fn dump_with_atoms_at<W>(&self, out: &mut W, atoms: &SourceAtomSet, slices: &SourceSliceList, depth: usize)
where W: io::Write
{
write!(out, "(ExportLocals").expect("failed to dump");
write!(out, " ").expect("failed to dump");
write!(out, "named_exports=").expect("failed to dump");
self.named_exports.dump_with_atoms_at(out, atoms, slices, depth + 1);
write!(out, ")").expect("failed to dump");
}
}
impl<'alloc> ASTDump for Export<'alloc> {
fn dump_with_atoms_at<W>(&self, out: &mut W, atoms: &SourceAtomSet, slices: &SourceSliceList, depth: usize)
where W: io::Write
{
match self {
Export::FunctionDeclaration(ast) => {
ast.dump_with_atoms_at(out, atoms, slices, depth);
}
Export::ClassDeclaration(ast) => {
ast.dump_with_atoms_at(out, atoms, slices, depth);
}
Export::VariableDeclaration(ast) => {
ast.dump_with_atoms_at(out, atoms, slices, depth);
}
}
}
}
impl<'alloc> ASTDump for ExportDefault<'alloc> {
fn dump_with_atoms_at<W>(&self, out: &mut W, atoms: &SourceAtomSet, slices: &SourceSliceList, depth: usize)
where W: io::Write
{
match self {
ExportDefault::FunctionDeclaration(ast) => {
ast.dump_with_atoms_at(out, atoms, slices, depth);
}
ExportDefault::ClassDeclaration(ast) => {
ast.dump_with_atoms_at(out, atoms, slices, depth);
}
ExportDefault::Expression(ast) => {
ast.dump_with_atoms_at(out, atoms, slices, depth);
}
}
}
}
impl<'alloc> ASTDump for ExportFromSpecifier {
fn dump_with_atoms_at<W>(&self, out: &mut W, atoms: &SourceAtomSet, slices: &SourceSliceList, depth: usize)
where W: io::Write
{
write!(out, "(ExportFromSpecifier").expect("failed to dump");
newline(out, depth + 1);
write!(out, "name=").expect("failed to dump");
self.name.dump_with_atoms_at(out, atoms, slices, depth + 1);
newline(out, depth + 1);
write!(out, "exported_name=").expect("failed to dump");
self.exported_name.dump_with_atoms_at(out, atoms, slices, depth + 1);
write!(out, ")").expect("failed to dump");
}
}
impl<'alloc> ASTDump for ExportLocalSpecifier {
fn dump_with_atoms_at<W>(&self, out: &mut W, atoms: &SourceAtomSet, slices: &SourceSliceList, depth: usize)
where W: io::Write
{
write!(out, "(ExportLocalSpecifier").expect("failed to dump");
newline(out, depth + 1);
write!(out, "name=").expect("failed to dump");
self.name.dump_with_atoms_at(out, atoms, slices, depth + 1);
newline(out, depth + 1);
write!(out, "exported_name=").expect("failed to dump");
self.exported_name.dump_with_atoms_at(out, atoms, slices, depth + 1);
write!(out, ")").expect("failed to dump");
}
}
impl<'alloc> ASTDump for Method<'alloc> {
fn dump_with_atoms_at<W>(&self, out: &mut W, atoms: &SourceAtomSet, slices: &SourceSliceList, depth: usize)
where W: io::Write
{
write!(out, "(Method").expect("failed to dump");
newline(out, depth + 1);
write!(out, "name=").expect("failed to dump");
self.name.dump_with_atoms_at(out, atoms, slices, depth + 1);
newline(out, depth + 1);
write!(out, "is_async=").expect("failed to dump");
self.is_async.dump_with_atoms_at(out, atoms, slices, depth + 1);
newline(out, depth + 1);
write!(out, "is_generator=").expect("failed to dump");
self.is_generator.dump_with_atoms_at(out, atoms, slices, depth + 1);
newline(out, depth + 1);
write!(out, "params=").expect("failed to dump");
self.params.dump_with_atoms_at(out, atoms, slices, depth + 1);
newline(out, depth + 1);
write!(out, "body=").expect("failed to dump");
self.body.dump_with_atoms_at(out, atoms, slices, depth + 1);
write!(out, ")").expect("failed to dump");
}
}
impl<'alloc> ASTDump for Getter<'alloc> {
fn dump_with_atoms_at<W>(&self, out: &mut W, atoms: &SourceAtomSet, slices: &SourceSliceList, depth: usize)
where W: io::Write
{
write!(out, "(Getter").expect("failed to dump");
newline(out, depth + 1);
write!(out, "property_name=").expect("failed to dump");
self.property_name.dump_with_atoms_at(out, atoms, slices, depth + 1);
newline(out, depth + 1);
write!(out, "body=").expect("failed to dump");
self.body.dump_with_atoms_at(out, atoms, slices, depth + 1);
write!(out, ")").expect("failed to dump");
}
}
impl<'alloc> ASTDump for Setter<'alloc> {
fn dump_with_atoms_at<W>(&self, out: &mut W, atoms: &SourceAtomSet, slices: &SourceSliceList, depth: usize)
where W: io::Write
{
write!(out, "(Setter").expect("failed to dump");
newline(out, depth + 1);
write!(out, "property_name=").expect("failed to dump");
self.property_name.dump_with_atoms_at(out, atoms, slices, depth + 1);
newline(out, depth + 1);
write!(out, "param=").expect("failed to dump");
self.param.dump_with_atoms_at(out, atoms, slices, depth + 1);
newline(out, depth + 1);
write!(out, "body=").expect("failed to dump");
self.body.dump_with_atoms_at(out, atoms, slices, depth + 1);
write!(out, ")").expect("failed to dump");
}
}
impl<'alloc> ASTDump for DataProperty<'alloc> {
fn dump_with_atoms_at<W>(&self, out: &mut W, atoms: &SourceAtomSet, slices: &SourceSliceList, depth: usize)
where W: io::Write
{
write!(out, "(DataProperty").expect("failed to dump");
newline(out, depth + 1);
write!(out, "property_name=").expect("failed to dump");
self.property_name.dump_with_atoms_at(out, atoms, slices, depth + 1);
newline(out, depth + 1);
write!(out, "expression=").expect("failed to dump");
self.expression.dump_with_atoms_at(out, atoms, slices, depth + 1);
write!(out, ")").expect("failed to dump");
}
}
impl<'alloc> ASTDump for ShorthandProperty {
fn dump_with_atoms_at<W>(&self, out: &mut W, atoms: &SourceAtomSet, slices: &SourceSliceList, depth: usize)
where W: io::Write
{
write!(out, "(ShorthandProperty").expect("failed to dump");
write!(out, " ").expect("failed to dump");
write!(out, "name=").expect("failed to dump");
self.name.dump_with_atoms_at(out, atoms, slices, depth + 1);
write!(out, ")").expect("failed to dump");
}
}
impl<'alloc> ASTDump for ComputedPropertyName<'alloc> {
fn dump_with_atoms_at<W>(&self, out: &mut W, atoms: &SourceAtomSet, slices: &SourceSliceList, depth: usize)
where W: io::Write
{
write!(out, "(ComputedPropertyName").expect("failed to dump");
write!(out, " ").expect("failed to dump");
write!(out, "expression=").expect("failed to dump");
self.expression.dump_with_atoms_at(out, atoms, slices, depth + 1);
write!(out, ")").expect("failed to dump");
}
}
impl<'alloc> ASTDump for StaticPropertyName {
fn dump_with_atoms_at<W>(&self, out: &mut W, atoms: &SourceAtomSet, slices: &SourceSliceList, depth: usize)
where W: io::Write
{
write!(out, "(StaticPropertyName").expect("failed to dump");
write!(out, " ").expect("failed to dump");
write!(out, "value=").expect("failed to dump");
self.value.dump_with_atoms_at(out, atoms, slices, depth + 1);
write!(out, ")").expect("failed to dump");
}
}
impl<'alloc> ASTDump for NumericLiteral {
fn dump_with_atoms_at<W>(&self, out: &mut W, atoms: &SourceAtomSet, slices: &SourceSliceList, depth: usize)
where W: io::Write
{
write!(out, "(NumericLiteral").expect("failed to dump");
write!(out, " ").expect("failed to dump");
write!(out, "value=").expect("failed to dump");
self.value.dump_with_atoms_at(out, atoms, slices, depth + 1);
write!(out, ")").expect("failed to dump");
}
}
impl<'alloc> ASTDump for ArrayExpressionElement<'alloc> {
fn dump_with_atoms_at<W>(&self, out: &mut W, atoms: &SourceAtomSet, slices: &SourceSliceList, depth: usize)
where W: io::Write
{
match self {
ArrayExpressionElement::SpreadElement(ast) => {
ast.dump_with_atoms_at(out, atoms, slices, depth);
}
ArrayExpressionElement::Expression(ast) => {
ast.dump_with_atoms_at(out, atoms, slices, depth);
}
ArrayExpressionElement::Elision { .. } => {
write!(out, "Elision").expect("failed to dump");
}
}
}
}
impl<'alloc> ASTDump for ArrayExpression<'alloc> {
fn dump_with_atoms_at<W>(&self, out: &mut W, atoms: &SourceAtomSet, slices: &SourceSliceList, depth: usize)
where W: io::Write
{
write!(out, "(ArrayExpression").expect("failed to dump");
write!(out, " ").expect("failed to dump");
write!(out, "elements=").expect("failed to dump");
self.elements.dump_with_atoms_at(out, atoms, slices, depth + 1);
write!(out, ")").expect("failed to dump");
}
}
impl<'alloc> ASTDump for ArrowExpressionBody<'alloc> {
fn dump_with_atoms_at<W>(&self, out: &mut W, atoms: &SourceAtomSet, slices: &SourceSliceList, depth: usize)
where W: io::Write
{
match self {
ArrowExpressionBody::FunctionBody(ast) => {
ast.dump_with_atoms_at(out, atoms, slices, depth);
}
ArrowExpressionBody::Expression(ast) => {
ast.dump_with_atoms_at(out, atoms, slices, depth);
}
}
}
}
impl<'alloc> ASTDump for ComputedMemberExpression<'alloc> {
fn dump_with_atoms_at<W>(&self, out: &mut W, atoms: &SourceAtomSet, slices: &SourceSliceList, depth: usize)
where W: io::Write
{
write!(out, "(ComputedMemberExpression").expect("failed to dump");
newline(out, depth + 1);
write!(out, "object=").expect("failed to dump");
self.object.dump_with_atoms_at(out, atoms, slices, depth + 1);
newline(out, depth + 1);
write!(out, "expression=").expect("failed to dump");
self.expression.dump_with_atoms_at(out, atoms, slices, depth + 1);
write!(out, ")").expect("failed to dump");
}
}
impl<'alloc> ASTDump for IdentifierExpression {
fn dump_with_atoms_at<W>(&self, out: &mut W, atoms: &SourceAtomSet, slices: &SourceSliceList, depth: usize)
where W: io::Write
{
write!(out, "(IdentifierExpression").expect("failed to dump");
write!(out, " ").expect("failed to dump");
write!(out, "name=").expect("failed to dump");
self.name.dump_with_atoms_at(out, atoms, slices, depth + 1);
write!(out, ")").expect("failed to dump");
}
}
impl<'alloc> ASTDump for ObjectExpression<'alloc> {
fn dump_with_atoms_at<W>(&self, out: &mut W, atoms: &SourceAtomSet, slices: &SourceSliceList, depth: usize)
where W: io::Write
{
write!(out, "(ObjectExpression").expect("failed to dump");
write!(out, " ").expect("failed to dump");
write!(out, "properties=").expect("failed to dump");
self.properties.dump_with_atoms_at(out, atoms, slices, depth + 1);
write!(out, ")").expect("failed to dump");
}
}
impl<'alloc> ASTDump for StaticMemberExpression<'alloc> {
fn dump_with_atoms_at<W>(&self, out: &mut W, atoms: &SourceAtomSet, slices: &SourceSliceList, depth: usize)
where W: io::Write
{
write!(out, "(StaticMemberExpression").expect("failed to dump");
newline(out, depth + 1);
write!(out, "object=").expect("failed to dump");
self.object.dump_with_atoms_at(out, atoms, slices, depth + 1);
newline(out, depth + 1);
write!(out, "property=").expect("failed to dump");
self.property.dump_with_atoms_at(out, atoms, slices, depth + 1);
write!(out, ")").expect("failed to dump");
}
}
impl<'alloc> ASTDump for PrivateFieldExpression<'alloc> {
fn dump_with_atoms_at<W>(&self, out: &mut W, atoms: &SourceAtomSet, slices: &SourceSliceList, depth: usize)
where W: io::Write
{
write!(out, "(PrivateFieldExpression").expect("failed to dump");
newline(out, depth + 1);
write!(out, "object=").expect("failed to dump");
self.object.dump_with_atoms_at(out, atoms, slices, depth + 1);
newline(out, depth + 1);
write!(out, "field=").expect("failed to dump");
self.field.dump_with_atoms_at(out, atoms, slices, depth + 1);
write!(out, ")").expect("failed to dump");
}
}
impl<'alloc> ASTDump for TemplateExpressionElement<'alloc> {
fn dump_with_atoms_at<W>(&self, out: &mut W, atoms: &SourceAtomSet, slices: &SourceSliceList, depth: usize)
where W: io::Write
{
match self {
TemplateExpressionElement::Expression(ast) => {
ast.dump_with_atoms_at(out, atoms, slices, depth);
}
TemplateExpressionElement::TemplateElement(ast) => {
ast.dump_with_atoms_at(out, atoms, slices, depth);
}
}
}
}
impl<'alloc> ASTDump for TemplateExpression<'alloc> {
fn dump_with_atoms_at<W>(&self, out: &mut W, atoms: &SourceAtomSet, slices: &SourceSliceList, depth: usize)
where W: io::Write
{
write!(out, "(TemplateExpression").expect("failed to dump");
newline(out, depth + 1);
write!(out, "tag=").expect("failed to dump");
self.tag.dump_with_atoms_at(out, atoms, slices, depth + 1);
newline(out, depth + 1);
write!(out, "elements=").expect("failed to dump");
self.elements.dump_with_atoms_at(out, atoms, slices, depth + 1);
write!(out, ")").expect("failed to dump");
}
}
impl<'alloc> ASTDump for VariableDeclarationOrAssignmentTarget<'alloc> {
fn dump_with_atoms_at<W>(&self, out: &mut W, atoms: &SourceAtomSet, slices: &SourceSliceList, depth: usize)
where W: io::Write
{
match self {
VariableDeclarationOrAssignmentTarget::VariableDeclaration(ast) => {
ast.dump_with_atoms_at(out, atoms, slices, depth);
}
VariableDeclarationOrAssignmentTarget::AssignmentTarget(ast) => {
ast.dump_with_atoms_at(out, atoms, slices, depth);
}
}
}
}
impl<'alloc> ASTDump for VariableDeclarationOrExpression<'alloc> {
fn dump_with_atoms_at<W>(&self, out: &mut W, atoms: &SourceAtomSet, slices: &SourceSliceList, depth: usize)
where W: io::Write
{
match self {
VariableDeclarationOrExpression::VariableDeclaration(ast) => {
ast.dump_with_atoms_at(out, atoms, slices, depth);
}
VariableDeclarationOrExpression::Expression(ast) => {
ast.dump_with_atoms_at(out, atoms, slices, depth);
}
}
}
}
impl<'alloc> ASTDump for Block<'alloc> {
fn dump_with_atoms_at<W>(&self, out: &mut W, atoms: &SourceAtomSet, slices: &SourceSliceList, depth: usize)
where W: io::Write
{
write!(out, "(Block").expect("failed to dump");
newline(out, depth + 1);
write!(out, "statements=").expect("failed to dump");
self.statements.dump_with_atoms_at(out, atoms, slices, depth + 1);
newline(out, depth + 1);
write!(out, "declarations=").expect("failed to dump");
self.declarations.dump_with_atoms_at(out, atoms, slices, depth + 1);
write!(out, ")").expect("failed to dump");
}
}
impl<'alloc> ASTDump for CatchClause<'alloc> {
fn dump_with_atoms_at<W>(&self, out: &mut W, atoms: &SourceAtomSet, slices: &SourceSliceList, depth: usize)
where W: io::Write
{
write!(out, "(CatchClause").expect("failed to dump");
newline(out, depth + 1);
write!(out, "binding=").expect("failed to dump");
self.binding.dump_with_atoms_at(out, atoms, slices, depth + 1);
newline(out, depth + 1);
write!(out, "body=").expect("failed to dump");
self.body.dump_with_atoms_at(out, atoms, slices, depth + 1);
write!(out, ")").expect("failed to dump");
}
}
impl<'alloc> ASTDump for Directive {
fn dump_with_atoms_at<W>(&self, out: &mut W, atoms: &SourceAtomSet, slices: &SourceSliceList, depth: usize)
where W: io::Write
{
write!(out, "(Directive").expect("failed to dump");
write!(out, " ").expect("failed to dump");
write!(out, "raw_value=").expect("failed to dump");
self.raw_value.dump_with_atoms_at(out, atoms, slices, depth + 1);
write!(out, ")").expect("failed to dump");
}
}
impl<'alloc> ASTDump for FormalParameters<'alloc> {
fn dump_with_atoms_at<W>(&self, out: &mut W, atoms: &SourceAtomSet, slices: &SourceSliceList, depth: usize)
where W: io::Write
{
write!(out, "(FormalParameters").expect("failed to dump");
newline(out, depth + 1);
write!(out, "items=").expect("failed to dump");
self.items.dump_with_atoms_at(out, atoms, slices, depth + 1);
newline(out, depth + 1);
write!(out, "rest=").expect("failed to dump");
self.rest.dump_with_atoms_at(out, atoms, slices, depth + 1);
write!(out, ")").expect("failed to dump");
}
}
impl<'alloc> ASTDump for FunctionBody<'alloc> {
fn dump_with_atoms_at<W>(&self, out: &mut W, atoms: &SourceAtomSet, slices: &SourceSliceList, depth: usize)
where W: io::Write
{
write!(out, "(FunctionBody").expect("failed to dump");
newline(out, depth + 1);
write!(out, "directives=").expect("failed to dump");
self.directives.dump_with_atoms_at(out, atoms, slices, depth + 1);
newline(out, depth + 1);
write!(out, "statements=").expect("failed to dump");
self.statements.dump_with_atoms_at(out, atoms, slices, depth + 1);
write!(out, ")").expect("failed to dump");
}
}
impl<'alloc> ASTDump for Script<'alloc> {
fn dump_with_atoms_at<W>(&self, out: &mut W, atoms: &SourceAtomSet, slices: &SourceSliceList, depth: usize)
where W: io::Write
{
write!(out, "(Script").expect("failed to dump");
newline(out, depth + 1);
write!(out, "directives=").expect("failed to dump");
self.directives.dump_with_atoms_at(out, atoms, slices, depth + 1);
newline(out, depth + 1);
write!(out, "statements=").expect("failed to dump");
self.statements.dump_with_atoms_at(out, atoms, slices, depth + 1);
write!(out, ")").expect("failed to dump");
}
}
impl<'alloc> ASTDump for SwitchCase<'alloc> {
fn dump_with_atoms_at<W>(&self, out: &mut W, atoms: &SourceAtomSet, slices: &SourceSliceList, depth: usize)
where W: io::Write
{
write!(out, "(SwitchCase").expect("failed to dump");
newline(out, depth + 1);
write!(out, "test=").expect("failed to dump");
self.test.dump_with_atoms_at(out, atoms, slices, depth + 1);
newline(out, depth + 1);
write!(out, "consequent=").expect("failed to dump");
self.consequent.dump_with_atoms_at(out, atoms, slices, depth + 1);
write!(out, ")").expect("failed to dump");
}
}
impl<'alloc> ASTDump for SwitchDefault<'alloc> {
fn dump_with_atoms_at<W>(&self, out: &mut W, atoms: &SourceAtomSet, slices: &SourceSliceList, depth: usize)
where W: io::Write
{
write!(out, "(SwitchDefault").expect("failed to dump");
write!(out, " ").expect("failed to dump");
write!(out, "consequent=").expect("failed to dump");
self.consequent.dump_with_atoms_at(out, atoms, slices, depth + 1);
write!(out, ")").expect("failed to dump");
}
}
impl<'alloc> ASTDump for TemplateElement {
fn dump_with_atoms_at<W>(&self, out: &mut W, atoms: &SourceAtomSet, slices: &SourceSliceList, depth: usize)
where W: io::Write
{
write!(out, "(TemplateElement").expect("failed to dump");
write!(out, " ").expect("failed to dump");
write!(out, "raw_value=").expect("failed to dump");
self.raw_value.dump_with_atoms_at(out, atoms, slices, depth + 1);
write!(out, ")").expect("failed to dump");
}
}
impl<'alloc> ASTDump for VariableDeclaration<'alloc> {
fn dump_with_atoms_at<W>(&self, out: &mut W, atoms: &SourceAtomSet, slices: &SourceSliceList, depth: usize)
where W: io::Write
{
write!(out, "(VariableDeclaration").expect("failed to dump");
newline(out, depth + 1);
write!(out, "kind=").expect("failed to dump");
self.kind.dump_with_atoms_at(out, atoms, slices, depth + 1);
newline(out, depth + 1);
write!(out, "declarators=").expect("failed to dump");
self.declarators.dump_with_atoms_at(out, atoms, slices, depth + 1);
write!(out, ")").expect("failed to dump");
}
}
impl<'alloc> ASTDump for VariableDeclarator<'alloc> {
fn dump_with_atoms_at<W>(&self, out: &mut W, atoms: &SourceAtomSet, slices: &SourceSliceList, depth: usize)
where W: io::Write
{
write!(out, "(VariableDeclarator").expect("failed to dump");
newline(out, depth + 1);
write!(out, "binding=").expect("failed to dump");
self.binding.dump_with_atoms_at(out, atoms, slices, depth + 1);
newline(out, depth + 1);
write!(out, "init=").expect("failed to dump");
self.init.dump_with_atoms_at(out, atoms, slices, depth + 1);
write!(out, ")").expect("failed to dump");
}
}
impl<'alloc> ASTDump for CoverParenthesized<'alloc> {
fn dump_with_atoms_at<W>(&self, out: &mut W, atoms: &SourceAtomSet, slices: &SourceSliceList, depth: usize)
where W: io::Write
{
match self {
CoverParenthesized::Expression { expression, .. } => {
write!(out, "(Expression").expect("failed to dump");
write!(out, " ").expect("failed to dump");
write!(out, "expression=").expect("failed to dump");
expression.dump_with_atoms_at(out, atoms, slices, depth + 1);
write!(out, ")").expect("failed to dump");
}
CoverParenthesized::Parameters(ast) => {
ast.dump_with_atoms_at(out, atoms, slices, depth);
}
}
}
}
impl<'alloc, T> ASTDump for arena::Vec<'alloc, T>
where
T: ASTDump,
{
fn dump_with_atoms_at<W>(
&self,
out: &mut W,
atoms: &SourceAtomSet,
slices: &SourceSliceList,
depth: usize,
)
where
W: io::Write,
{
write!(out, "[").expect("failed to dump");
if self.len() > 0 {
for item in self {
newline(out, depth + 1);
item.dump_with_atoms_at(out, atoms, slices, depth + 1);
}
newline(out, depth);
}
write!(out, "]").expect("failed to dump");
}
}
impl<T> ASTDump for Option<T>
where
T: ASTDump,
{
fn dump_with_atoms_at<W>(
&self,
out: &mut W,
atoms: &SourceAtomSet,
slices: &SourceSliceList,
depth: usize,
)
where
W: io::Write,
{
match self {
Some(v) => {
v.dump_with_atoms_at(out, atoms, slices, depth);
}
None => {
write!(out, "None").expect("failed to dump");
}
}
}
}
impl<'alloc, T> ASTDump for arena::Box<'alloc, T>
where
T: ASTDump,
{
fn dump_with_atoms_at<W>(
&self,
out: &mut W,
atoms: &SourceAtomSet,
slices: &SourceSliceList,
depth: usize,
)
where
W: io::Write,
{
self.deref().dump_with_atoms_at(out, atoms, slices, depth);
}
}
impl ASTDump for bool {
fn dump_with_atoms_at<W>(
&self,
out: &mut W,
atoms: &SourceAtomSet,
slices: &SourceSliceList,
depth: usize,
)
where
W: io::Write,
{
if *self {
write!(out, "true").expect("failed to dump");
} else {
write!(out, "false").expect("failed to dump");
}
}
}
impl ASTDump for SourceAtomSetIndex {
fn dump_with_atoms_at<W>(
&self,
out: &mut W,
atoms: &SourceAtomSet,
slices: &SourceSliceList,
depth: usize,
)
where
W: io::Write,
{
write!(out, "{:?}", atoms.get(self.clone()))
.expect("failed to dump");
}
}
impl ASTDump for SourceSliceIndex {
fn dump_with_atoms_at<W>(
&self,
out: &mut W,
atoms: &SourceAtomSet,
slices: &SourceSliceList,
depth: usize,
)
where
W: io::Write,
{
write!(out, "{:?}", slices.get(self.clone()))
.expect("failed to dump");
}
}
impl ASTDump for f64 {
fn dump_with_atoms_at<W>(
&self,
out: &mut W,
atoms: &SourceAtomSet,
slices: &SourceSliceList,
depth: usize,
)
where
W: io::Write,
{
write!(out, "{}", self).expect("failed to dump");
}
}