Vendor things
This commit is contained in:
parent
5deceec006
commit
977e3c17e5
19434 changed files with 10682014 additions and 0 deletions
131
third-party/vendor/swc_ecma_ast/src/module.rs
vendored
Normal file
131
third-party/vendor/swc_ecma_ast/src/module.rs
vendored
Normal file
|
|
@ -0,0 +1,131 @@
|
|||
use is_macro::Is;
|
||||
use swc_atoms::Atom;
|
||||
use swc_common::{ast_node, util::take::Take, EqIgnoreSpan, Span, DUMMY_SP};
|
||||
|
||||
use crate::{module_decl::ModuleDecl, stmt::Stmt};
|
||||
|
||||
#[ast_node]
|
||||
#[derive(Eq, Hash, Is, EqIgnoreSpan)]
|
||||
#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))]
|
||||
pub enum Program {
|
||||
#[tag("Module")]
|
||||
Module(Module),
|
||||
#[tag("Script")]
|
||||
Script(Script),
|
||||
// Reserved type for the testing purpose only. Prod codes does not utilize
|
||||
// this at all and user should not try to attempt to use this as well.
|
||||
// TODO: reenable once experimental_metadata breaking change is merged
|
||||
// #[tag("ReservedUnused")]
|
||||
// ReservedUnused(ReservedUnused),
|
||||
}
|
||||
|
||||
#[ast_node("ReservedUnused")]
|
||||
#[derive(Eq, Hash, EqIgnoreSpan)]
|
||||
pub struct ReservedUnused {
|
||||
pub span: Span,
|
||||
pub body: Option<Vec<ModuleItem>>,
|
||||
}
|
||||
|
||||
#[cfg(feature = "arbitrary")]
|
||||
#[cfg_attr(docsrs, doc(cfg(feature = "arbitrary")))]
|
||||
impl<'a> arbitrary::Arbitrary<'a> for ReservedUnused {
|
||||
fn arbitrary(u: &mut arbitrary::Unstructured<'_>) -> arbitrary::Result<Self> {
|
||||
let span = u.arbitrary()?;
|
||||
let body = u.arbitrary()?;
|
||||
Ok(Self { span, body })
|
||||
}
|
||||
}
|
||||
|
||||
#[ast_node("Module")]
|
||||
#[derive(Eq, Hash, EqIgnoreSpan)]
|
||||
pub struct Module {
|
||||
pub span: Span,
|
||||
|
||||
pub body: Vec<ModuleItem>,
|
||||
|
||||
#[cfg_attr(feature = "serde-impl", serde(default, rename = "interpreter"))]
|
||||
pub shebang: Option<Atom>,
|
||||
}
|
||||
|
||||
#[cfg(feature = "arbitrary")]
|
||||
#[cfg_attr(docsrs, doc(cfg(feature = "arbitrary")))]
|
||||
impl<'a> arbitrary::Arbitrary<'a> for Module {
|
||||
fn arbitrary(u: &mut arbitrary::Unstructured<'_>) -> arbitrary::Result<Self> {
|
||||
let span = u.arbitrary()?;
|
||||
let body = u.arbitrary()?;
|
||||
Ok(Self {
|
||||
span,
|
||||
body,
|
||||
shebang: None,
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
impl Take for Module {
|
||||
fn dummy() -> Self {
|
||||
Module {
|
||||
span: DUMMY_SP,
|
||||
body: Take::dummy(),
|
||||
shebang: Take::dummy(),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[ast_node("Script")]
|
||||
#[derive(Eq, Hash, EqIgnoreSpan)]
|
||||
pub struct Script {
|
||||
pub span: Span,
|
||||
|
||||
pub body: Vec<Stmt>,
|
||||
|
||||
#[cfg_attr(feature = "serde-impl", serde(default, rename = "interpreter"))]
|
||||
pub shebang: Option<Atom>,
|
||||
}
|
||||
|
||||
#[cfg(feature = "arbitrary")]
|
||||
#[cfg_attr(docsrs, doc(cfg(feature = "arbitrary")))]
|
||||
impl<'a> arbitrary::Arbitrary<'a> for Script {
|
||||
fn arbitrary(u: &mut arbitrary::Unstructured<'_>) -> arbitrary::Result<Self> {
|
||||
let span = u.arbitrary()?;
|
||||
let body = u.arbitrary()?;
|
||||
Ok(Self {
|
||||
span,
|
||||
body,
|
||||
shebang: None,
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
impl Take for Script {
|
||||
fn dummy() -> Self {
|
||||
Script {
|
||||
span: DUMMY_SP,
|
||||
body: Take::dummy(),
|
||||
shebang: Take::dummy(),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[ast_node]
|
||||
#[derive(Eq, Hash, Is, EqIgnoreSpan)]
|
||||
#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))]
|
||||
pub enum ModuleItem {
|
||||
#[tag("ImportDeclaration")]
|
||||
#[tag("ExportDeclaration")]
|
||||
#[tag("ExportNamedDeclaration")]
|
||||
#[tag("ExportDefaultDeclaration")]
|
||||
#[tag("ExportDefaultExpression")]
|
||||
#[tag("ExportAllDeclaration")]
|
||||
#[tag("TsImportEqualsDeclaration")]
|
||||
#[tag("TsExportAssignment")]
|
||||
#[tag("TsNamespaceExportDeclaration")]
|
||||
ModuleDecl(ModuleDecl),
|
||||
#[tag("*")]
|
||||
Stmt(Stmt),
|
||||
}
|
||||
|
||||
impl Take for ModuleItem {
|
||||
fn dummy() -> Self {
|
||||
ModuleItem::Stmt(Take::dummy())
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue