@@ -324,17 +324,10 @@ mod test {
324
324
use abi;
325
325
use parse:: parser:: Parser ;
326
326
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} ;
328
328
use util:: parser_testing:: { string_to_expr, string_to_item} ;
329
329
use util:: parser_testing:: string_to_stmt;
330
330
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
-
338
331
#[ cfg( test) ] fn to_json_str < E : Encodable < extra:: json:: Encoder > > ( val : @E ) -> ~str {
339
332
do io:: with_str_writer |writer| {
340
333
let mut encoder = extra:: json:: Encoder ( writer) ;
@@ -395,8 +388,53 @@ mod test {
395
388
string_to_expr ( @":: abc:: def:: return") ;
396
389
}
397
390
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
+
398
436
#[ 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; } ") ;
400
438
assert_eq ! ( to_json_str( @tts) ,
401
439
~"[ \
402
440
{ \
0 commit comments