X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=vendor%2Frustc-ap-rustc_ast%2Fsrc%2Flib.rs;fp=vendor%2Frustc-ap-rustc_ast%2Fsrc%2Flib.rs;h=ddf52caed088a452414802dc9470169e2e33a217;hb=f20569fa03b3b370f70f0df777c134d7f38d09e9;hp=0000000000000000000000000000000000000000;hpb=36d6ef2b3b6819c441d79135fddfee590bb92ee1;p=rustc.git diff --git a/vendor/rustc-ap-rustc_ast/src/lib.rs b/vendor/rustc-ap-rustc_ast/src/lib.rs new file mode 100644 index 0000000000..ddf52caed0 --- /dev/null +++ b/vendor/rustc-ap-rustc_ast/src/lib.rs @@ -0,0 +1,69 @@ +//! The Rust parser and macro expander. +//! +//! # 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(box_syntax)] +#![feature(box_patterns)] +#![feature(const_fn)] // For the `transmute` in `P::new` +#![feature(const_fn_transmute)] +#![feature(const_panic)] +#![feature(crate_visibility_modifier)] +#![feature(label_break_value)] +#![feature(nll)] +#![feature(or_patterns)] +#![recursion_limit = "256"] + +#[macro_use] +extern crate rustc_macros; + +#[macro_export] +macro_rules! unwrap_or { + ($opt:expr, $default:expr) => { + match $opt { + Some(x) => x, + None => $default, + } + }; +} + +pub mod util { + pub mod classify; + pub mod comments; + pub mod literal; + pub mod parser; +} + +pub mod ast; +pub mod attr; +pub mod crate_disambiguator; +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::*; + +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 librustc_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) + } +}