@@ -4,7 +4,7 @@ use crate::ast::{Attribute, MacDelimiter, GenericArg};
4
4
use crate :: util:: parser:: { self , AssocOp , Fixity } ;
5
5
use crate :: attr;
6
6
use crate :: source_map:: { self , SourceMap , Spanned } ;
7
- use crate :: parse:: token:: { self , BinOpToken , Token } ;
7
+ use crate :: parse:: token:: { self , BinOpToken , Nonterminal , Token } ;
8
8
use crate :: parse:: lexer:: comments;
9
9
use crate :: parse:: { self , ParseSess } ;
10
10
use crate :: print:: pp:: { self , Breaks } ;
@@ -257,29 +257,33 @@ pub fn token_to_string(tok: &Token) -> String {
257
257
token:: Comment => "/* */" . to_string ( ) ,
258
258
token:: Shebang ( s) => format ! ( "/* shebang: {}*/" , s) ,
259
259
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) ,
283
287
}
284
288
}
285
289
0 commit comments