about summary refs log tree commit diff
path: root/src/libproc_macro
diff options
context:
space:
mode:
authorJeffrey Seyfried <jeffrey.seyfried@gmail.com>2017-01-18 03:27:09 +0000
committerJeffrey Seyfried <jeffrey.seyfried@gmail.com>2017-01-22 21:37:38 +0000
commit2dc60b1180b2974b8966c33100e9541845e1d2e8 (patch)
tree8d5ca1abc7811361e7528325010330143daba668 /src/libproc_macro
parentec29011346ac91f2acdc0455ad6dc19a6f9614ca (diff)
downloadrust-2dc60b1180b2974b8966c33100e9541845e1d2e8.tar.gz
rust-2dc60b1180b2974b8966c33100e9541845e1d2e8.zip
Refactor `TokenStream`.
Diffstat (limited to 'src/libproc_macro')
-rw-r--r--src/libproc_macro/lib.rs11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/libproc_macro/lib.rs b/src/libproc_macro/lib.rs
index ab5962779fe..f962c888f42 100644
--- a/src/libproc_macro/lib.rs
+++ b/src/libproc_macro/lib.rs
@@ -82,14 +82,15 @@ pub mod __internal {
     use syntax::ast;
     use syntax::ptr::P;
     use syntax::parse::{self, token, ParseSess};
-    use syntax::tokenstream::TokenStream as TokenStream_;
+    use syntax::tokenstream::{TokenTree, TokenStream as TokenStream_};
 
     use super::{TokenStream, LexError};
 
     pub fn new_token_stream(item: P<ast::Item>) -> TokenStream {
-        TokenStream { inner: TokenStream_::from_tokens(vec![
-            token::Interpolated(Rc::new(token::NtItem(item)))
-        ])}
+        TokenStream {
+            inner: TokenTree::Token(item.span, token::Interpolated(Rc::new(token::NtItem(item))))
+                .into()
+        }
     }
 
     pub fn token_stream_wrap(inner: TokenStream_) -> TokenStream {
@@ -175,7 +176,7 @@ impl FromStr for TokenStream {
             let tts = try!(parse::parse_tts_from_source_str(name, src, sess)
                 .map_err(parse_to_lex_err));
 
-            Ok(__internal::token_stream_wrap(TokenStream_::from_tts(tts)))
+            Ok(__internal::token_stream_wrap(tts.into_iter().collect()))
         })
     }
 }