feat(ast): add GetNodeId trait (#26145)

## Summary

- add `GetNodeId` alongside `NodeId` in `oxc_syntax`
- add a dedicated `DeriveGetNodeId` following the existing `GetSpan` derive architecture
- generate implementations into `derive_get_node_id.rs`, delegating uniformly through `self.node_id()`
This commit is contained in:
camc314
2026-09-02 15:35:26 +00:00
parent b41bb35bca
commit 1d9b9d372b
12 changed files with 1947 additions and 236 deletions
+125 -121
View File
@@ -28,6 +28,7 @@ use oxc_estree::ESTree;
use oxc_span::{ContentEq, GetSpan, GetSpanMut, SourceType, Span};
use oxc_str::{Ident, Str};
use oxc_syntax::{
GetNodeId,
node::NodeId,
operator::{
AssignmentOperator, BinaryOperator, LogicalOperator, UnaryOperator, UpdateOperator,
@@ -48,7 +49,7 @@ use super::*;
)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
#[estree(field_order(body, source_type, hashbang, span), via = ProgramConverter)]
pub struct Program<'a> {
pub node_id: Cell<NodeId>,
@@ -76,7 +77,7 @@ pub struct Program<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetAddress, GetSpan, GetSpanMut)]
#[generate_derive(ContentEq, ESTree, GetAddress, GetNodeId, GetSpan, GetSpanMut)]
pub enum Expression<'a> {
/// See [`BooleanLiteral`] for AST node details.
BooleanLiteral(Box<'a, BooleanLiteral>) = 0,
@@ -180,7 +181,7 @@ pub enum Expression<'a> {
#[ast(visit)]
#[derive(Debug, Clone)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
#[estree(
rename = "Identifier",
add_fields(decorators = TsEmptyArray, optional = TsFalse, typeAnnotation = TsNull),
@@ -200,7 +201,7 @@ pub struct IdentifierName<'a> {
#[ast(visit)]
#[derive(Debug, Clone)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
#[estree(
rename = "Identifier",
add_fields(decorators = TsEmptyArray, optional = TsFalse, typeAnnotation = TsNull),
@@ -230,7 +231,7 @@ pub struct IdentifierReference<'a> {
#[ast(visit)]
#[derive(Debug, Clone)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
#[estree(
rename = "Identifier",
add_fields(decorators = TsEmptyArray, optional = TsFalse, typeAnnotation = TsTypeAnnotationOrNull),
@@ -258,7 +259,7 @@ pub struct BindingIdentifier<'a> {
#[ast(visit)]
#[derive(Debug, Clone)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
#[estree(
rename = "Identifier",
add_fields(decorators = TsEmptyArray, optional = TsFalse, typeAnnotation = TsNull),
@@ -276,7 +277,7 @@ pub struct LabelIdentifier<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct ThisExpression {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -288,7 +289,7 @@ pub struct ThisExpression {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct ArrayExpression<'a> {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -302,7 +303,8 @@ pub struct ArrayExpression<'a> {
/// [`ast` module docs]: `super`
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn, ContentEq, ESTree, GetSpan, GetSpanMut)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut)]
pub enum ArrayExpressionElement<'a> {
/// `...[3, 4]` in `const array = [1, 2, ...[3, 4], null];`
SpreadElement(Box<'a, SpreadElement<'a>>) = 64,
@@ -322,7 +324,7 @@ pub enum ArrayExpressionElement<'a> {
#[ast(visit)]
#[derive(Debug, Clone)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
#[estree(via = Null)]
pub struct Elision {
pub node_id: Cell<NodeId>,
@@ -336,7 +338,7 @@ pub struct Elision {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct ObjectExpression<'a> {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -348,7 +350,7 @@ pub struct ObjectExpression<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetAddress, GetSpan, GetSpanMut)]
#[generate_derive(ContentEq, ESTree, GetAddress, GetNodeId, GetSpan, GetSpanMut)]
pub enum ObjectPropertyKind<'a> {
/// `a: 1` in `const obj = { a: 1 };`
ObjectProperty(Box<'a, ObjectProperty<'a>>) = 0,
@@ -362,7 +364,7 @@ pub enum ObjectPropertyKind<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
#[estree(rename = "Property", add_fields(optional = TsFalse))]
pub struct ObjectProperty<'a> {
pub node_id: Cell<NodeId>,
@@ -383,7 +385,7 @@ pub struct ObjectProperty<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetAddress, GetSpan, GetSpanMut)]
#[generate_derive(ContentEq, ESTree, GetAddress, GetNodeId, GetSpan, GetSpanMut)]
pub enum PropertyKey<'a> {
/// `a` in `const obj = { a: 1 }; obj.a;`
StaticIdentifier(Box<'a, IdentifierName<'a>>) = 64,
@@ -413,7 +415,7 @@ pub enum PropertyKind {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct TemplateLiteral<'a> {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -430,7 +432,7 @@ pub struct TemplateLiteral<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct TaggedTemplateExpression<'a> {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -446,7 +448,7 @@ pub struct TaggedTemplateExpression<'a> {
#[ast(visit)]
#[derive(Debug, Clone)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
#[estree(via = TemplateElementConverter)]
pub struct TemplateElement<'a> {
pub node_id: Cell<NodeId>,
@@ -487,7 +489,7 @@ pub struct TemplateElementValue<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetAddress, GetSpan, GetSpanMut)]
#[generate_derive(ContentEq, ESTree, GetAddress, GetNodeId, GetSpan, GetSpanMut)]
pub enum MemberExpression<'a> {
/// `ar[0]` in `const ar = [1, 2]; ar[0];`
ComputedMemberExpression(Box<'a, ComputedMemberExpression<'a>>) = 48,
@@ -503,7 +505,7 @@ pub enum MemberExpression<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
#[estree(rename = "MemberExpression", add_fields(computed = True))]
pub struct ComputedMemberExpression<'a> {
pub node_id: Cell<NodeId>,
@@ -520,7 +522,7 @@ pub struct ComputedMemberExpression<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
#[estree(rename = "MemberExpression", add_fields(computed = False))]
pub struct StaticMemberExpression<'a> {
pub node_id: Cell<NodeId>,
@@ -536,7 +538,7 @@ pub struct StaticMemberExpression<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
#[estree(rename = "MemberExpression", add_fields(computed = False))]
pub struct PrivateFieldExpression<'a> {
pub node_id: Cell<NodeId>,
@@ -566,7 +568,7 @@ pub struct PrivateFieldExpression<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct CallExpression<'a> {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -596,7 +598,7 @@ pub struct CallExpression<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct NewExpression<'a> {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -614,7 +616,7 @@ pub struct NewExpression<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
#[estree(
rename = "MetaProperty",
ts_alias = "MetaProperty",
@@ -638,7 +640,7 @@ pub struct ImportMeta {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
#[estree(
rename = "MetaProperty",
ts_alias = "MetaProperty",
@@ -656,7 +658,7 @@ pub struct NewTarget {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct SpreadElement<'a> {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -672,7 +674,7 @@ pub struct SpreadElement<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetAddress, GetSpan, GetSpanMut)]
#[generate_derive(ContentEq, ESTree, GetAddress, GetNodeId, GetSpan, GetSpanMut)]
pub enum Argument<'a> {
/// `...[1, 2]` in `const arr = [...[1, 2]];`
SpreadElement(Box<'a, SpreadElement<'a>>) = 64,
@@ -688,7 +690,7 @@ pub enum Argument<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct UpdateExpression<'a> {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -704,7 +706,7 @@ pub struct UpdateExpression<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
#[estree(add_fields(prefix = True))]
pub struct UnaryExpression<'a> {
pub node_id: Cell<NodeId>,
@@ -719,7 +721,7 @@ pub struct UnaryExpression<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct BinaryExpression<'a> {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -732,7 +734,7 @@ pub struct BinaryExpression<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
#[estree(rename = "BinaryExpression", add_fields(operator = In), field_order(left, operator, right, span))]
pub struct PrivateInExpression<'a> {
pub node_id: Cell<NodeId>,
@@ -748,7 +750,7 @@ pub struct PrivateInExpression<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct LogicalExpression<'a> {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -763,7 +765,7 @@ pub struct LogicalExpression<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct ConditionalExpression<'a> {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -778,7 +780,7 @@ pub struct ConditionalExpression<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct AssignmentExpression<'a> {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -796,7 +798,7 @@ pub struct AssignmentExpression<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetAddress, GetSpan, GetSpanMut)]
#[generate_derive(ContentEq, ESTree, GetAddress, GetNodeId, GetSpan, GetSpanMut)]
pub enum AssignmentTarget<'a> {
// `SimpleAssignmentTarget` and `AssignmentTargetPattern` variants added here by `#[ast]` macro
INHERIT(SimpleAssignmentTarget<'a>),
@@ -811,7 +813,7 @@ pub enum AssignmentTarget<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetAddress, GetSpan, GetSpanMut)]
#[generate_derive(ContentEq, ESTree, GetAddress, GetNodeId, GetSpan, GetSpanMut)]
pub enum SimpleAssignmentTarget<'a> {
AssignmentTargetIdentifier(Box<'a, IdentifierReference<'a>>) = 0,
TSAsExpression(Box<'a, TSAsExpression<'a>>) = 1,
@@ -826,7 +828,7 @@ pub enum SimpleAssignmentTarget<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetAddress, GetSpan, GetSpanMut)]
#[generate_derive(ContentEq, ESTree, GetAddress, GetNodeId, GetSpan, GetSpanMut)]
pub enum AssignmentTargetPattern<'a> {
ArrayAssignmentTarget(Box<'a, ArrayAssignmentTarget<'a>>) = 8,
ObjectAssignmentTarget(Box<'a, ObjectAssignmentTarget<'a>>) = 9,
@@ -838,7 +840,7 @@ pub enum AssignmentTargetPattern<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
#[estree(
rename = "ArrayPattern",
add_fields(decorators = TsEmptyArray, optional = TsFalse, typeAnnotation = TsNull),
@@ -858,7 +860,7 @@ pub struct ArrayAssignmentTarget<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
#[estree(
rename = "ObjectPattern",
add_fields(decorators = TsEmptyArray, optional = TsFalse, typeAnnotation = TsNull),
@@ -878,7 +880,7 @@ pub struct ObjectAssignmentTarget<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
#[estree(
rename = "RestElement",
add_fields(decorators = TsEmptyArray, optional = TsFalse, typeAnnotation = TsNull, value = TsNull),
@@ -899,7 +901,7 @@ pub struct AssignmentTargetRest<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetAddress, GetSpan, GetSpanMut)]
#[generate_derive(ContentEq, ESTree, GetAddress, GetNodeId, GetSpan, GetSpanMut)]
pub enum AssignmentTargetMaybeDefault<'a> {
AssignmentTargetWithDefault(Box<'a, AssignmentTargetWithDefault<'a>>) = 16,
@@ -910,7 +912,7 @@ pub enum AssignmentTargetMaybeDefault<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
#[estree(
rename = "AssignmentPattern",
add_fields(decorators = TsEmptyArray, optional = TsFalse, typeAnnotation = TsNull),
@@ -928,7 +930,7 @@ pub struct AssignmentTargetWithDefault<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetAddress, GetSpan, GetSpanMut)]
#[generate_derive(ContentEq, ESTree, GetAddress, GetNodeId, GetSpan, GetSpanMut)]
pub enum AssignmentTargetProperty<'a> {
AssignmentTargetPropertyIdentifier(Box<'a, AssignmentTargetPropertyIdentifier<'a>>) = 0,
AssignmentTargetPropertyProperty(Box<'a, AssignmentTargetPropertyProperty<'a>>) = 1,
@@ -941,7 +943,7 @@ pub enum AssignmentTargetProperty<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
#[estree(
rename = "Property",
add_fields(kind = Init, method = False, shorthand = True, computed = False, optional = TsFalse),
@@ -962,7 +964,7 @@ pub struct AssignmentTargetPropertyIdentifier<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
#[estree(
rename = "Property",
add_fields(kind = Init, method = False, shorthand = False, optional = TsFalse),
@@ -995,7 +997,7 @@ pub struct AssignmentTargetPropertyProperty<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct SequenceExpression<'a> {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -1008,7 +1010,7 @@ pub struct SequenceExpression<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct Super {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -1020,7 +1022,7 @@ pub struct Super {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct AwaitExpression<'a> {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -1033,7 +1035,7 @@ pub struct AwaitExpression<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct ChainExpression<'a> {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -1048,7 +1050,7 @@ pub struct ChainExpression<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetAddress, GetSpan, GetSpanMut)]
#[generate_derive(ContentEq, ESTree, GetAddress, GetNodeId, GetSpan, GetSpanMut)]
pub enum ChainElement<'a> {
CallExpression(Box<'a, CallExpression<'a>>) = 0,
/// `foo?.baz!` or `foo?.[bar]!`
@@ -1064,7 +1066,7 @@ pub enum ChainElement<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
#[estree(via = ParenthesizedExpressionConverter)]
pub struct ParenthesizedExpression<'a> {
pub node_id: Cell<NodeId>,
@@ -1081,7 +1083,7 @@ pub struct ParenthesizedExpression<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetAddress, GetSpan, GetSpanMut)]
#[generate_derive(ContentEq, ESTree, GetAddress, GetNodeId, GetSpan, GetSpanMut)]
pub enum Statement<'a> {
// Statements
BlockStatement(Box<'a, BlockStatement<'a>>) = 0,
@@ -1114,7 +1116,7 @@ pub enum Statement<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
#[estree(rename = "ExpressionStatement")]
pub struct Directive<'a> {
pub node_id: Cell<NodeId>,
@@ -1131,7 +1133,7 @@ pub struct Directive<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct Hashbang<'a> {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -1145,7 +1147,7 @@ pub struct Hashbang<'a> {
#[scope]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct BlockStatement<'a> {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -1157,7 +1159,7 @@ pub struct BlockStatement<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetAddress, GetSpan, GetSpanMut)]
#[generate_derive(ContentEq, ESTree, GetAddress, GetNodeId, GetSpan, GetSpanMut)]
pub enum Declaration<'a> {
VariableDeclaration(Box<'a, VariableDeclaration<'a>>) = 32,
#[visit(args(flags = ScopeFlags::Function))]
@@ -1179,7 +1181,7 @@ pub enum Declaration<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct VariableDeclaration<'a> {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -1212,7 +1214,7 @@ pub enum VariableDeclarationKind {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct VariableDeclarator<'a> {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -1230,7 +1232,7 @@ pub struct VariableDeclarator<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct EmptyStatement {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -1240,7 +1242,7 @@ pub struct EmptyStatement {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
#[estree(add_fields(directive = ExpressionStatementDirective))] // Only in TS AST
pub struct ExpressionStatement<'a> {
pub node_id: Cell<NodeId>,
@@ -1252,7 +1254,7 @@ pub struct ExpressionStatement<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct IfStatement<'a> {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -1265,7 +1267,7 @@ pub struct IfStatement<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct DoWhileStatement<'a> {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -1277,7 +1279,7 @@ pub struct DoWhileStatement<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct WhileStatement<'a> {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -1290,7 +1292,7 @@ pub struct WhileStatement<'a> {
#[scope]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct ForStatement<'a> {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -1309,7 +1311,7 @@ pub struct ForStatement<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetAddress, GetSpan, GetSpanMut)]
#[generate_derive(ContentEq, ESTree, GetAddress, GetNodeId, GetSpan, GetSpanMut)]
pub enum ForStatementInit<'a> {
VariableDeclaration(Box<'a, VariableDeclaration<'a>>) = 64,
@@ -1322,7 +1324,7 @@ pub enum ForStatementInit<'a> {
#[scope]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct ForInStatement<'a> {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -1340,7 +1342,7 @@ pub struct ForInStatement<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetAddress, GetSpan, GetSpanMut)]
#[generate_derive(ContentEq, ESTree, GetAddress, GetNodeId, GetSpan, GetSpanMut)]
pub enum ForStatementLeft<'a> {
VariableDeclaration(Box<'a, VariableDeclaration<'a>>) = 16,
@@ -1353,7 +1355,7 @@ pub enum ForStatementLeft<'a> {
#[scope]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct ForOfStatement<'a> {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -1368,7 +1370,7 @@ pub struct ForOfStatement<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct ContinueStatement<'a> {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -1379,7 +1381,7 @@ pub struct ContinueStatement<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct BreakStatement<'a> {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -1390,7 +1392,7 @@ pub struct BreakStatement<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct ReturnStatement<'a> {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -1402,7 +1404,7 @@ pub struct ReturnStatement<'a> {
#[scope(flags = ScopeFlags::With)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct WithStatement<'a> {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -1417,7 +1419,7 @@ pub struct WithStatement<'a> {
#[scope]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct SwitchStatement<'a> {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -1430,7 +1432,7 @@ pub struct SwitchStatement<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct SwitchCase<'a> {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -1442,7 +1444,7 @@ pub struct SwitchCase<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct LabeledStatement<'a> {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -1460,7 +1462,7 @@ pub struct LabeledStatement<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct ThrowStatement<'a> {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -1486,7 +1488,7 @@ pub struct ThrowStatement<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct TryStatement<'a> {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -1514,7 +1516,7 @@ pub struct TryStatement<'a> {
#[scope(flags = ScopeFlags::CatchClause)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct CatchClause<'a> {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -1541,7 +1543,7 @@ pub struct CatchClause<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
#[estree(no_type, via = CatchParameterConverter)]
pub struct CatchParameter<'a> {
pub node_id: Cell<NodeId>,
@@ -1564,7 +1566,7 @@ pub struct CatchParameter<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct DebuggerStatement {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -1573,7 +1575,7 @@ pub struct DebuggerStatement {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetAddress, GetSpan, GetSpanMut)]
#[generate_derive(ContentEq, ESTree, GetAddress, GetNodeId, GetSpan, GetSpanMut)]
pub enum BindingPattern<'a> {
/// `x` in `const x = 1;`.
///
@@ -1628,7 +1630,7 @@ pub enum BindingPattern<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
#[estree(
add_fields(decorators = TsEmptyArray, optional = TsFalse, typeAnnotation = TsNull),
field_order(decorators, left, right, optional, typeAnnotation, span),
@@ -1646,7 +1648,7 @@ pub struct AssignmentPattern<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
#[estree(
add_fields(decorators = TsEmptyArray, optional = TsFalse, typeAnnotation = TsTypeAnnotationOrNull),
field_order(decorators, properties, optional, typeAnnotation, span),
@@ -1662,7 +1664,7 @@ pub struct ObjectPattern<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
#[estree(
rename = "Property",
add_fields(kind = Init, method = False, optional = TsFalse),
@@ -1683,7 +1685,7 @@ pub struct BindingProperty<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
#[estree(
add_fields(decorators = TsEmptyArray, optional = TsFalse, typeAnnotation = TsTypeAnnotationOrNull),
field_order(decorators, elements, optional, typeAnnotation, span),
@@ -1708,7 +1710,7 @@ pub struct ArrayPattern<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
#[estree(
rename = "RestElement",
add_fields(decorators = TsEmptyArray, optional = TsFalse, typeAnnotation = TsTypeAnnotationOrNull, value = TsNull),
@@ -1764,7 +1766,7 @@ pub struct BindingRestElement<'a> {
)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
// https://github.com/estree/estree/blob/master/es5.md#patterns
// https://github.com/DefinitelyTyped/DefinitelyTyped/blob/cd61c555bfc93e985b313263a42ed78074570d08/types/estree/index.d.ts#L411
#[estree(
@@ -1862,7 +1864,7 @@ pub enum FunctionType {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
#[estree(
via = FormalParametersConverter,
add_ts_def = "
@@ -1890,7 +1892,7 @@ pub struct FormalParameters<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
// Pluralize as `FormalParameterList` to avoid naming clash with `FormalParameters`.
#[plural(FormalParameterList)]
#[estree(
@@ -1959,7 +1961,7 @@ pub enum FormalParameterKind {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct FormalParameterRest<'a> {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -1972,7 +1974,7 @@ pub struct FormalParameterRest<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
#[estree(rename = "BlockStatement")]
pub struct FunctionBody<'a> {
pub node_id: Cell<NodeId>,
@@ -1990,7 +1992,7 @@ pub struct FunctionBody<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetAddress, GetSpan, GetSpanMut)]
#[generate_derive(ContentEq, ESTree, GetAddress, GetNodeId, GetSpan, GetSpanMut)]
#[estree(no_ts_def)]
pub enum ArrowFunctionBody<'a> {
FunctionBody(Box<'a, FunctionBody<'a>>) = 64,
@@ -2007,7 +2009,7 @@ pub enum ArrowFunctionBody<'a> {
)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
#[estree(
add_fields(expression = ArrowFunctionExpressionExpression, id = Null, generator = False),
field_order(expression, r#async, type_parameters, params, return_type, body, id, generator, span),
@@ -2043,7 +2045,7 @@ pub struct ArrowFunctionExpression<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct YieldExpression<'a> {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -2056,7 +2058,7 @@ pub struct YieldExpression<'a> {
#[scope(flags = ScopeFlags::StrictMode)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
#[estree(
add_fields(superClass = ClassSuperClass, superTypeArguments = ClassSuperTypeArguments),
field_order(
@@ -2177,7 +2179,7 @@ pub enum ClassType {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct ClassBody<'a> {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -2205,7 +2207,7 @@ pub struct ClassBody<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetAddress, GetSpan, GetSpanMut)]
#[generate_derive(ContentEq, ESTree, GetAddress, GetNodeId, GetSpan, GetSpanMut)]
pub enum ClassElement<'a> {
StaticBlock(Box<'a, StaticBlock<'a>>) = 0,
/// Class Methods
@@ -2228,7 +2230,7 @@ pub enum ClassElement<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct MethodDefinition<'a> {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -2268,7 +2270,7 @@ pub enum MethodDefinitionType {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct PropertyDefinition<'a> {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -2385,7 +2387,7 @@ pub enum MethodDefinitionKind {
#[ast(visit)]
#[derive(Debug, Clone)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct PrivateIdentifier<'a> {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -2409,7 +2411,7 @@ pub struct PrivateIdentifier<'a> {
#[scope(flags = ScopeFlags::ClassStaticBlock)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct StaticBlock<'a> {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -2442,7 +2444,7 @@ pub struct StaticBlock<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetAddress, GetSpan, GetSpanMut)]
#[generate_derive(ContentEq, ESTree, GetAddress, GetNodeId, GetSpan, GetSpanMut)]
pub enum ModuleDeclaration<'a> {
/// `import hello from './world.js';`
/// `import * as t from './world.js';`
@@ -2484,7 +2486,7 @@ pub enum AccessorPropertyType {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
#[estree(add_fields(declare = TsFalse, optional = TsFalse, readonly = TsFalse))]
pub struct AccessorProperty<'a> {
pub node_id: Cell<NodeId>,
@@ -2534,7 +2536,7 @@ pub struct AccessorProperty<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct ImportExpression<'a> {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -2546,7 +2548,7 @@ pub struct ImportExpression<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct ImportDeclaration<'a> {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -2579,7 +2581,7 @@ pub enum ImportPhase {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetAddress, GetSpan, GetSpanMut)]
#[generate_derive(ContentEq, ESTree, GetAddress, GetNodeId, GetSpan, GetSpanMut)]
pub enum ImportDeclarationSpecifier<'a> {
/// `import {imported} from "source";`
/// `import {imported as local} from "source";`
@@ -2606,7 +2608,7 @@ pub enum ImportDeclarationSpecifier<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct ImportSpecifier<'a> {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -2632,7 +2634,7 @@ pub struct ImportSpecifier<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct ImportDefaultSpecifier<'a> {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -2649,7 +2651,7 @@ pub struct ImportDefaultSpecifier<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct ImportNamespaceSpecifier<'a> {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -2659,7 +2661,7 @@ pub struct ImportNamespaceSpecifier<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
#[estree(no_type, no_ts_def)]
pub struct WithClause<'a> {
pub node_id: Cell<NodeId>,
@@ -2683,7 +2685,7 @@ pub enum WithClauseKeyword {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct ImportAttribute<'a> {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -2693,7 +2695,8 @@ pub struct ImportAttribute<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn, ContentEq, ESTree, GetSpan, GetSpanMut)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut)]
pub enum ImportAttributeKey<'a> {
Identifier(IdentifierName<'a>) = 0,
StringLiteral(StringLiteral<'a>) = 1,
@@ -2710,7 +2713,7 @@ pub enum ImportAttributeKey<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
#[estree(
rename = "ExportNamedDeclaration",
ts_alias = "ExportNamedDeclaration",
@@ -2753,7 +2756,7 @@ pub struct ExportDeclaration<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
#[estree(
rename = "ExportNamedDeclaration",
ts_alias = "ExportNamedDeclaration",
@@ -2780,7 +2783,7 @@ pub struct ExportNamedDeclaration<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
#[estree(
rename = "ExportNamedDeclaration",
ts_alias = "ExportNamedDeclaration",
@@ -2812,7 +2815,7 @@ pub struct ExportFromDeclaration<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
#[estree(add_fields(exportKind = TsValue))]
pub struct ExportDefaultDeclaration<'a> {
pub node_id: Cell<NodeId>,
@@ -2832,7 +2835,7 @@ pub struct ExportDefaultDeclaration<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct ExportAllDeclaration<'a> {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -2864,7 +2867,7 @@ pub struct ExportAllDeclaration<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct ExportSpecifier<'a> {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -2882,7 +2885,7 @@ pub struct ExportSpecifier<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetAddress, GetSpan, GetSpanMut)]
#[generate_derive(ContentEq, ESTree, GetAddress, GetNodeId, GetSpan, GetSpanMut)]
pub enum ExportDefaultDeclarationKind<'a> {
#[visit(args(flags = ScopeFlags::Function))]
FunctionDeclaration(Box<'a, Function<'a>>) = 64,
@@ -2903,7 +2906,8 @@ pub enum ExportDefaultDeclarationKind<'a> {
/// * <https://github.com/tc39/ecma262/pull/2154>
#[ast(visit)]
#[derive(Debug, Clone)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn, ContentEq, ESTree, GetSpan, GetSpanMut)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut)]
pub enum ModuleExportName<'a> {
IdentifierName(IdentifierName<'a>) = 0,
/// For `local` in `ExportSpecifier`: `foo` in `export { foo }`
@@ -2916,7 +2920,7 @@ pub enum ModuleExportName<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct V8IntrinsicExpression<'a> {
pub node_id: Cell<NodeId>,
pub span: Span,
+24 -23
View File
@@ -11,7 +11,7 @@ use oxc_ast_macros::ast;
use oxc_estree::ESTree;
use oxc_span::{ContentEq, GetSpan, GetSpanMut, Span};
use oxc_str::Str;
use oxc_syntax::node::NodeId;
use oxc_syntax::{GetNodeId, node::NodeId};
use super::{js::*, literal::*, ts::*};
@@ -37,7 +37,7 @@ use super::{js::*, literal::*, ts::*};
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct JSXElement<'a> {
/// Unique identifier for this AST node.
pub node_id: Cell<NodeId>,
@@ -72,7 +72,7 @@ pub struct JSXElement<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
#[estree(add_fields(selfClosing = JSXOpeningElementSelfClosing))]
pub struct JSXOpeningElement<'a> {
/// Unique identifier for this AST node.
@@ -102,7 +102,7 @@ pub struct JSXOpeningElement<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct JSXClosingElement<'a> {
/// Unique identifier for this AST node.
pub node_id: Cell<NodeId>,
@@ -123,7 +123,7 @@ pub struct JSXClosingElement<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct JSXFragment<'a> {
/// Unique identifier for this AST node.
pub node_id: Cell<NodeId>,
@@ -141,7 +141,7 @@ pub struct JSXFragment<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
#[estree(add_fields(attributes = JsEmptyArray, selfClosing = JsFalse))]
pub struct JSXOpeningFragment {
/// Unique identifier for this AST node.
@@ -154,7 +154,7 @@ pub struct JSXOpeningFragment {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct JSXClosingFragment {
/// Unique identifier for this AST node.
pub node_id: Cell<NodeId>,
@@ -166,7 +166,7 @@ pub struct JSXClosingFragment {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetAddress, GetSpan, GetSpanMut)]
#[generate_derive(ContentEq, ESTree, GetAddress, GetNodeId, GetSpan, GetSpanMut)]
pub enum JSXElementName<'a> {
/// `<div />`
Identifier(Box<'a, JSXIdentifier<'a>>) = 0,
@@ -192,7 +192,7 @@ pub enum JSXElementName<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct JSXNamespacedName<'a> {
/// Unique identifier for this AST node.
pub node_id: Cell<NodeId>,
@@ -222,7 +222,7 @@ pub struct JSXNamespacedName<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct JSXMemberExpression<'a> {
/// Unique identifier for this AST node.
pub node_id: Cell<NodeId>,
@@ -253,7 +253,7 @@ pub struct JSXMemberExpression<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetAddress, GetSpan, GetSpanMut)]
#[generate_derive(ContentEq, ESTree, GetAddress, GetNodeId, GetSpan, GetSpanMut)]
pub enum JSXMemberExpressionObject<'a> {
/// `<Apple.Orange />`
#[estree(via = JSXElementIdentifierReference)]
@@ -281,7 +281,7 @@ pub enum JSXMemberExpressionObject<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct JSXExpressionContainer<'a> {
/// Unique identifier for this AST node.
pub node_id: Cell<NodeId>,
@@ -299,7 +299,8 @@ pub struct JSXExpressionContainer<'a> {
/// [`ast` module docs]: `super`
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn, ContentEq, ESTree, GetSpan, GetSpanMut)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut)]
pub enum JSXExpression<'a> {
/// An empty expression
///
@@ -318,7 +319,7 @@ pub enum JSXExpression<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct JSXEmptyExpression {
/// Unique identifier for this AST node.
pub node_id: Cell<NodeId>,
@@ -340,7 +341,7 @@ pub struct JSXEmptyExpression {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetAddress, GetSpan, GetSpanMut)]
#[generate_derive(ContentEq, ESTree, GetAddress, GetNodeId, GetSpan, GetSpanMut)]
pub enum JSXAttributeItem<'a> {
/// A `key="value"` attribute
Attribute(Box<'a, JSXAttribute<'a>>) = 0,
@@ -362,7 +363,7 @@ pub enum JSXAttributeItem<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct JSXAttribute<'a> {
/// Unique identifier for this AST node.
pub node_id: Cell<NodeId>,
@@ -386,7 +387,7 @@ pub struct JSXAttribute<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct JSXSpreadAttribute<'a> {
/// Unique identifier for this AST node.
pub node_id: Cell<NodeId>,
@@ -414,7 +415,7 @@ pub struct JSXSpreadAttribute<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetAddress, GetSpan, GetSpanMut)]
#[generate_derive(ContentEq, ESTree, GetAddress, GetNodeId, GetSpan, GetSpanMut)]
pub enum JSXAttributeName<'a> {
/// An attribute name without a namespace prefix, e.g. `foo` in `foo="bar"`.
Identifier(Box<'a, JSXIdentifier<'a>>) = 0,
@@ -443,7 +444,7 @@ pub enum JSXAttributeName<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetAddress, GetSpan, GetSpanMut)]
#[generate_derive(ContentEq, ESTree, GetAddress, GetNodeId, GetSpan, GetSpanMut)]
pub enum JSXAttributeValue<'a> {
/// `<Component foo="bar" />`
StringLiteral(Box<'a, StringLiteral<'a>>) = 0,
@@ -463,7 +464,7 @@ pub enum JSXAttributeValue<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct JSXIdentifier<'a> {
/// Unique identifier for this AST node.
pub node_id: Cell<NodeId>,
@@ -482,7 +483,7 @@ pub struct JSXIdentifier<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetAddress, GetSpan, GetSpanMut)]
#[generate_derive(ContentEq, ESTree, GetAddress, GetNodeId, GetSpan, GetSpanMut)]
pub enum JSXChild<'a> {
/// `<Foo>Some Text</Foo>`
Text(Box<'a, JSXText<'a>>) = 0,
@@ -502,7 +503,7 @@ pub enum JSXChild<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct JSXSpreadChild<'a> {
/// Unique identifier for this AST node.
pub node_id: Cell<NodeId>,
@@ -525,7 +526,7 @@ pub struct JSXSpreadChild<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct JSXText<'a> {
/// Unique identifier for this AST node.
pub node_id: Cell<NodeId>,
+7 -6
View File
@@ -14,6 +14,7 @@ use oxc_regular_expression::ast::Pattern;
use oxc_span::{ContentEq, GetSpan, GetSpanMut, Span};
use oxc_str::Str;
use oxc_syntax::{
GetNodeId,
node::NodeId,
number::{BigintBase, NumberBase},
};
@@ -24,7 +25,7 @@ use oxc_syntax::{
#[ast(visit)]
#[derive(Debug, Clone)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
#[estree(rename = "Literal", add_fields(raw = BooleanLiteralRaw))]
pub struct BooleanLiteral {
/// Unique identifier for this AST node.
@@ -41,7 +42,7 @@ pub struct BooleanLiteral {
#[ast(visit)]
#[derive(Debug, Clone)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
#[estree(rename = "Literal", add_fields(value = Null, raw = NullLiteralRaw))]
pub struct NullLiteral {
/// Unique identifier for this AST node.
@@ -56,7 +57,7 @@ pub struct NullLiteral {
#[ast(visit)]
#[derive(Debug, Clone)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
#[estree(rename = "Literal")]
pub struct NumericLiteral<'a> {
/// Unique identifier for this AST node.
@@ -83,7 +84,7 @@ pub struct NumericLiteral<'a> {
#[ast(visit)]
#[derive(Debug, Clone)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
#[estree(rename = "Literal")]
pub struct StringLiteral<'a> {
/// Unique identifier for this AST node.
@@ -117,7 +118,7 @@ pub struct StringLiteral<'a> {
#[ast(visit)]
#[derive(Debug, Clone)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
#[estree(rename = "Literal", add_fields(bigint = BigIntLiteralBigint))]
pub struct BigIntLiteral<'a> {
/// Unique identifier for this AST node.
@@ -143,7 +144,7 @@ pub struct BigIntLiteral<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
#[estree(
rename = "Literal",
add_fields(value = RegExpLiteralValue),
+87 -86
View File
@@ -26,7 +26,7 @@ use oxc_ast_macros::ast;
use oxc_estree::ESTree;
use oxc_span::{ContentEq, GetSpan, GetSpanMut, Span};
use oxc_str::Ident;
use oxc_syntax::{node::NodeId, scope::ScopeId};
use oxc_syntax::{GetNodeId, node::NodeId, scope::ScopeId};
use super::{js::*, literal::*};
@@ -43,7 +43,7 @@ use super::{js::*, literal::*};
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
#[estree(
rename = "Identifier",
add_fields(decorators = EmptyArray, name = This, optional = False),
@@ -81,7 +81,7 @@ pub struct TSThisParameter<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct TSEnumDeclaration<'a> {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -108,7 +108,7 @@ pub struct TSEnumDeclaration<'a> {
#[scope]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct TSEnumBody<'a> {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -136,7 +136,7 @@ pub struct TSEnumBody<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
#[estree(add_fields(computed = TSEnumMemberComputed))]
pub struct TSEnumMember<'a> {
pub node_id: Cell<NodeId>,
@@ -162,7 +162,7 @@ pub struct TSEnumMember<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetAddress, GetSpan, GetSpanMut)]
#[generate_derive(ContentEq, ESTree, GetAddress, GetNodeId, GetSpan, GetSpanMut)]
pub enum TSEnumMemberName<'a> {
Identifier(Box<'a, IdentifierName<'a>>) = 0,
String(Box<'a, StringLiteral<'a>>) = 1,
@@ -185,7 +185,7 @@ pub enum TSEnumMemberName<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct TSTypeAnnotation<'a> {
/// starts at the `:` token and ends at the end of the type annotation
pub node_id: Cell<NodeId>,
@@ -211,7 +211,7 @@ pub struct TSTypeAnnotation<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct TSLiteralType<'a> {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -222,7 +222,7 @@ pub struct TSLiteralType<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetAddress, GetSpan, GetSpanMut)]
#[generate_derive(ContentEq, ESTree, GetAddress, GetNodeId, GetSpan, GetSpanMut)]
pub enum TSLiteral<'a> {
BooleanLiteral(Box<'a, BooleanLiteral>) = 0,
NumericLiteral(Box<'a, NumericLiteral<'a>>) = 1,
@@ -246,7 +246,7 @@ pub enum TSLiteral<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetAddress, GetSpan, GetSpanMut)]
#[generate_derive(ContentEq, ESTree, GetAddress, GetNodeId, GetSpan, GetSpanMut)]
pub enum TSType<'a> {
// Keyword
TSAnyKeyword(Box<'a, TSAnyKeyword>) = 0,
@@ -307,7 +307,7 @@ pub enum TSType<'a> {
#[scope(flags = ScopeFlags::TsConditional)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct TSConditionalType<'a> {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -336,7 +336,7 @@ pub struct TSConditionalType<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct TSUnionType<'a> {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -360,7 +360,7 @@ pub struct TSUnionType<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct TSIntersectionType<'a> {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -379,7 +379,7 @@ pub struct TSIntersectionType<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
#[estree(via = TSParenthesizedTypeConverter)]
pub struct TSParenthesizedType<'a> {
pub node_id: Cell<NodeId>,
@@ -399,7 +399,7 @@ pub struct TSParenthesizedType<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct TSTypeOperator<'a> {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -432,7 +432,7 @@ pub enum TSTypeOperatorOperator {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct TSArrayType<'a> {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -453,7 +453,7 @@ pub struct TSArrayType<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct TSIndexedAccessType<'a> {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -473,7 +473,7 @@ pub struct TSIndexedAccessType<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct TSTupleType<'a> {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -494,7 +494,7 @@ pub struct TSTupleType<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct TSNamedTupleMember<'a> {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -515,7 +515,7 @@ pub struct TSNamedTupleMember<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct TSOptionalType<'a> {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -533,7 +533,7 @@ pub struct TSOptionalType<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct TSRestType<'a> {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -550,7 +550,7 @@ pub struct TSRestType<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetAddress, GetSpan, GetSpanMut)]
#[generate_derive(ContentEq, ESTree, GetAddress, GetNodeId, GetSpan, GetSpanMut)]
pub enum TSTupleElement<'a> {
// Discriminants start at 64, so that `TSTupleElement::is_ts_type` is a single
// bitwise AND operation on the discriminant (`discriminant & 63 != 0`).
@@ -573,7 +573,7 @@ pub enum TSTupleElement<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct TSAnyKeyword {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -591,7 +591,7 @@ pub struct TSAnyKeyword {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct TSStringKeyword {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -609,7 +609,7 @@ pub struct TSStringKeyword {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct TSBooleanKeyword {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -627,7 +627,7 @@ pub struct TSBooleanKeyword {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct TSNumberKeyword {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -646,7 +646,7 @@ pub struct TSNumberKeyword {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct TSNeverKeyword {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -665,7 +665,7 @@ pub struct TSNeverKeyword {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct TSIntrinsicKeyword {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -685,7 +685,7 @@ pub struct TSIntrinsicKeyword {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct TSUnknownKeyword {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -704,7 +704,7 @@ pub struct TSUnknownKeyword {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct TSNullKeyword {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -725,7 +725,7 @@ pub struct TSNullKeyword {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct TSUndefinedKeyword {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -734,7 +734,7 @@ pub struct TSUndefinedKeyword {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct TSVoidKeyword {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -743,7 +743,7 @@ pub struct TSVoidKeyword {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct TSSymbolKeyword {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -752,7 +752,7 @@ pub struct TSSymbolKeyword {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct TSThisType {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -761,7 +761,7 @@ pub struct TSThisType {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct TSObjectKeyword {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -770,7 +770,7 @@ pub struct TSObjectKeyword {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct TSBigIntKeyword {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -790,7 +790,7 @@ pub struct TSBigIntKeyword {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct TSTypeReference<'a> {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -805,7 +805,7 @@ pub struct TSTypeReference<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetAddress, GetSpan, GetSpanMut)]
#[generate_derive(ContentEq, ESTree, GetAddress, GetNodeId, GetSpan, GetSpanMut)]
pub enum TSTypeName<'a> {
IdentifierReference(Box<'a, IdentifierReference<'a>>) = 0,
QualifiedName(Box<'a, TSQualifiedName<'a>>) = 1,
@@ -824,7 +824,7 @@ pub enum TSTypeName<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct TSQualifiedName<'a> {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -835,7 +835,7 @@ pub struct TSQualifiedName<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct TSTypeParameterInstantiation<'a> {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -862,7 +862,7 @@ pub struct TSTypeParameterInstantiation<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct TSTypeParameter<'a> {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -883,7 +883,7 @@ pub struct TSTypeParameter<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct TSTypeParameterDeclaration<'a> {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -902,7 +902,7 @@ pub struct TSTypeParameterDeclaration<'a> {
#[scope]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct TSTypeAliasDeclaration<'a> {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -937,7 +937,7 @@ pub enum TSAccessibility {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
#[plural(TSClassImplementsList)]
pub struct TSClassImplements<'a> {
pub node_id: Cell<NodeId>,
@@ -966,7 +966,7 @@ pub struct TSClassImplements<'a> {
#[scope]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct TSInterfaceDeclaration<'a> {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -987,7 +987,7 @@ pub struct TSInterfaceDeclaration<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct TSInterfaceBody<'a> {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -1012,7 +1012,7 @@ pub struct TSInterfaceBody<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
#[estree(add_fields(accessibility = Null, r#static = False))]
pub struct TSPropertySignature<'a> {
pub node_id: Cell<NodeId>,
@@ -1027,7 +1027,7 @@ pub struct TSPropertySignature<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetAddress, GetSpan, GetSpanMut)]
#[generate_derive(ContentEq, ESTree, GetAddress, GetNodeId, GetSpan, GetSpanMut)]
pub enum TSSignature<'a> {
TSIndexSignature(Box<'a, TSIndexSignature<'a>>) = 0,
TSPropertySignature(Box<'a, TSPropertySignature<'a>>) = 1,
@@ -1050,7 +1050,7 @@ pub enum TSSignature<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
#[estree(add_fields(accessibility = Null))]
pub struct TSIndexSignature<'a> {
pub node_id: Cell<NodeId>,
@@ -1066,7 +1066,7 @@ pub struct TSIndexSignature<'a> {
#[scope]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct TSCallSignatureDeclaration<'a> {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -1103,7 +1103,7 @@ pub enum TSMethodSignatureKind {
#[scope]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
#[estree(add_fields(accessibility = Null, readonly = False, r#static = False))]
pub struct TSMethodSignature<'a> {
pub node_id: Cell<NodeId>,
@@ -1126,7 +1126,7 @@ pub struct TSMethodSignature<'a> {
#[scope]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct TSConstructSignatureDeclaration<'a> {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -1139,7 +1139,7 @@ pub struct TSConstructSignatureDeclaration<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
#[estree(
rename = "Identifier",
add_fields(decorators = EmptyArray, optional = False),
@@ -1155,7 +1155,7 @@ pub struct TSIndexSignatureName<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct TSInterfaceHeritage<'a> {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -1187,7 +1187,7 @@ pub struct TSInterfaceHeritage<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct TSTypePredicate<'a> {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -1205,7 +1205,8 @@ pub struct TSTypePredicate<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn, ContentEq, ESTree, GetSpan, GetSpanMut)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut)]
pub enum TSTypePredicateName<'a> {
Identifier(Box<'a, IdentifierName<'a>>) = 0,
This(Box<'a, TSThisType>) = 1,
@@ -1225,7 +1226,7 @@ pub enum TSTypePredicateName<'a> {
)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
#[estree(
rename = "TSModuleDeclaration",
ts_alias = "TSModuleDeclaration",
@@ -1269,7 +1270,7 @@ pub struct TSExternalModuleDeclaration<'a> {
)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
#[estree(
rename = "TSModuleDeclaration",
ts_alias = "TSModuleDeclaration",
@@ -1300,7 +1301,7 @@ pub enum TSNamespaceDeclarationKind {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetAddress, GetSpan, GetSpanMut)]
#[generate_derive(ContentEq, ESTree, GetAddress, GetNodeId, GetSpan, GetSpanMut)]
#[estree(no_ts_def)]
pub enum TSNamespaceDeclarationBody<'a> {
TSNamespaceDeclaration(Box<'a, TSNamespaceDeclaration<'a>>) = 0,
@@ -1325,7 +1326,7 @@ pub enum TSNamespaceDeclarationBody<'a> {
#[scope(flags = ScopeFlags::TsModuleBlock)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
#[estree(
rename = "TSModuleDeclaration",
add_fields(id = TSGlobalDeclarationId, kind = Global, global = True),
@@ -1347,7 +1348,7 @@ pub struct TSGlobalDeclaration<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct TSModuleBlock<'a> {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -1359,7 +1360,7 @@ pub struct TSModuleBlock<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct TSTypeLiteral<'a> {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -1382,7 +1383,7 @@ pub struct TSTypeLiteral<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct TSInferType<'a> {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -1402,7 +1403,7 @@ pub struct TSInferType<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct TSTypeQuery<'a> {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -1418,7 +1419,7 @@ pub struct TSTypeQuery<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetAddress, GetSpan, GetSpanMut)]
#[generate_derive(ContentEq, ESTree, GetAddress, GetNodeId, GetSpan, GetSpanMut)]
pub enum TSTypeQueryExprName<'a> {
/// `type foo = typeof import('foo')`
TSImportType(Box<'a, TSImportType<'a>>) = 3,
@@ -1440,7 +1441,7 @@ pub enum TSTypeQueryExprName<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct TSImportType<'a> {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -1461,7 +1462,7 @@ pub struct TSImportType<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetAddress, GetSpan, GetSpanMut)]
#[generate_derive(ContentEq, ESTree, GetAddress, GetNodeId, GetSpan, GetSpanMut)]
pub enum TSImportTypeQualifier<'a> {
Identifier(Box<'a, IdentifierName<'a>>) = 0,
QualifiedName(Box<'a, TSImportTypeQualifiedName<'a>>) = 1,
@@ -1473,7 +1474,7 @@ pub enum TSImportTypeQualifier<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
#[estree(rename = "TSQualifiedName")]
pub struct TSImportTypeQualifiedName<'a> {
pub node_id: Cell<NodeId>,
@@ -1494,7 +1495,7 @@ pub struct TSImportTypeQualifiedName<'a> {
#[scope]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct TSFunctionType<'a> {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -1530,7 +1531,7 @@ pub struct TSFunctionType<'a> {
#[scope]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct TSConstructorType<'a> {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -1566,7 +1567,7 @@ pub struct TSConstructorType<'a> {
#[scope]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
#[estree(field_order(key, constraint, name_type, type_annotation, optional, readonly, span))]
pub struct TSMappedType<'a> {
pub node_id: Cell<NodeId>,
@@ -1634,7 +1635,7 @@ pub enum TSMappedTypeModifierOperator {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct TSTemplateLiteralType<'a> {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -1647,7 +1648,7 @@ pub struct TSTemplateLiteralType<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct TSAsExpression<'a> {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -1670,7 +1671,7 @@ pub struct TSAsExpression<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct TSSatisfiesExpression<'a> {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -1691,7 +1692,7 @@ pub struct TSSatisfiesExpression<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct TSTypeAssertion<'a> {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -1702,7 +1703,7 @@ pub struct TSTypeAssertion<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct TSImportEqualsDeclaration<'a> {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -1725,7 +1726,7 @@ pub struct TSImportEqualsDeclaration<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetAddress, GetSpan, GetSpanMut)]
#[generate_derive(ContentEq, ESTree, GetAddress, GetNodeId, GetSpan, GetSpanMut)]
pub enum TSModuleReference<'a> {
ExternalModuleReference(Box<'a, TSExternalModuleReference<'a>>) = 0,
IdentifierReference(Box<'a, IdentifierReference<'a>>) = 1,
@@ -1735,7 +1736,7 @@ pub enum TSModuleReference<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct TSExternalModuleReference<'a> {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -1745,7 +1746,7 @@ pub struct TSExternalModuleReference<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct TSNonNullExpression<'a> {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -1779,7 +1780,7 @@ pub struct TSNonNullExpression<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct Decorator<'a> {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -1792,7 +1793,7 @@ pub struct Decorator<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct TSExportAssignment<'a> {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -1805,7 +1806,7 @@ pub struct TSExportAssignment<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct TSNamespaceExportDeclaration<'a> {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -1815,7 +1816,7 @@ pub struct TSNamespaceExportDeclaration<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
pub struct TSInstantiationExpression<'a> {
pub node_id: Cell<NodeId>,
pub span: Span,
@@ -1840,7 +1841,7 @@ pub enum ImportOrExportKind {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
#[estree(rename = "TSJSDocNullableType")]
pub struct JSDocNullableType<'a> {
pub node_id: Cell<NodeId>,
@@ -1854,7 +1855,7 @@ pub struct JSDocNullableType<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
#[estree(rename = "TSJSDocNonNullableType")]
pub struct JSDocNonNullableType<'a> {
pub node_id: Cell<NodeId>,
@@ -1867,7 +1868,7 @@ pub struct JSDocNonNullableType<'a> {
#[ast(visit)]
#[derive(Debug)]
#[generate_derive(CloneIn, Dummy, ReplaceWith, TakeIn)]
#[generate_derive(ContentEq, ESTree, GetSpan, GetSpanMut, UnstableAddress)]
#[generate_derive(ContentEq, ESTree, GetNodeId, GetSpan, GetSpanMut, UnstableAddress)]
#[estree(rename = "TSJSDocUnknownType")]
pub struct JSDocUnknownType {
pub node_id: Cell<NodeId>,
File diff suppressed because it is too large Load Diff
+1
View File
@@ -63,6 +63,7 @@ mod generated {
#[cfg(feature = "serialize")]
mod derive_estree;
mod derive_get_address;
mod derive_get_node_id;
mod derive_get_span;
mod derive_get_span_mut;
mod derive_replace_with;
@@ -12,6 +12,7 @@ pub fn get_trait_crate_and_generics(trait_name: &str) -> Option<(TokenStream, To
"ReplaceWith" => (quote!(::oxc_allocator::ReplaceWith), quote!(< 'static >)),
"GetAddress" => (quote!(::oxc_allocator::GetAddress), TokenStream::new()),
"UnstableAddress" => (quote!(::oxc_allocator::UnstableAddress), TokenStream::new()),
"GetNodeId" => (quote!(::oxc_syntax::GetNodeId), TokenStream::new()),
"GetSpan" => (quote!(::oxc_span::GetSpan), TokenStream::new()),
"GetSpanMut" => (quote!(::oxc_span::GetSpanMut), TokenStream::new()),
"ContentEq" => (quote!(::oxc_span::ContentEq), TokenStream::new()),
+2
View File
@@ -23,6 +23,8 @@ mod serialize;
pub mod symbol;
pub mod xml_entities;
pub use node::GetNodeId;
mod generated {
#[cfg(debug_assertions)]
mod assert_layouts;
+8
View File
@@ -53,6 +53,14 @@ impl<'alloc> CloneIn<'alloc> for NodeId {
impl SemanticId for NodeId {}
/// Get the [`NodeId`] of given AST node.
///
/// Only use this method on a post-semantic AST where [`NodeId`]s are always defined.
pub trait GetNodeId {
/// Get the [`NodeId`] for an AST node.
fn node_id(&self) -> NodeId;
}
bitflags! {
/// Contains additional information about an AST node.
#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
@@ -0,0 +1,42 @@
//! Derive for `GetNodeId` trait.
use proc_macro2::TokenStream;
use quote::quote;
use crate::schema::{Def, Schema};
use super::{Derive, StructOrEnum, define_derive};
/// Derive for `GetNodeId` trait.
pub struct DeriveGetNodeId;
define_derive!(DeriveGetNodeId);
impl Derive for DeriveGetNodeId {
fn trait_name(&self) -> &'static str {
"GetNodeId"
}
fn crate_name(&self) -> &'static str {
"oxc_syntax"
}
fn prelude(&self) -> TokenStream {
quote! {
use oxc_syntax::{GetNodeId, node::NodeId};
}
}
fn derive(&self, type_def: StructOrEnum, schema: &Schema) -> TokenStream {
let ty = type_def.ty_anon(schema);
quote! {
impl GetNodeId for #ty {
#[inline]
fn node_id(&self) -> NodeId {
self.node_id()
}
}
}
}
}
+2
View File
@@ -19,6 +19,7 @@ mod content_eq;
mod dummy;
pub mod estree;
mod get_address;
mod get_node_id;
mod get_span;
mod replace_with;
mod take_in;
@@ -29,6 +30,7 @@ pub use content_eq::DeriveContentEq;
pub use dummy::DeriveDummy;
pub use estree::DeriveESTree;
pub use get_address::DeriveGetAddress;
pub use get_node_id::DeriveGetNodeId;
pub use get_span::{DeriveGetSpan, DeriveGetSpanMut};
pub use replace_with::DeriveReplaceWith;
pub use take_in::DeriveTakeIn;
+1
View File
@@ -251,6 +251,7 @@ const DERIVES: &[&(dyn Derive + Sync)] = &[
&derives::DeriveReplaceWith,
&derives::DeriveGetAddress,
&derives::DeriveUnstableAddress,
&derives::DeriveGetNodeId,
&derives::DeriveGetSpan,
&derives::DeriveGetSpanMut,
&derives::DeriveContentEq,