From 698f8c2f01ea549d77d7dc3338a12e04c11057b9 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Wed, 17 Apr 2024 14:02:58 +0200 Subject: Adding upstream version 1.64.0+dfsg1. Signed-off-by: Daniel Baumann --- compiler/rustc_ast/src/lib.rs | 63 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 compiler/rustc_ast/src/lib.rs (limited to 'compiler/rustc_ast/src/lib.rs') diff --git a/compiler/rustc_ast/src/lib.rs b/compiler/rustc_ast/src/lib.rs new file mode 100644 index 000000000..4b94ec0d6 --- /dev/null +++ b/compiler/rustc_ast/src/lib.rs @@ -0,0 +1,63 @@ +//! The Rust Abstract Syntax Tree (AST). +//! +//! # Note +//! +//! This API is completely unstable and subject to change. + +#![doc( + html_root_url = "https://doc.rust-lang.org/nightly/nightly-rustc/", + test(attr(deny(warnings))) +)] +#![feature(associated_type_bounds)] +#![feature(box_patterns)] +#![feature(const_default_impls)] +#![feature(const_trait_impl)] +#![feature(if_let_guard)] +#![feature(label_break_value)] +#![feature(let_chains)] +#![feature(min_specialization)] +#![feature(negative_impls)] +#![feature(slice_internals)] +#![feature(stmt_expr_attributes)] +#![recursion_limit = "256"] + +#[macro_use] +extern crate rustc_macros; + +pub mod util { + pub mod classify; + pub mod comments; + pub mod literal; + pub mod parser; + pub mod unicode; +} + +pub mod ast; +pub mod ast_traits; +pub mod attr; +pub mod entry; +pub mod expand; +pub mod mut_visit; +pub mod node_id; +pub mod ptr; +pub mod token; +pub mod tokenstream; +pub mod visit; + +pub use self::ast::*; +pub use self::ast_traits::{AstDeref, AstNodeWrapper, HasAttrs, HasNodeId, HasSpan, HasTokens}; + +use rustc_data_structures::stable_hasher::{HashStable, StableHasher}; + +/// Requirements for a `StableHashingContext` to be used in this crate. +/// This is a hack to allow using the `HashStable_Generic` derive macro +/// instead of implementing everything in `rustc_middle`. +pub trait HashStableContext: rustc_span::HashStableContext { + fn hash_attr(&mut self, _: &ast::Attribute, hasher: &mut StableHasher); +} + +impl HashStable for ast::Attribute { + fn hash_stable(&self, hcx: &mut AstCtx, hasher: &mut StableHasher) { + hcx.hash_attr(self, hasher) + } +} -- cgit v1.2.3