@@ -324,17 +324,10 @@ mod test {
324324 use abi;
325325 use parse:: parser:: Parser ;
326326 use parse:: token:: { str_to_ident} ;
327- use util:: parser_testing:: { string_to_tts_and_sess , string_to_parser} ;
327+ use util:: parser_testing:: { string_to_tts , string_to_parser} ;
328328 use util:: parser_testing:: { string_to_expr, string_to_item} ;
329329 use util:: parser_testing:: string_to_stmt;
330330
331- // map a string to tts, return the tt without its parsesess
332- fn string_to_tts_only ( source_str : @str ) -> ~[ ast:: token_tree ] {
333- let ( tts, _ps) = string_to_tts_and_sess ( source_str) ;
334- tts
335- }
336-
337-
338331 #[ cfg( test) ] fn to_json_str < E : Encodable < extra:: json:: Encoder > > ( val : @E ) -> ~str {
339332 do io:: with_str_writer |writer| {
340333 let mut encoder = extra:: json:: Encoder ( writer) ;
@@ -395,8 +388,53 @@ mod test {
395388 string_to_expr ( @":: abc:: def:: return") ;
396389 }
397390
391+ // check the token-tree-ization of macros
392+ #[ test] fn string_to_tts_macro ( ) {
393+ let tts = string_to_tts ( @"macro_rules! zip ( ( $a) =>( $a) ) ") ;
394+ match tts {
395+ [ ast:: tt_tok( _, _) ,
396+ ast:: tt_tok( _, token:: NOT ) ,
397+ ast:: tt_tok( _, _) ,
398+ ast:: tt_delim( delim_elts) ] =>
399+ match * delim_elts {
400+ [ ast:: tt_tok( _, token:: LPAREN ) ,
401+ ast:: tt_delim( first_set) ,
402+ ast:: tt_tok( _, token:: FAT_ARROW ) ,
403+ ast:: tt_delim( second_set) ,
404+ ast:: tt_tok( _, token:: RPAREN ) ] =>
405+ match * first_set {
406+ [ ast:: tt_tok( _, token:: LPAREN ) ,
407+ ast:: tt_tok( _, token:: DOLLAR ) ,
408+ ast:: tt_tok( _, _) ,
409+ ast:: tt_tok( _, token:: RPAREN ) ] =>
410+ match * second_set {
411+ [ ast:: tt_tok( _, token:: LPAREN ) ,
412+ ast:: tt_tok( _, token:: DOLLAR ) ,
413+ ast:: tt_tok( _, _) ,
414+ ast:: tt_tok( _, token:: RPAREN ) ] =>
415+ assert_eq ! ( "correct" , "correct" ) ,
416+ _ => assert_eq ! ( "wrong 4" , "correct" )
417+ } ,
418+ _ => {
419+ error ! ( "failing value 3: %?" , first_set) ;
420+ assert_eq ! ( "wrong 3" , "correct" )
421+ }
422+ } ,
423+ _ => {
424+ error ! ( "failing value 2: %?" , delim_elts) ;
425+ assert_eq ! ( "wrong" , "correct" ) ;
426+ }
427+
428+ } ,
429+ _ => {
430+ error ! ( "failing value: %?" , tts) ;
431+ assert_eq ! ( "wrong 1" , "correct" ) ;
432+ }
433+ }
434+ }
435+
398436 #[ test] fn string_to_tts_1 ( ) {
399- let ( tts, _ps ) = string_to_tts_and_sess ( @"fn a ( b : int) { b; } ") ;
437+ let tts = string_to_tts ( @"fn a ( b : int) { b; } ") ;
400438 assert_eq ! ( to_json_str( @tts) ,
401439 ~"[ \
402440 { \
0 commit comments