@@ -598,7 +598,6 @@ pub fn integer_lit(s: &str, suffix: Option<Symbol>, sd: &Handler, sp: Span) -> a
598
598
#[ cfg( test) ]
599
599
mod tests {
600
600
use super :: * ;
601
- use std:: rc:: Rc ;
602
601
use syntax_pos:: { self , Span , BytePos , Pos , NO_EXPANSION } ;
603
602
use codemap:: Spanned ;
604
603
use ast:: { self , Ident , PatKind } ;
@@ -609,7 +608,7 @@ mod tests {
609
608
use print:: pprust:: item_to_string;
610
609
use ptr:: P ;
611
610
use tokenstream:: { self , TokenTree } ;
612
- use util:: parser_testing:: { string_to_tts , string_to_parser} ;
611
+ use util:: parser_testing:: { string_to_stream , string_to_parser} ;
613
612
use util:: parser_testing:: { string_to_expr, string_to_item, string_to_stmt} ;
614
613
use util:: ThinVec ;
615
614
@@ -654,7 +653,8 @@ mod tests {
654
653
// check the token-tree-ization of macros
655
654
#[ test]
656
655
fn string_to_tts_macro ( ) {
657
- let tts = string_to_tts ( "macro_rules! zip (($a)=>($a))" . to_string ( ) ) ;
656
+ let tts: Vec < _ > =
657
+ string_to_stream ( "macro_rules! zip (($a)=>($a))" . to_string ( ) ) . trees ( ) . collect ( ) ;
658
658
let tts: & [ TokenTree ] = & tts[ ..] ;
659
659
660
660
match ( tts. len ( ) , tts. get ( 0 ) , tts. get ( 1 ) , tts. get ( 2 ) , tts. get ( 3 ) ) {
@@ -667,7 +667,7 @@ mod tests {
667
667
)
668
668
if name_macro_rules. name == "macro_rules"
669
669
&& name_zip. name == "zip" => {
670
- let tts = & macro_delimed. tts [ .. ] ;
670
+ let tts = & macro_delimed. stream ( ) . trees ( ) . collect :: < Vec < _ > > ( ) ;
671
671
match ( tts. len ( ) , tts. get ( 0 ) , tts. get ( 1 ) , tts. get ( 2 ) ) {
672
672
(
673
673
3 ,
@@ -676,17 +676,17 @@ mod tests {
676
676
Some ( & TokenTree :: Delimited ( _, ref second_delimed) ) ,
677
677
)
678
678
if macro_delimed. delim == token:: Paren => {
679
- let tts = & first_delimed. tts [ .. ] ;
679
+ let tts = & first_delimed. stream ( ) . trees ( ) . collect :: < Vec < _ > > ( ) ;
680
680
match ( tts. len ( ) , tts. get ( 0 ) , tts. get ( 1 ) ) {
681
681
(
682
682
2 ,
683
683
Some ( & TokenTree :: Token ( _, token:: Dollar ) ) ,
684
684
Some ( & TokenTree :: Token ( _, token:: Ident ( ident) ) ) ,
685
685
)
686
686
if first_delimed. delim == token:: Paren && ident. name == "a" => { } ,
687
- _ => panic ! ( "value 3: {:?}" , * * first_delimed) ,
687
+ _ => panic ! ( "value 3: {:?}" , * first_delimed) ,
688
688
}
689
- let tts = & second_delimed. tts [ .. ] ;
689
+ let tts = & second_delimed. stream ( ) . trees ( ) . collect :: < Vec < _ > > ( ) ;
690
690
match ( tts. len ( ) , tts. get ( 0 ) , tts. get ( 1 ) ) {
691
691
(
692
692
2 ,
@@ -695,10 +695,10 @@ mod tests {
695
695
)
696
696
if second_delimed. delim == token:: Paren
697
697
&& ident. name == "a" => { } ,
698
- _ => panic ! ( "value 4: {:?}" , * * second_delimed) ,
698
+ _ => panic ! ( "value 4: {:?}" , * second_delimed) ,
699
699
}
700
700
} ,
701
- _ => panic ! ( "value 2: {:?}" , * * macro_delimed) ,
701
+ _ => panic ! ( "value 2: {:?}" , * macro_delimed) ,
702
702
}
703
703
} ,
704
704
_ => panic ! ( "value: {:?}" , tts) ,
@@ -707,31 +707,31 @@ mod tests {
707
707
708
708
#[ test]
709
709
fn string_to_tts_1 ( ) {
710
- let tts = string_to_tts ( "fn a (b : i32) { b; }" . to_string ( ) ) ;
710
+ let tts = string_to_stream ( "fn a (b : i32) { b; }" . to_string ( ) ) ;
711
711
712
- let expected = vec ! [
713
- TokenTree :: Token ( sp( 0 , 2 ) , token:: Ident ( Ident :: from_str( "fn" ) ) ) ,
714
- TokenTree :: Token ( sp( 3 , 4 ) , token:: Ident ( Ident :: from_str( "a" ) ) ) ,
712
+ let expected = TokenStream :: concat ( vec ! [
713
+ TokenTree :: Token ( sp( 0 , 2 ) , token:: Ident ( Ident :: from_str( "fn" ) ) ) . into ( ) ,
714
+ TokenTree :: Token ( sp( 3 , 4 ) , token:: Ident ( Ident :: from_str( "a" ) ) ) . into ( ) ,
715
715
TokenTree :: Delimited (
716
716
sp( 5 , 14 ) ,
717
- Rc :: new ( tokenstream:: Delimited {
717
+ tokenstream:: Delimited {
718
718
delim: token:: DelimToken :: Paren ,
719
- tts: vec![
720
- TokenTree :: Token ( sp( 6 , 7 ) , token:: Ident ( Ident :: from_str( "b" ) ) ) ,
721
- TokenTree :: Token ( sp( 8 , 9 ) , token:: Colon ) ,
722
- TokenTree :: Token ( sp( 10 , 13 ) , token:: Ident ( Ident :: from_str( "i32" ) ) ) ,
723
- ] ,
724
- } ) ) ,
719
+ tts: TokenStream :: concat ( vec![
720
+ TokenTree :: Token ( sp( 6 , 7 ) , token:: Ident ( Ident :: from_str( "b" ) ) ) . into ( ) ,
721
+ TokenTree :: Token ( sp( 8 , 9 ) , token:: Colon ) . into ( ) ,
722
+ TokenTree :: Token ( sp( 10 , 13 ) , token:: Ident ( Ident :: from_str( "i32" ) ) ) . into ( ) ,
723
+ ] ) . into ( ) ,
724
+ } ) . into ( ) ,
725
725
TokenTree :: Delimited (
726
726
sp( 15 , 21 ) ,
727
- Rc :: new ( tokenstream:: Delimited {
727
+ tokenstream:: Delimited {
728
728
delim: token:: DelimToken :: Brace ,
729
- tts: vec![
730
- TokenTree :: Token ( sp( 17 , 18 ) , token:: Ident ( Ident :: from_str( "b" ) ) ) ,
731
- TokenTree :: Token ( sp( 18 , 19 ) , token:: Semi ) ,
732
- ] ,
733
- } ) )
734
- ] ;
729
+ tts: TokenStream :: concat ( vec![
730
+ TokenTree :: Token ( sp( 17 , 18 ) , token:: Ident ( Ident :: from_str( "b" ) ) ) . into ( ) ,
731
+ TokenTree :: Token ( sp( 18 , 19 ) , token:: Semi ) . into ( ) ,
732
+ ] ) . into ( ) ,
733
+ } ) . into ( )
734
+ ] ) ;
735
735
736
736
assert_eq ! ( tts, expected) ;
737
737
}
@@ -974,8 +974,8 @@ mod tests {
974
974
let expr = parse:: parse_expr_from_source_str ( "foo" . to_string ( ) ,
975
975
"foo!( fn main() { body } )" . to_string ( ) , & sess) . unwrap ( ) ;
976
976
977
- let tts = match expr. node {
978
- ast:: ExprKind :: Mac ( ref mac) => mac. node . tts . clone ( ) ,
977
+ let tts: Vec < _ > = match expr. node {
978
+ ast:: ExprKind :: Mac ( ref mac) => mac. node . stream ( ) . trees ( ) . collect ( ) ,
979
979
_ => panic ! ( "not a macro" ) ,
980
980
} ;
981
981
0 commit comments