1
Fork 0

put back the workarounds for #60846

based on https://github.com/rust-lang/rust/pull/61754#issuecomment-501743750 I am adding `bootstrap` to the cfg-preconditions for the two manual `unsafe impls`'s of `Send` and `Sync` for `TokenTree`.
This commit is contained in:
Felix S Klock II 2019-06-14 12:19:26 +02:00 committed by GitHub
parent bb97fe0bae
commit 0baa9258dd
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -59,6 +59,17 @@ where
TokenStream: Send + Sync,
{}
// These are safe since we ensure that they hold for all fields in the `_dummy` function.
//
// These impls are only here because the compiler takes forever to compute the Send and Sync
// bounds without them.
// FIXME: Remove these impls when the compiler can compute the bounds quickly again.
// See https://github.com/rust-lang/rust/issues/60846
#[cfg(all(bootstrap, parallel_compiler))]
unsafe impl Send for TokenTree {}
#[cfg(all(bootstrap, parallel_compiler))]
unsafe impl Sync for TokenTree {}
impl TokenTree {
/// Use this token tree as a matcher to parse given tts.
pub fn parse(cx: &base::ExtCtxt<'_>, mtch: &[quoted::TokenTree], tts: TokenStream)