proc_macro: Generalize FromIterator
impl
While never intended to be stable we forgot that trait impls are insta-stable! This construction of `FromIterator` wasn't our first choice of how to stabilize the impl but our hands are tied at this point, so revert back to the original definition of `FromIterator` before #49597 Closes #49725
This commit is contained in:
parent
a143462783
commit
d985344b93
@ -141,9 +141,16 @@ impl From<TokenTree> for TokenStream {
|
|||||||
#[unstable(feature = "proc_macro", issue = "38356")]
|
#[unstable(feature = "proc_macro", issue = "38356")]
|
||||||
impl iter::FromIterator<TokenTree> for TokenStream {
|
impl iter::FromIterator<TokenTree> for TokenStream {
|
||||||
fn from_iter<I: IntoIterator<Item = TokenTree>>(trees: I) -> Self {
|
fn from_iter<I: IntoIterator<Item = TokenTree>>(trees: I) -> Self {
|
||||||
|
trees.into_iter().map(TokenStream::from).collect()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[unstable(feature = "proc_macro", issue = "38356")]
|
||||||
|
impl iter::FromIterator<TokenStream> for TokenStream {
|
||||||
|
fn from_iter<I: IntoIterator<Item = TokenStream>>(streams: I) -> Self {
|
||||||
let mut builder = tokenstream::TokenStreamBuilder::new();
|
let mut builder = tokenstream::TokenStreamBuilder::new();
|
||||||
for tree in trees {
|
for stream in streams {
|
||||||
builder.push(tree.to_internal());
|
builder.push(stream.0);
|
||||||
}
|
}
|
||||||
TokenStream(builder.build())
|
TokenStream(builder.build())
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user