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