@@ -246,18 +246,49 @@ impl ToInternal<TokenStream> for (TokenTree<TokenStream, Span, Symbol>, &mut Rus
246246 use rustc_ast:: token:: * ;
247247
248248 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+ }
251282 TokenTree :: Group ( Group { delimiter, stream, span : DelimSpan { open, close, .. } } ) => {
252- return tokenstream:: TokenStream :: delimited (
283+ tokenstream:: TokenStream :: delimited (
253284 tokenstream:: DelimSpan { open, close } ,
254285 delimiter. to_internal ( ) ,
255286 stream. unwrap_or_default ( ) ,
256- ) ;
287+ )
257288 }
258289 TokenTree :: Ident ( self :: Ident { sym, is_raw, span } ) => {
259290 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)
261292 }
262293 TokenTree :: Literal ( self :: Literal {
263294 kind : self :: LitKind :: Integer ,
@@ -270,7 +301,7 @@ impl ToInternal<TokenStream> for (TokenTree<TokenStream, Span, Symbol>, &mut Rus
270301 let integer = TokenKind :: lit ( token:: Integer , symbol, suffix) ;
271302 let a = tokenstream:: TokenTree :: token_alone ( minus, span) ;
272303 let b = tokenstream:: TokenTree :: token_alone ( integer, span) ;
273- return [ a, b] . into_iter ( ) . collect ( ) ;
304+ [ a, b] . into_iter ( ) . collect ( )
274305 }
275306 TokenTree :: Literal ( self :: Literal {
276307 kind : self :: LitKind :: Float ,
@@ -283,46 +314,14 @@ impl ToInternal<TokenStream> for (TokenTree<TokenStream, Span, Symbol>, &mut Rus
283314 let float = TokenKind :: lit ( token:: Float , symbol, suffix) ;
284315 let a = tokenstream:: TokenTree :: token_alone ( minus, span) ;
285316 let b = tokenstream:: TokenTree :: token_alone ( float, span) ;
286- return [ a, b] . into_iter ( ) . collect ( ) ;
317+ [ a, b] . into_iter ( ) . collect ( )
287318 }
288319 TokenTree :: Literal ( self :: Literal { kind, symbol, suffix, span } ) => {
289- return tokenstream:: TokenStream :: token_alone (
320+ tokenstream:: TokenStream :: token_alone (
290321 TokenKind :: lit ( kind. to_internal ( ) , symbol, suffix) ,
291322 span,
292- ) ;
323+ )
293324 }
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)
326325 }
327326 }
328327}
0 commit comments