@@ -34,8 +34,9 @@ use syntax::codemap::Span;
3434use  syntax:: ext:: base:: * ; 
3535use  syntax:: ext:: base; 
3636use  syntax:: ext:: proc_macro_shim:: build_block_emitter; 
37- use  syntax:: parse:: token:: { self ,  Token ,  gensym_ident ,  str_to_ident } ; 
37+ use  syntax:: parse:: token:: { self ,  Token } ; 
3838use  syntax:: print:: pprust; 
39+ use  syntax:: symbol:: Symbol ; 
3940use  syntax:: tokenstream:: { TokenTree ,  TokenStream } ; 
4041
4142// ____________________________________________________________________________________________ 
@@ -124,7 +125,7 @@ fn qquote_iter<'cx>(cx: &'cx mut ExtCtxt, depth: i64, ts: TokenStream) -> (Bindi
124125                    }  // produce an error or something first 
125126                    let  exp = vec ! [ exp. unwrap( ) . to_owned( ) ] ; 
126127                    debug ! ( "RHS: {:?}" ,  exp. clone( ) ) ; 
127-                     let  new_id = gensym_ident ( "tmp" ) ; 
128+                     let  new_id = Ident :: with_empty_ctxt ( Symbol :: gensym ( "tmp" ) ) ; 
128129                    debug ! ( "RHS TS: {:?}" ,  TokenStream :: from_tts( exp. clone( ) ) ) ; 
129130                    debug ! ( "RHS TS TT: {:?}" ,  TokenStream :: from_tts( exp. clone( ) ) . to_vec( ) ) ; 
130131                    bindings. push ( ( new_id,  TokenStream :: from_tts ( exp) ) ) ; 
@@ -179,7 +180,7 @@ fn unravel_concats(tss: Vec<TokenStream>) -> TokenStream {
179180    } ; 
180181
181182    while  let  Some ( ts)  = pushes. pop ( )  { 
182-         output = build_fn_call ( str_to_ident ( "concat" ) , 
183+         output = build_fn_call ( Ident :: from_str ( "concat" ) , 
183184                               concat ( concat ( ts, 
184185                                             from_tokens ( vec ! [ Token :: Comma ] ) ) , 
185186                                      output) ) ; 
@@ -209,18 +210,19 @@ fn convert_complex_tts<'cx>(cx: &'cx mut ExtCtxt, tts: Vec<QTT>) -> (Bindings, T
209210            // FIXME handle sequence repetition tokens 
210211            QTT :: QDL ( qdl)  => { 
211212                debug ! ( "  QDL: {:?} " ,  qdl. tts) ; 
212-                 let  new_id = gensym_ident ( "qdl_tmp" ) ; 
213+                 let  new_id = Ident :: with_empty_ctxt ( Symbol :: gensym ( "qdl_tmp" ) ) ; 
213214                let  mut  cct_rec = convert_complex_tts ( cx,  qdl. tts ) ; 
214215                bindings. append ( & mut  cct_rec. 0 ) ; 
215216                bindings. push ( ( new_id,  cct_rec. 1 ) ) ; 
216217
217218                let  sep = build_delim_tok ( qdl. delim ) ; 
218219
219-                 pushes. push ( build_mod_call ( vec ! [ str_to_ident( "proc_macro_tokens" ) , 
220-                                                str_to_ident( "build" ) , 
221-                                                str_to_ident( "build_delimited" ) ] , 
222-                                           concat ( from_tokens ( vec ! [ Token :: Ident ( new_id) ] ) , 
223-                                                  concat ( lex ( "," ) ,  sep) ) ) ) ; 
220+                 pushes. push ( build_mod_call ( 
221+                     vec ! [ Ident :: from_str( "proc_macro_tokens" ) , 
222+                          Ident :: from_str( "build" ) , 
223+                          Ident :: from_str( "build_delimited" ) ] , 
224+                     concat ( from_tokens ( vec ! [ Token :: Ident ( new_id) ] ) ,  concat ( lex ( "," ) ,  sep) ) , 
225+                 ) ) ; 
224226            } 
225227            QTT :: QIdent ( t)  => { 
226228                pushes. push ( TokenStream :: from_tts ( vec ! [ t] ) ) ; 
@@ -250,13 +252,13 @@ fn unravel(binds: Bindings) -> TokenStream {
250252
251253/// Checks if the Ident is `unquote`. 
252254fn  is_unquote ( id :  Ident )  -> bool  { 
253-     let  qq = str_to_ident ( "unquote" ) ; 
255+     let  qq = Ident :: from_str ( "unquote" ) ; 
254256    id. name  == qq. name   // We disregard context; unquote is _reserved_ 
255257} 
256258
257259/// Checks if the Ident is `quote`. 
258260fn  is_qquote ( id :  Ident )  -> bool  { 
259-     let  qq = str_to_ident ( "qquote" ) ; 
261+     let  qq = Ident :: from_str ( "qquote" ) ; 
260262    id. name  == qq. name   // We disregard context; qquote is _reserved_ 
261263} 
262264
@@ -266,7 +268,8 @@ mod int_build {
266268
267269    use  syntax:: ast:: { self ,  Ident } ; 
268270    use  syntax:: codemap:: { DUMMY_SP } ; 
269-     use  syntax:: parse:: token:: { self ,  Token ,  keywords,  str_to_ident} ; 
271+     use  syntax:: parse:: token:: { self ,  Token ,  Lit } ; 
272+     use  syntax:: symbol:: keywords; 
270273    use  syntax:: tokenstream:: { TokenTree ,  TokenStream } ; 
271274
272275    // ____________________________________________________________________________________________ 
@@ -277,19 +280,19 @@ mod int_build {
277280               build_paren_delimited ( build_vec ( build_token_tt ( t) ) ) ) 
278281    } 
279282
280-     pub  fn  emit_lit ( l :  token :: Lit ,  n :  Option < ast:: Name > )  -> TokenStream  { 
283+     pub  fn  emit_lit ( l :  Lit ,  n :  Option < ast:: Name > )  -> TokenStream  { 
281284        let  suf = match  n { 
282-             Some ( n)  => format ! ( "Some(ast::Name({}))" ,  n. 0 ) , 
285+             Some ( n)  => format ! ( "Some(ast::Name({}))" ,  n. as_u32 ( ) ) , 
283286            None  => "None" . to_string ( ) , 
284287        } ; 
285288
286289        let  lit = match  l { 
287-             token :: Lit :: Byte ( n)  => format ! ( "Lit::Byte(token ::intern(\" {}\" ))" ,  n. to_string( ) ) , 
288-             token :: Lit :: Char ( n)  => format ! ( "Lit::Char(token ::intern(\" {}\" ))" ,  n. to_string( ) ) , 
289-             token :: Lit :: Integer ( n)  => format ! ( "Lit::Integer(token ::intern(\" {}\" ))" ,  n. to_string( ) ) , 
290-             token :: Lit :: Float ( n)  => format ! ( "Lit::Float(token ::intern(\" {}\" ))" ,  n. to_string( ) ) , 
291-             token :: Lit :: Str_ ( n)  => format ! ( "Lit::Str_(token ::intern(\" {}\" ))" ,  n. to_string( ) ) , 
292-             token :: Lit :: ByteStr ( n)  => format ! ( "Lit::ByteStr(token ::intern(\" {}\" ))" ,  n. to_string( ) ) , 
290+             Lit :: Byte ( n)  => format ! ( "Lit::Byte(Symbol ::intern(\" {}\" ))" ,  n. to_string( ) ) , 
291+             Lit :: Char ( n)  => format ! ( "Lit::Char(Symbol ::intern(\" {}\" ))" ,  n. to_string( ) ) , 
292+             Lit :: Float ( n)  => format ! ( "Lit::Float(Symbol ::intern(\" {}\" ))" ,  n. to_string( ) ) , 
293+             Lit :: Str_ ( n)  => format ! ( "Lit::Str_(Symbol ::intern(\" {}\" ))" ,  n. to_string( ) ) , 
294+             Lit :: Integer ( n)  => format ! ( "Lit::Integer(Symbol ::intern(\" {}\" ))" ,  n. to_string( ) ) , 
295+             Lit :: ByteStr ( n)  => format ! ( "Lit::ByteStr(Symbol ::intern(\" {}\" ))" ,  n. to_string( ) ) , 
293296            _ => panic ! ( "Unsupported literal" ) , 
294297        } ; 
295298
@@ -388,9 +391,10 @@ mod int_build {
388391            Token :: Underscore  => lex ( "_" ) , 
389392            Token :: Literal ( lit,  sfx)  => emit_lit ( lit,  sfx) , 
390393            // fix ident expansion information... somehow 
391-             Token :: Ident ( ident)  => lex ( & format ! ( "Token::Ident(str_to_ident(\" {}\" ))" ,  ident. name) ) , 
392-             Token :: Lifetime ( ident)  => lex ( & format ! ( "Token::Ident(str_to_ident(\" {}\" ))" , 
393-                                                    ident. name) ) , 
394+             Token :: Ident ( ident)  =>
395+                 lex ( & format ! ( "Token::Ident(Ident::from_str(\" {}\" ))" ,  ident. name) ) , 
396+             Token :: Lifetime ( ident)  =>
397+                 lex ( & format ! ( "Token::Ident(Ident::from_str(\" {}\" ))" ,  ident. name) ) , 
394398            _ => panic ! ( "Unhandled case!" ) , 
395399        } 
396400    } 
@@ -408,7 +412,7 @@ mod int_build {
408412
409413    /// Takes `input` and returns `vec![input]`. 
410414pub  fn  build_vec ( ts :  TokenStream )  -> TokenStream  { 
411-         build_mac_call ( str_to_ident ( "vec" ) ,  ts) 
415+         build_mac_call ( Ident :: from_str ( "vec" ) ,  ts) 
412416        // tts.clone().to_owned() 
413417    } 
414418
0 commit comments