test(no_crate_inject, attr(deny(warnings))),
test(attr(allow(dead_code, deprecated, unused_variables, unused_mut))))]
+#![cfg_attr(not(stage0), feature(nll))]
#![feature(rustc_private)]
#![feature(staged_api)]
#![feature(lang_items)]
}
}
+ #[stable(feature = "token_stream_extend", since = "1.30.0")]
+ impl Extend<TokenTree> for TokenStream {
+ fn extend<I: IntoIterator<Item = TokenTree>>(&mut self, trees: I) {
+ self.extend(trees.into_iter().map(TokenStream::from));
+ }
+ }
+
+ #[stable(feature = "token_stream_extend", since = "1.30.0")]
+ impl Extend<TokenStream> for TokenStream {
+ fn extend<I: IntoIterator<Item = TokenStream>>(&mut self, streams: I) {
+ self.0.extend(streams.into_iter().map(|stream| stream.0));
+ }
+ }
+
/// Public implementation details for the `TokenStream` type, such as iterators.
#[stable(feature = "proc_macro_lib2", since = "1.29.0")]
pub mod token_stream {
#![feature(crate_visibility_modifier)]
#![feature(macro_at_most_once_rep)]
+#![cfg_attr(not(stage0), feature(nll))]
#![feature(rustc_attrs)]
#![feature(rustc_diagnostic_macros)]
#![feature(slice_sort_by_cached_key)]
#![feature(str_escape)]
#![feature(unicode_internals)]
+#![feature(catch_expr)]
#![recursion_limit="256"]
use rustc_data_structures::sync::Lock;
use rustc_data_structures::bitvec::BitVector;
+pub use rustc_data_structures::small_vec::OneVector;
+pub use rustc_data_structures::thin_vec::ThinVec;
use ast::AttrId;
// A variant of 'try!' that panics on an Err. This is used as a crutch on the
pub mod parser;
#[cfg(test)]
pub mod parser_testing;
- pub mod small_vector;
pub mod move_map;
- mod thin_vec;
- pub use self::thin_vec::ThinVec;
-
mod rc_slice;
pub use self::rc_slice::RcSlice;
+
+ mod rc_vec;
+ pub use self::rc_vec::RcVec;
}
pub mod json;