Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions crates/swc_common/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ pub use swc_eq_ignore_macros::{EqIgnoreSpan, TypeEq};
pub use self::{
eq::{EqIgnoreSpan, TypeEq},
errors::{SourceMapper, SourceMapperDyn},
node_id::NodeId,
pos::{
hygiene, BytePos, CharPos, FileName, Globals, Loc, LocWithOpt, Mark, MultiSpan, SourceFile,
SourceFileAndBytePos, SourceFileAndLine, Span, SpanLinesError, Spanned, SyntaxContext,
Expand All @@ -59,6 +60,7 @@ mod eq;
pub mod errors;
pub mod input;
pub mod iter;
mod node_id;
pub mod pass;
pub mod plugin;
mod pos;
Expand Down
15 changes: 15 additions & 0 deletions crates/swc_common/src/node_id.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
#[derive(
Eq, Hash, Default, Debug, PartialEq, Clone, Copy, serde::Serialize, serde::Deserialize,
)]
#[cfg_attr(
any(feature = "rkyv-impl"),
derive(rkyv::Archive, rkyv::Serialize, rkyv::Deserialize)
)]
#[cfg_attr(feature = "rkyv-impl", derive(bytecheck::CheckBytes))]
#[cfg_attr(feature = "rkyv-impl", repr(C))]
#[cfg_attr(feature = "shrink-to-fit", derive(shrink_to_fit::ShrinkToFit))]
pub struct NodeId(#[cfg_attr(feature = "__rkyv", rkyv(omit_bounds))] u32);

impl NodeId {
pub const DUMMY: NodeId = NodeId(u32::MAX);
}
8 changes: 7 additions & 1 deletion crates/swc_ecma_ast/src/ident.rs
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,8 @@ use phf::phf_set;
use rustc_hash::FxHashSet;
use swc_atoms::{atom, Atom, UnsafeAtom};
use swc_common::{
ast_node, util::take::Take, BytePos, EqIgnoreSpan, Mark, Span, Spanned, SyntaxContext, DUMMY_SP,
ast_node, util::take::Take, BytePos, EqIgnoreSpan, Mark, NodeId, Span, Spanned, SyntaxContext,
DUMMY_SP,
};

use crate::{typescript::TsTypeAnn, Expr};
Expand Down Expand Up @@ -91,6 +92,7 @@ impl From<&'_ BindingIdent> for Ident {
ctxt: bi.ctxt,
sym: bi.sym.clone(),
optional: bi.optional,
node_id: bi.node_id,
}
}
}
Expand Down Expand Up @@ -179,6 +181,9 @@ pub struct Ident {
#[cfg_attr(feature = "__rkyv", rkyv(omit_bounds))]
pub ctxt: SyntaxContext,

#[cfg_attr(feature = "__rkyv", rkyv(omit_bounds))]
pub node_id: NodeId,

#[cfg_attr(feature = "serde-impl", serde(rename = "value"))]
pub sym: Atom,

Expand Down Expand Up @@ -592,6 +597,7 @@ impl Ident {
ctxt,
sym,
optional: false,
node_id: NodeId::DUMMY,
}
}

Expand Down
118 changes: 59 additions & 59 deletions crates/swc_ecma_ast/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -511,7 +511,7 @@ mod rkyv_layout_assert {
assert_size!(ArchivedProgram, 32);
assert_size!(ArchivedModule, 28);
assert_size!(ArchivedScript, 28);
assert_size!(ArchivedModuleItem, 52);
assert_size!(ArchivedModuleItem, 56);

// Class types
assert_size!(ArchivedAutoAccessor, 96);
Expand All @@ -528,13 +528,13 @@ mod rkyv_layout_assert {
assert_size!(ArchivedStaticBlock, 28);

// Declaration types
assert_size!(ArchivedClassDecl, 32);
assert_size!(ArchivedDecl, 36);
assert_size!(ArchivedFnDecl, 32);
assert_size!(ArchivedClassDecl, 36);
assert_size!(ArchivedDecl, 40);
assert_size!(ArchivedFnDecl, 36);
assert_size!(ArchivedUsingDecl, 20);
assert_size!(ArchivedVarDecl, 24);
assert_size!(ArchivedVarDeclKind, 1);
assert_size!(ArchivedVarDeclarator, 56);
assert_size!(ArchivedVarDeclarator, 60);

// Expression types
assert_size!(ArchivedArrayLit, 16);
Expand All @@ -546,11 +546,11 @@ mod rkyv_layout_assert {
assert_size!(ArchivedBlockStmtOrExpr, 24);
assert_size!(ArchivedCallExpr, 44);
assert_size!(ArchivedCallee, 16);
assert_size!(ArchivedClassExpr, 32);
assert_size!(ArchivedClassExpr, 36);
assert_size!(ArchivedCondExpr, 20);
assert_size!(ArchivedExpr, 64);
assert_size!(ArchivedExprOrSpread, 16);
assert_size!(ArchivedFnExpr, 32);
assert_size!(ArchivedFnExpr, 36);
assert_size!(ArchivedImport, 12);
assert_size!(ArchivedMemberExpr, 32);
assert_size!(ArchivedMemberProp, 20);
Expand Down Expand Up @@ -578,12 +578,12 @@ mod rkyv_layout_assert {

// Function types
assert_size!(ArchivedFunction, 72);
assert_size!(ArchivedParam, 52);
assert_size!(ArchivedParamOrTsParamProp, 60);
assert_size!(ArchivedParam, 56);
assert_size!(ArchivedParamOrTsParamProp, 64);

// Identifier types
assert_size!(ArchivedBindingIdent, 32);
assert_size!(ArchivedIdent, 24);
assert_size!(ArchivedBindingIdent, 36);
assert_size!(ArchivedIdent, 28);
assert_size!(ArchivedIdentName, 16);
assert_size!(ArchivedPrivateName, 16);

Expand All @@ -592,19 +592,19 @@ mod rkyv_layout_assert {
assert_size!(ArchivedJSXAttrName, 44);
assert_size!(ArchivedJSXAttrOrSpread, 120);
assert_size!(ArchivedJSXAttrValue, 48);
assert_size!(ArchivedJSXClosingElement, 64);
assert_size!(ArchivedJSXClosingElement, 68);
assert_size!(ArchivedJSXClosingFragment, 8);
assert_size!(ArchivedJSXElement, 168);
assert_size!(ArchivedJSXElement, 176);
assert_size!(ArchivedJSXElementChild, 36);
assert_size!(ArchivedJSXElementName, 56);
assert_size!(ArchivedJSXElementName, 60);
assert_size!(ArchivedJSXEmptyExpr, 8);
assert_size!(ArchivedJSXExpr, 12);
assert_size!(ArchivedJSXExprContainer, 20);
assert_size!(ArchivedJSXFragment, 32);
assert_size!(ArchivedJSXMemberExpr, 52);
assert_size!(ArchivedJSXMemberExpr, 56);
assert_size!(ArchivedJSXNamespacedName, 40);
assert_size!(ArchivedJSXObject, 28);
assert_size!(ArchivedJSXOpeningElement, 84);
assert_size!(ArchivedJSXObject, 32);
assert_size!(ArchivedJSXOpeningElement, 88);
assert_size!(ArchivedJSXOpeningFragment, 8);
assert_size!(ArchivedJSXSpreadChild, 12);
assert_size!(ArchivedJSXText, 24);
Expand All @@ -619,21 +619,21 @@ mod rkyv_layout_assert {
assert_size!(ArchivedStr, 28);

// Module declaration types
assert_size!(ArchivedDefaultDecl, 36);
assert_size!(ArchivedDefaultDecl, 40);
assert_size!(ArchivedExportAll, 24);
assert_size!(ArchivedExportDecl, 44);
assert_size!(ArchivedExportDefaultDecl, 44);
assert_size!(ArchivedExportDecl, 48);
assert_size!(ArchivedExportDefaultDecl, 48);
assert_size!(ArchivedExportDefaultExpr, 12);
assert_size!(ArchivedExportDefaultSpecifier, 24);
assert_size!(ArchivedExportDefaultSpecifier, 28);
assert_size!(ArchivedExportNamedSpecifier, 80);
assert_size!(ArchivedExportNamespaceSpecifier, 40);
assert_size!(ArchivedExportSpecifier, 84);
assert_size!(ArchivedImportDecl, 36);
assert_size!(ArchivedImportDefaultSpecifier, 32);
assert_size!(ArchivedImportNamedSpecifier, 72);
assert_size!(ArchivedImportSpecifier, 76);
assert_size!(ArchivedImportStarAsSpecifier, 32);
assert_size!(ArchivedModuleDecl, 48);
assert_size!(ArchivedImportDefaultSpecifier, 36);
assert_size!(ArchivedImportNamedSpecifier, 76);
assert_size!(ArchivedImportSpecifier, 80);
assert_size!(ArchivedImportStarAsSpecifier, 36);
assert_size!(ArchivedModuleDecl, 52);
assert_size!(ArchivedModuleExportName, 32);
assert_size!(ArchivedNamedExport, 36);

Expand All @@ -646,15 +646,15 @@ mod rkyv_layout_assert {
// Pattern types
assert_size!(ArchivedArrayPat, 28);
assert_size!(ArchivedAssignPat, 16);
assert_size!(ArchivedAssignPatProp, 48);
assert_size!(ArchivedAssignPatProp, 52);
assert_size!(ArchivedKeyValuePatProp, 48);
assert_size!(ArchivedObjectPat, 28);
assert_size!(ArchivedObjectPatProp, 56);
assert_size!(ArchivedPat, 36);
assert_size!(ArchivedPat, 40);
assert_size!(ArchivedRestPat, 28);

// Property types
assert_size!(ArchivedAssignProp, 36);
assert_size!(ArchivedAssignProp, 40);
assert_size!(ArchivedComputedPropName, 12);
assert_size!(ArchivedGetterProp, 80);
assert_size!(ArchivedKeyValueProp, 48);
Expand All @@ -665,9 +665,9 @@ mod rkyv_layout_assert {

// Statement types
assert_size!(ArchivedBlockStmt, 20);
assert_size!(ArchivedBreakStmt, 36);
assert_size!(ArchivedCatchClause, 68);
assert_size!(ArchivedContinueStmt, 36);
assert_size!(ArchivedBreakStmt, 40);
assert_size!(ArchivedCatchClause, 72);
assert_size!(ArchivedContinueStmt, 40);
assert_size!(ArchivedDebuggerStmt, 8);
assert_size!(ArchivedDoWhileStmt, 16);
assert_size!(ArchivedEmptyStmt, 8);
Expand All @@ -677,13 +677,13 @@ mod rkyv_layout_assert {
assert_size!(ArchivedForOfStmt, 28);
assert_size!(ArchivedForStmt, 40);
assert_size!(ArchivedIfStmt, 24);
assert_size!(ArchivedLabeledStmt, 36);
assert_size!(ArchivedLabeledStmt, 40);
assert_size!(ArchivedReturnStmt, 16);
assert_size!(ArchivedStmt, 44);
assert_size!(ArchivedSwitchCase, 24);
assert_size!(ArchivedSwitchStmt, 20);
assert_size!(ArchivedThrowStmt, 12);
assert_size!(ArchivedTryStmt, 124);
assert_size!(ArchivedTryStmt, 128);
assert_size!(ArchivedVarDeclOrExpr, 8);
assert_size!(ArchivedWhileStmt, 16);
assert_size!(ArchivedWithStmt, 16);
Expand All @@ -698,69 +698,69 @@ mod rkyv_layout_assert {
assert_size!(ArchivedTsConstAssertion, 12);
assert_size!(ArchivedTsConstructSignatureDecl, 32);
assert_size!(ArchivedTsConstructorType, 32);
assert_size!(ArchivedTsEntityName, 28);
assert_size!(ArchivedTsEnumDecl, 44);
assert_size!(ArchivedTsEntityName, 32);
assert_size!(ArchivedTsEnumDecl, 48);
assert_size!(ArchivedTsEnumMember, 48);
assert_size!(ArchivedTsEnumMemberId, 32);
assert_size!(ArchivedTsExportAssignment, 12);
assert_size!(ArchivedTsExprWithTypeArgs, 20);
assert_size!(ArchivedTsExternalModuleRef, 36);
assert_size!(ArchivedTsFnOrConstructorType, 36);
assert_size!(ArchivedTsFnParam, 36);
assert_size!(ArchivedTsFnParam, 40);
assert_size!(ArchivedTsFnType, 28);
assert_size!(ArchivedTsGetterSignature, 24);
assert_size!(ArchivedTsImportEqualsDecl, 76);
assert_size!(ArchivedTsImportType, 92);
assert_size!(ArchivedTsImportEqualsDecl, 80);
assert_size!(ArchivedTsImportType, 96);
assert_size!(ArchivedTsIndexSignature, 28);
assert_size!(ArchivedTsIndexedAccessType, 20);
assert_size!(ArchivedTsInferType, 60);
assert_size!(ArchivedTsInferType, 64);
assert_size!(ArchivedTsInstantiation, 16);
assert_size!(ArchivedTsInterfaceBody, 16);
assert_size!(ArchivedTsInterfaceDecl, 68);
assert_size!(ArchivedTsInterfaceDecl, 72);
assert_size!(ArchivedTsIntersectionType, 16);
assert_size!(ArchivedTsKeywordType, 12);
assert_size!(ArchivedTsKeywordTypeKind, 1);
assert_size!(ArchivedTsLit, 40);
assert_size!(ArchivedTsLitType, 48);
assert_size!(ArchivedTsMappedType, 84);
assert_size!(ArchivedTsMappedType, 88);
assert_size!(ArchivedTsMethodSignature, 40);
assert_size!(ArchivedTsModuleBlock, 16);
assert_size!(ArchivedTsModuleDecl, 92);
assert_size!(ArchivedTsModuleDecl, 96);
assert_size!(ArchivedTsModuleName, 32);
assert_size!(ArchivedTsModuleRef, 40);
assert_size!(ArchivedTsNamespaceBody, 44);
assert_size!(ArchivedTsNamespaceDecl, 40);
assert_size!(ArchivedTsNamespaceExportDecl, 32);
assert_size!(ArchivedTsNamespaceBody, 48);
assert_size!(ArchivedTsNamespaceDecl, 44);
assert_size!(ArchivedTsNamespaceExportDecl, 36);
assert_size!(ArchivedTsNonNullExpr, 12);
assert_size!(ArchivedTsOptionalType, 12);
assert_size!(ArchivedTsParamProp, 56);
assert_size!(ArchivedTsParamPropParam, 36);
assert_size!(ArchivedTsParamProp, 60);
assert_size!(ArchivedTsParamPropParam, 40);
assert_size!(ArchivedTsParenthesizedType, 12);
assert_size!(ArchivedTsPropertySignature, 28);
assert_size!(ArchivedTsQualifiedName, 52);
assert_size!(ArchivedTsQualifiedName, 56);
assert_size!(ArchivedTsRestType, 12);
assert_size!(ArchivedTsSatisfiesExpr, 16);
assert_size!(ArchivedTsSetterSignature, 52);
assert_size!(ArchivedTsSetterSignature, 56);
assert_size!(ArchivedTsThisType, 8);
assert_size!(ArchivedTsThisTypeOrIdent, 28);
assert_size!(ArchivedTsThisTypeOrIdent, 32);
assert_size!(ArchivedTsTplLitType, 24);
assert_size!(ArchivedTsTupleElement, 52);
assert_size!(ArchivedTsTupleElement, 56);
assert_size!(ArchivedTsTupleType, 16);
assert_size!(ArchivedTsType, 120);
assert_size!(ArchivedTsTypeAliasDecl, 48);
assert_size!(ArchivedTsTypeAliasDecl, 52);
assert_size!(ArchivedTsTypeAnn, 12);
assert_size!(ArchivedTsTypeAssertion, 16);
assert_size!(ArchivedTsTypeElement, 56);
assert_size!(ArchivedTsTypeElement, 60);
assert_size!(ArchivedTsTypeLit, 16);
assert_size!(ArchivedTsTypeOperator, 16);
assert_size!(ArchivedTsTypeOperatorOp, 1);
assert_size!(ArchivedTsTypeParam, 52);
assert_size!(ArchivedTsTypeParam, 56);
assert_size!(ArchivedTsTypeParamDecl, 16);
assert_size!(ArchivedTsTypeParamInstantiation, 16);
assert_size!(ArchivedTsTypePredicate, 48);
assert_size!(ArchivedTsTypeQuery, 112);
assert_size!(ArchivedTsTypeQueryExpr, 96);
assert_size!(ArchivedTsTypeRef, 44);
assert_size!(ArchivedTsTypePredicate, 52);
assert_size!(ArchivedTsTypeQuery, 116);
assert_size!(ArchivedTsTypeQueryExpr, 100);
assert_size!(ArchivedTsTypeRef, 48);
assert_size!(ArchivedTsUnionOrIntersectionType, 20);
assert_size!(ArchivedTsUnionType, 16);
}
Loading
Loading