@@ -424,48 +424,38 @@ mod tests {
424424 string_to_stream ( "macro_rules! zip (($a)=>($a))" . to_string ( ) ) . trees ( ) . collect ( ) ;
425425 let tts: & [ TokenTree ] = & tts[ ..] ;
426426
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" => {
438435 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 => {
447443 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" => { } ,
457450 _ => panic ! ( "value 3: {:?} {:?}" , first_delim, first_tts) ,
458451 }
459452 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" => { } ,
469459 _ => panic ! ( "value 4: {:?} {:?}" , second_delim, second_tts) ,
470460 }
471461 } ,
0 commit comments