@@ -4,7 +4,7 @@ use crate::ast::{Attribute, MacDelimiter, GenericArg};
44use crate :: util:: parser:: { self , AssocOp , Fixity } ;
55use crate :: attr;
66use crate :: source_map:: { self , SourceMap , Spanned } ;
7- use crate :: parse:: token:: { self , BinOpToken , Token } ;
7+ use crate :: parse:: token:: { self , BinOpToken , Nonterminal , Token } ;
88use crate :: parse:: lexer:: comments;
99use crate :: parse:: { self , ParseSess } ;
1010use crate :: print:: pp:: { self , Breaks } ;
@@ -257,29 +257,33 @@ pub fn token_to_string(tok: &Token) -> String {
257257 token:: Comment => "/* */" . to_string ( ) ,
258258 token:: Shebang ( s) => format ! ( "/* shebang: {}*/" , s) ,
259259
260- token:: Interpolated ( ref nt) => match nt. 0 {
261- token:: NtExpr ( ref e) => expr_to_string ( e) ,
262- token:: NtMeta ( ref e) => meta_item_to_string ( e) ,
263- token:: NtTy ( ref e) => ty_to_string ( e) ,
264- token:: NtPath ( ref e) => path_to_string ( e) ,
265- token:: NtItem ( ref e) => item_to_string ( e) ,
266- token:: NtBlock ( ref e) => block_to_string ( e) ,
267- token:: NtStmt ( ref e) => stmt_to_string ( e) ,
268- token:: NtPat ( ref e) => pat_to_string ( e) ,
269- token:: NtIdent ( e, false ) => ident_to_string ( e) ,
270- token:: NtIdent ( e, true ) => format ! ( "r#{}" , ident_to_string( e) ) ,
271- token:: NtLifetime ( e) => ident_to_string ( e) ,
272- token:: NtLiteral ( ref e) => expr_to_string ( e) ,
273- token:: NtTT ( ref tree) => tt_to_string ( tree. clone ( ) ) ,
274- token:: NtArm ( ref e) => arm_to_string ( e) ,
275- token:: NtImplItem ( ref e) => impl_item_to_string ( e) ,
276- token:: NtTraitItem ( ref e) => trait_item_to_string ( e) ,
277- token:: NtGenerics ( ref e) => generic_params_to_string ( & e. params ) ,
278- token:: NtWhereClause ( ref e) => where_clause_to_string ( e) ,
279- token:: NtArg ( ref e) => arg_to_string ( e) ,
280- token:: NtVis ( ref e) => vis_to_string ( e) ,
281- token:: NtForeignItem ( ref e) => foreign_item_to_string ( e) ,
282- }
260+ token:: Interpolated ( ref nt) => nonterminal_to_string ( & nt. 0 ) ,
261+ }
262+ }
263+
264+ pub fn nonterminal_to_string ( nt : & Nonterminal ) -> String {
265+ match * nt {
266+ token:: NtExpr ( ref e) => expr_to_string ( e) ,
267+ token:: NtMeta ( ref e) => meta_item_to_string ( e) ,
268+ token:: NtTy ( ref e) => ty_to_string ( e) ,
269+ token:: NtPath ( ref e) => path_to_string ( e) ,
270+ token:: NtItem ( ref e) => item_to_string ( e) ,
271+ token:: NtBlock ( ref e) => block_to_string ( e) ,
272+ token:: NtStmt ( ref e) => stmt_to_string ( e) ,
273+ token:: NtPat ( ref e) => pat_to_string ( e) ,
274+ token:: NtIdent ( e, false ) => ident_to_string ( e) ,
275+ token:: NtIdent ( e, true ) => format ! ( "r#{}" , ident_to_string( e) ) ,
276+ token:: NtLifetime ( e) => ident_to_string ( e) ,
277+ token:: NtLiteral ( ref e) => expr_to_string ( e) ,
278+ token:: NtTT ( ref tree) => tt_to_string ( tree. clone ( ) ) ,
279+ token:: NtArm ( ref e) => arm_to_string ( e) ,
280+ token:: NtImplItem ( ref e) => impl_item_to_string ( e) ,
281+ token:: NtTraitItem ( ref e) => trait_item_to_string ( e) ,
282+ token:: NtGenerics ( ref e) => generic_params_to_string ( & e. params ) ,
283+ token:: NtWhereClause ( ref e) => where_clause_to_string ( e) ,
284+ token:: NtArg ( ref e) => arg_to_string ( e) ,
285+ token:: NtVis ( ref e) => vis_to_string ( e) ,
286+ token:: NtForeignItem ( ref e) => foreign_item_to_string ( e) ,
283287 }
284288}
285289
0 commit comments