Skip to main content

rustc_ast/
lib.rs

1//! The Rust Abstract Syntax Tree (AST).
2//!
3//! # Note
4//!
5//! This API is completely unstable and subject to change.
6
7// tidy-alphabetical-start
8#![doc(test(attr(deny(warnings), allow(internal_features))))]
9#![feature(associated_type_defaults)]
10#![feature(box_patterns)]
11#![feature(if_let_guard)]
12#![feature(iter_order_by)]
13#![feature(macro_metavar_expr)]
14#![recursion_limit = "256"]
15// tidy-alphabetical-end
16
17pub mod util {
18    pub mod case;
19    pub mod classify;
20    pub mod comments;
21    pub mod literal;
22    pub mod parser;
23    pub mod unicode;
24}
25
26pub mod ast;
27pub mod ast_traits;
28pub mod attr;
29pub mod entry;
30pub mod expand;
31pub mod format;
32pub mod mut_visit;
33pub mod node_id;
34pub mod token;
35pub mod tokenstream;
36pub mod visit;
37
38pub use self::ast::*;
39pub use self::ast_traits::{AstNodeWrapper, HasAttrs, HasNodeId, HasTokens};
40
41/// Requirements for a `StableHashingContext` to be used in this crate.
42/// This is a hack to allow using the `HashStable_Generic` derive macro
43/// instead of implementing everything in `rustc_middle`.
44pub trait HashStableContext: rustc_span::HashStableContext {}