#[cfg(feature = "serialize")]
mod serialize;
pub mod ast;
mod ast_builder_impl;
mod ast_impl;
mod ast_kind_impl;
pub mod precedence;
mod trivia;
mod generated {
pub mod ast_kind;
#[cfg(debug_assertions)]
mod assert_layouts;
mod ast_builder;
mod derive_clone_in;
mod derive_content_eq;
mod derive_dummy;
#[cfg(feature = "serialize")]
mod derive_estree;
mod derive_get_address;
mod derive_get_span;
mod derive_get_span_mut;
mod derive_take_in;
mod derive_unstable_address;
mod get_id;
}
pub use generated::ast_kind;
pub use crate::{
ast::comment::{Comment, CommentContent, CommentKind, CommentPosition},
ast_builder_impl::{AstBuilder, NONE},
ast_kind::{AstKind, AstType},
ast_kind_impl::{MemberExpressionKind, ModuleDeclarationKind},
trivia::{
CommentsRange, comments_range, get_comment_at, has_comments_between, is_inside_comment,
},
};
#[cfg(target_pointer_width = "64")]
#[test]
fn size_asserts() {
use crate::ast;
assert_eq!(size_of::<ast::Statement>(), 16);
assert_eq!(size_of::<ast::Expression>(), 16);
assert_eq!(size_of::<ast::Declaration>(), 16);
assert_eq!(size_of::<ast::BindingPattern>(), 16);
assert_eq!(size_of::<ast::ModuleDeclaration>(), 16);
assert_eq!(size_of::<ast::ClassElement>(), 16);
assert_eq!(size_of::<ast::ExportDefaultDeclarationKind>(), 16);
assert_eq!(size_of::<ast::AssignmentTargetPattern>(), 16);
assert_eq!(size_of::<ast::AssignmentTargetMaybeDefault>(), 16);
assert_eq!(size_of::<ast::AssignmentTargetProperty>(), 16);
assert_eq!(size_of::<ast::TSLiteral>(), 16);
assert_eq!(size_of::<ast::TSType>(), 16);
}
#[test]
fn lifetime_variance() {
use crate::ast;
fn _assert_program_variant_lifetime<'a: 'b, 'b>(program: ast::Program<'a>) -> ast::Program<'b> {
program
}
}