@@ -424,48 +424,38 @@ mod tests {
424
424
string_to_stream ( "macro_rules! zip (($a)=>($a))" . to_string ( ) ) . trees ( ) . collect ( ) ;
425
425
let tts: & [ TokenTree ] = & tts[ ..] ;
426
426
427
- match ( tts. len ( ) , tts. get ( 0 ) , tts. get ( 1 ) , tts. get ( 2 ) , tts. get ( 3 ) ) {
428
- (
429
- 4 ,
430
- Some ( & TokenTree :: Token ( Token {
431
- kind : token:: Ident ( name_macro_rules, false ) , ..
432
- } ) ) ,
433
- Some ( & TokenTree :: Token ( Token { kind : token:: Not , .. } ) ) ,
434
- Some ( & TokenTree :: Token ( Token { kind : token:: Ident ( name_zip, false ) , .. } ) ) ,
435
- Some ( & TokenTree :: Delimited ( _, macro_delim, ref macro_tts) ) ,
436
- )
437
- if name_macro_rules == sym:: macro_rules && name_zip. as_str ( ) == "zip" => {
427
+ match tts {
428
+ [
429
+ TokenTree :: Token ( Token { kind : token:: Ident ( name_macro_rules, false ) , .. } ) ,
430
+ TokenTree :: Token ( Token { kind : token:: Not , .. } ) ,
431
+ TokenTree :: Token ( Token { kind : token:: Ident ( name_zip, false ) , .. } ) ,
432
+ TokenTree :: Delimited ( _, macro_delim, macro_tts)
433
+ ]
434
+ if name_macro_rules == & sym:: macro_rules && name_zip. as_str ( ) == "zip" => {
438
435
let tts = & macro_tts. trees ( ) . collect :: < Vec < _ > > ( ) ;
439
- match ( tts. len ( ) , tts. get ( 0 ) , tts. get ( 1 ) , tts. get ( 2 ) ) {
440
- (
441
- 3 ,
442
- Some ( & TokenTree :: Delimited ( _, first_delim, ref first_tts) ) ,
443
- Some ( & TokenTree :: Token ( Token { kind : token:: FatArrow , .. } ) ) ,
444
- Some ( & TokenTree :: Delimited ( _, second_delim, ref second_tts) ) ,
445
- )
446
- if macro_delim == token:: Paren => {
436
+ match & tts[ ..] {
437
+ [
438
+ TokenTree :: Delimited ( _, first_delim, first_tts) ,
439
+ TokenTree :: Token ( Token { kind : token:: FatArrow , .. } ) ,
440
+ TokenTree :: Delimited ( _, second_delim, second_tts) ,
441
+ ]
442
+ if macro_delim == & token:: Paren => {
447
443
let tts = & first_tts. trees ( ) . collect :: < Vec < _ > > ( ) ;
448
- match ( tts. len ( ) , tts. get ( 0 ) , tts. get ( 1 ) ) {
449
- (
450
- 2 ,
451
- Some ( & TokenTree :: Token ( Token { kind : token:: Dollar , .. } ) ) ,
452
- Some ( & TokenTree :: Token ( Token {
453
- kind : token:: Ident ( name, false ) , ..
454
- } ) ) ,
455
- )
456
- if first_delim == token:: Paren && name. as_str ( ) == "a" => { } ,
444
+ match & tts[ ..] {
445
+ [
446
+ TokenTree :: Token ( Token { kind : token:: Dollar , .. } ) ,
447
+ TokenTree :: Token ( Token { kind : token:: Ident ( name, false ) , .. } ) ,
448
+ ]
449
+ if first_delim == & token:: Paren && name. as_str ( ) == "a" => { } ,
457
450
_ => panic ! ( "value 3: {:?} {:?}" , first_delim, first_tts) ,
458
451
}
459
452
let tts = & second_tts. trees ( ) . collect :: < Vec < _ > > ( ) ;
460
- match ( tts. len ( ) , tts. get ( 0 ) , tts. get ( 1 ) ) {
461
- (
462
- 2 ,
463
- Some ( & TokenTree :: Token ( Token { kind : token:: Dollar , .. } ) ) ,
464
- Some ( & TokenTree :: Token ( Token {
465
- kind : token:: Ident ( name, false ) , ..
466
- } ) ) ,
467
- )
468
- if second_delim == token:: Paren && name. as_str ( ) == "a" => { } ,
453
+ match & tts[ ..] {
454
+ [
455
+ TokenTree :: Token ( Token { kind : token:: Dollar , .. } ) ,
456
+ TokenTree :: Token ( Token { kind : token:: Ident ( name, false ) , .. } ) ,
457
+ ]
458
+ if second_delim == & token:: Paren && name. as_str ( ) == "a" => { } ,
469
459
_ => panic ! ( "value 4: {:?} {:?}" , second_delim, second_tts) ,
470
460
}
471
461
} ,
0 commit comments