1 #![feature(cow_is_borrowed)]
2 #![feature(crate_visibility_modifier)]
3 #![feature(decl_macro)]
4 #![feature(proc_macro_diagnostic)]
5 #![feature(proc_macro_internals)]
6 #![feature(proc_macro_span)]
8 extern crate proc_macro as pm;
10 // A variant of 'try!' that panics on an Err. This is used as a crutch on the
11 // way towards a non-panic!-prone parser. It should be used for fatal parsing
12 // errors; eventually we plan to convert all code using panictry to just use
15 macro_rules! panictry {
17 use rustc_errors::FatalError;
18 use std::result::Result::{Err, Ok};
30 mod proc_macro_server;
32 pub use mbe::macro_rules::compile_declarative_macro;
33 crate use rustc_span::hygiene;
37 pub use rustc_parse::config;
42 // HACK(Centril, #64197): These shouldn't really be here.
43 // Rather, they should be with their respective modules which are defined in other crates.
44 // However, since for now constructing a `ParseSess` sorta requires `config` from this crate,
45 // these tests will need to live here in the iterim.