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#![cfg_attr(bootstrap, feature(array_windows))]
9#![deny(clippy::manual_let_else)]
10#![doc(test(attr(deny(warnings), allow(internal_features))))]
11#![feature(associated_type_defaults)]
12#![feature(box_patterns)]
13#![feature(if_let_guard)]
14#![feature(iter_order_by)]
15#![feature(macro_metavar_expr)]
16#![recursion_limit = "256"]
17// tidy-alphabetical-end
18
19pub mod util {
20    pub mod case;
21    pub mod classify;
22    pub mod comments;
23    pub mod literal;
24    pub mod parser;
25    pub mod unicode;
26}
27
28pub mod ast;
29pub mod ast_traits;
30pub mod attr;
31pub mod entry;
32pub mod expand;
33pub mod format;
34pub mod mut_visit;
35pub mod node_id;
36pub mod token;
37pub mod tokenstream;
38pub mod visit;
39
40pub use self::ast::*;
41pub use self::ast_traits::{AstNodeWrapper, HasAttrs, HasNodeId, HasTokens};
42
43/// Requirements for a `StableHashingContext` to be used in this crate.
44/// This is a hack to allow using the `HashStable_Generic` derive macro
45/// instead of implementing everything in `rustc_middle`.
46pub trait HashStableContext: rustc_span::HashStableContext {}