mod accessor;
mod decl;
mod expr;
mod generics;
mod indexer;
mod operator;
mod pass;
mod patch;
mod pattern;
mod stmt;
mod walk;
pub use accessor::{accessor_scope, keeps_value, stores_value, value_param};
pub use decl::{
Accessor, Attribute, Chain, Ctor, Decl, DeclKind, Field, Method, MethodBody, Modifier, Param,
Prop, TypeHeader, Variant, VersionCond,
};
pub use expr::{
Arg, Arm, ArrayItem, BinOp, Element, Expr, ExprKind, LambdaBody, LambdaParam, StrSeg, UnOp,
};
pub use generics::{Constraint, Generic, Variance, Where};
pub use indexer::{Indexer, accessor_name};
pub use operator::{Operator, OperatorKind};
pub use pass::Pass;
pub use patch::{Callee, Local, Patch, PatchItem, Point, Selector, Target};
pub use pattern::{Pattern, Type, TypeKind};
pub use stmt::{Binding, Block, Goto, Section, Stmt, local_functions};
use crate::source::token::Span;
pub const IT: &str = "it";
#[derive(Debug, Clone, PartialEq)]
pub struct Name {
pub text: String,
pub span: Span,
}
#[derive(Debug, Clone, PartialEq, Default)]
pub struct File {
pub decls: Vec<Decl>,
}