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