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