]> git.lizzy.rs Git - rust.git/blobdiff - src/libsyntax/lib.rs
Auto merge of #69156 - ecstatic-morse:unified-dataflow-impls2, r=eddyb
[rust.git] / src / libsyntax / lib.rs
index b0c2aa3dbb28ead5ef9079041b1e7228b6d2866a..adb96356aae7d53fec41564461d6cb918d47ec81 100644 (file)
 #![feature(label_break_value)]
 #![feature(nll)]
 #![feature(try_trait)]
-#![cfg_attr(bootstrap, feature(slice_patterns))]
 #![feature(unicode_internals)]
 #![recursion_limit = "256"]
 
-use ast::AttrId;
-use rustc_data_structures::sync::Lock;
-use rustc_index::bit_set::GrowableBitSet;
-use rustc_span::edition::{Edition, DEFAULT_EDITION};
-
 #[macro_export]
 macro_rules! unwrap_or {
     ($opt:expr, $default:expr) => {
@@ -32,62 +26,27 @@ macro_rules! unwrap_or {
     };
 }
 
-pub struct Globals {
-    used_attrs: Lock<GrowableBitSet<AttrId>>,
-    known_attrs: Lock<GrowableBitSet<AttrId>>,
-    rustc_span_globals: rustc_span::Globals,
-}
-
-impl Globals {
-    fn new(edition: Edition) -> Globals {
-        Globals {
-            // We have no idea how many attributes there will be, so just
-            // initiate the vectors with 0 bits. We'll grow them as necessary.
-            used_attrs: Lock::new(GrowableBitSet::new_empty()),
-            known_attrs: Lock::new(GrowableBitSet::new_empty()),
-            rustc_span_globals: rustc_span::Globals::new(edition),
-        }
-    }
-}
-
-pub fn with_globals<R>(edition: Edition, f: impl FnOnce() -> R) -> R {
-    let globals = Globals::new(edition);
-    GLOBALS.set(&globals, || rustc_span::GLOBALS.set(&globals.rustc_span_globals, f))
-}
-
-pub fn with_default_globals<R>(f: impl FnOnce() -> R) -> R {
-    with_globals(DEFAULT_EDITION, f)
-}
-
-scoped_tls::scoped_thread_local!(pub static GLOBALS: Globals);
-
 pub mod util {
     pub mod classify;
     pub mod comments;
     pub mod lev_distance;
     pub mod literal;
     pub mod map_in_place;
-    pub mod node_count;
     pub mod parser;
 }
 
 pub mod ast;
 pub mod attr;
+pub use attr::{with_default_globals, with_globals, GLOBALS};
 pub mod entry;
 pub mod expand;
 pub mod mut_visit;
+pub mod node_id;
 pub mod ptr;
-pub use rustc_session::parse as sess;
 pub mod token;
 pub mod tokenstream;
 pub mod visit;
 
-pub mod print {
-    mod helpers;
-    pub mod pp;
-    pub mod pprust;
-}
-
 use rustc_data_structures::stable_hasher::{HashStable, StableHasher};
 
 /// Requirements for a `StableHashingContext` to be used in this crate.