diff options
| author | kennytm <kennytm@gmail.com> | 2018-04-12 03:37:12 +0800 |
|---|---|---|
| committer | kennytm <kennytm@gmail.com> | 2018-04-12 03:37:12 +0800 |
| commit | 574c0502f1eb9fa1aa562e0181d8749b026d3b09 (patch) | |
| tree | 3ab5fae8041d6c7ed4451efb0edcecf2fba67a93 /src/libproc_macro/lib.rs | |
| parent | 57b15f62e0d64f3e206b3394f7117577fe971d57 (diff) | |
| parent | d985344b933f2ccc07602fdf86fda94bc3e643cf (diff) | |
| download | rust-574c0502f1eb9fa1aa562e0181d8749b026d3b09.tar.gz rust-574c0502f1eb9fa1aa562e0181d8749b026d3b09.zip | |
Rollup merge of #49734 - alexcrichton:generalize-token-stream, r=nikomatsakis
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
Diffstat (limited to 'src/libproc_macro/lib.rs')
| -rw-r--r-- | src/libproc_macro/lib.rs | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/libproc_macro/lib.rs b/src/libproc_macro/lib.rs index dafdacfdd72..e171216523a 100644 --- a/src/libproc_macro/lib.rs +++ b/src/libproc_macro/lib.rs @@ -140,9 +140,16 @@ impl From<TokenTree> for TokenStream { #[unstable(feature = "proc_macro", issue = "38356")] impl iter::FromIterator<TokenTree> for TokenStream { 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(); - for tree in trees { - builder.push(tree.to_internal()); + for stream in streams { + builder.push(stream.0); } TokenStream(builder.build()) } |
