@@ -246,18 +246,49 @@ impl ToInternal<TokenStream> for (TokenTree<TokenStream, Span, Symbol>, &mut Rus
246
246
use rustc_ast:: token:: * ;
247
247
248
248
let ( tree, rustc) = self ;
249
- let ( ch, joint, span) = match tree {
250
- TokenTree :: Punct ( Punct { ch, joint, span } ) => ( ch, joint, span) ,
249
+ match tree {
250
+ TokenTree :: Punct ( Punct { ch, joint, span } ) => {
251
+ let kind = match ch {
252
+ b'=' => Eq ,
253
+ b'<' => Lt ,
254
+ b'>' => Gt ,
255
+ b'!' => Not ,
256
+ b'~' => Tilde ,
257
+ b'+' => BinOp ( Plus ) ,
258
+ b'-' => BinOp ( Minus ) ,
259
+ b'*' => BinOp ( Star ) ,
260
+ b'/' => BinOp ( Slash ) ,
261
+ b'%' => BinOp ( Percent ) ,
262
+ b'^' => BinOp ( Caret ) ,
263
+ b'&' => BinOp ( And ) ,
264
+ b'|' => BinOp ( Or ) ,
265
+ b'@' => At ,
266
+ b'.' => Dot ,
267
+ b',' => Comma ,
268
+ b';' => Semi ,
269
+ b':' => Colon ,
270
+ b'#' => Pound ,
271
+ b'$' => Dollar ,
272
+ b'?' => Question ,
273
+ b'\'' => SingleQuote ,
274
+ _ => unreachable ! ( ) ,
275
+ } ;
276
+ if joint {
277
+ tokenstream:: TokenStream :: token_joint ( kind, span)
278
+ } else {
279
+ tokenstream:: TokenStream :: token_alone ( kind, span)
280
+ }
281
+ }
251
282
TokenTree :: Group ( Group { delimiter, stream, span : DelimSpan { open, close, .. } } ) => {
252
- return tokenstream:: TokenStream :: delimited (
283
+ tokenstream:: TokenStream :: delimited (
253
284
tokenstream:: DelimSpan { open, close } ,
254
285
delimiter. to_internal ( ) ,
255
286
stream. unwrap_or_default ( ) ,
256
- ) ;
287
+ )
257
288
}
258
289
TokenTree :: Ident ( self :: Ident { sym, is_raw, span } ) => {
259
290
rustc. sess ( ) . symbol_gallery . insert ( sym, span) ;
260
- return tokenstream:: TokenStream :: token_alone ( Ident ( sym, is_raw) , span) ;
291
+ tokenstream:: TokenStream :: token_alone ( Ident ( sym, is_raw) , span)
261
292
}
262
293
TokenTree :: Literal ( self :: Literal {
263
294
kind : self :: LitKind :: Integer ,
@@ -270,7 +301,7 @@ impl ToInternal<TokenStream> for (TokenTree<TokenStream, Span, Symbol>, &mut Rus
270
301
let integer = TokenKind :: lit ( token:: Integer , symbol, suffix) ;
271
302
let a = tokenstream:: TokenTree :: token_alone ( minus, span) ;
272
303
let b = tokenstream:: TokenTree :: token_alone ( integer, span) ;
273
- return [ a, b] . into_iter ( ) . collect ( ) ;
304
+ [ a, b] . into_iter ( ) . collect ( )
274
305
}
275
306
TokenTree :: Literal ( self :: Literal {
276
307
kind : self :: LitKind :: Float ,
@@ -283,46 +314,14 @@ impl ToInternal<TokenStream> for (TokenTree<TokenStream, Span, Symbol>, &mut Rus
283
314
let float = TokenKind :: lit ( token:: Float , symbol, suffix) ;
284
315
let a = tokenstream:: TokenTree :: token_alone ( minus, span) ;
285
316
let b = tokenstream:: TokenTree :: token_alone ( float, span) ;
286
- return [ a, b] . into_iter ( ) . collect ( ) ;
317
+ [ a, b] . into_iter ( ) . collect ( )
287
318
}
288
319
TokenTree :: Literal ( self :: Literal { kind, symbol, suffix, span } ) => {
289
- return tokenstream:: TokenStream :: token_alone (
320
+ tokenstream:: TokenStream :: token_alone (
290
321
TokenKind :: lit ( kind. to_internal ( ) , symbol, suffix) ,
291
322
span,
292
- ) ;
323
+ )
293
324
}
294
- } ;
295
-
296
- let kind = match ch {
297
- b'=' => Eq ,
298
- b'<' => Lt ,
299
- b'>' => Gt ,
300
- b'!' => Not ,
301
- b'~' => Tilde ,
302
- b'+' => BinOp ( Plus ) ,
303
- b'-' => BinOp ( Minus ) ,
304
- b'*' => BinOp ( Star ) ,
305
- b'/' => BinOp ( Slash ) ,
306
- b'%' => BinOp ( Percent ) ,
307
- b'^' => BinOp ( Caret ) ,
308
- b'&' => BinOp ( And ) ,
309
- b'|' => BinOp ( Or ) ,
310
- b'@' => At ,
311
- b'.' => Dot ,
312
- b',' => Comma ,
313
- b';' => Semi ,
314
- b':' => Colon ,
315
- b'#' => Pound ,
316
- b'$' => Dollar ,
317
- b'?' => Question ,
318
- b'\'' => SingleQuote ,
319
- _ => unreachable ! ( ) ,
320
- } ;
321
-
322
- if joint {
323
- tokenstream:: TokenStream :: token_joint ( kind, span)
324
- } else {
325
- tokenstream:: TokenStream :: token_alone ( kind, span)
326
325
}
327
326
}
328
327
}
0 commit comments