@@ -236,7 +236,6 @@ pub fn parse_in<'a, T>(
236
236
pub fn nt_to_tokenstream (
237
237
nt : & Nonterminal ,
238
238
sess : & ParseSess ,
239
- span : Span ,
240
239
synthesize_tokens : CanSynthesizeMissingTokens ,
241
240
) -> TokenStream {
242
241
// A `Nonterminal` is often a parsed AST item. At this point we now
@@ -256,11 +255,9 @@ pub fn nt_to_tokenstream(
256
255
|tokens : Option < & LazyTokenStream > | tokens. as_ref ( ) . map ( |t| t. create_token_stream ( ) ) ;
257
256
258
257
let tokens = match * nt {
259
- Nonterminal :: NtItem ( ref item) => {
260
- prepend_attrs ( sess, & item. attrs , nt, span, item. tokens . as_ref ( ) )
261
- }
258
+ Nonterminal :: NtItem ( ref item) => prepend_attrs ( sess, & item. attrs , nt, item. tokens . as_ref ( ) ) ,
262
259
Nonterminal :: NtBlock ( ref block) => convert_tokens ( block. tokens . as_ref ( ) ) ,
263
- Nonterminal :: NtStmt ( ref stmt) => prepend_attrs ( sess, stmt. attrs ( ) , nt, span , stmt. tokens ( ) ) ,
260
+ Nonterminal :: NtStmt ( ref stmt) => prepend_attrs ( sess, stmt. attrs ( ) , nt, stmt. tokens ( ) ) ,
264
261
Nonterminal :: NtPat ( ref pat) => convert_tokens ( pat. tokens . as_ref ( ) ) ,
265
262
Nonterminal :: NtTy ( ref ty) => convert_tokens ( ty. tokens . as_ref ( ) ) ,
266
263
Nonterminal :: NtIdent ( ident, is_raw) => {
@@ -277,31 +274,30 @@ pub fn nt_to_tokenstream(
277
274
if expr. tokens . is_none ( ) {
278
275
debug ! ( "missing tokens for expr {:?}" , expr) ;
279
276
}
280
- prepend_attrs ( sess, & expr. attrs , nt, span , expr. tokens . as_ref ( ) )
277
+ prepend_attrs ( sess, & expr. attrs , nt, expr. tokens . as_ref ( ) )
281
278
}
282
279
} ;
283
280
284
281
if let Some ( tokens) = tokens {
285
282
return tokens;
286
283
} else if matches ! ( synthesize_tokens, CanSynthesizeMissingTokens :: Yes ) {
287
- return fake_token_stream ( sess, nt, span ) ;
284
+ return fake_token_stream ( sess, nt) ;
288
285
} else {
289
286
let pretty = rustc_ast_pretty:: pprust:: nonterminal_to_string_no_extra_parens ( & nt) ;
290
- panic ! ( "Missing tokens at {:?} for nt {:?}" , span , pretty) ;
287
+ panic ! ( "Missing tokens for nt {:?}" , pretty) ;
291
288
}
292
289
}
293
290
294
- pub fn fake_token_stream ( sess : & ParseSess , nt : & Nonterminal , span : Span ) -> TokenStream {
291
+ pub fn fake_token_stream ( sess : & ParseSess , nt : & Nonterminal ) -> TokenStream {
295
292
let source = pprust:: nonterminal_to_string ( nt) ;
296
293
let filename = FileName :: macro_expansion_source_code ( & source) ;
297
- parse_stream_from_source_str ( filename, source, sess, Some ( span) )
294
+ parse_stream_from_source_str ( filename, source, sess, Some ( nt . span ( ) ) )
298
295
}
299
296
300
297
fn prepend_attrs (
301
298
sess : & ParseSess ,
302
299
attrs : & [ ast:: Attribute ] ,
303
300
nt : & Nonterminal ,
304
- span : Span ,
305
301
tokens : Option < & tokenstream:: LazyTokenStream > ,
306
302
) -> Option < tokenstream:: TokenStream > {
307
303
if attrs. is_empty ( ) {
@@ -312,7 +308,7 @@ fn prepend_attrs(
312
308
// FIXME: Correctly handle tokens for inner attributes.
313
309
// For now, we fall back to reparsing the original AST node
314
310
if attr. style == ast:: AttrStyle :: Inner {
315
- return Some ( fake_token_stream ( sess, nt, span ) ) ;
311
+ return Some ( fake_token_stream ( sess, nt) ) ;
316
312
}
317
313
builder. push ( attr. tokens ( ) ) ;
318
314
}
0 commit comments