12
12
use std:: collections:: HashMap ;
13
13
use std:: panic:: { catch_unwind, AssertUnwindSafe } ;
14
14
15
- use rustc_ast:: token:: { BinOpToken , DelimToken , Token , TokenKind } ;
15
+ use rustc_ast:: token:: { BinOpToken , Delimiter , Token , TokenKind } ;
16
16
use rustc_ast:: tokenstream:: { Cursor , Spacing , TokenStream , TokenTree } ;
17
17
use rustc_ast:: { ast, ptr} ;
18
18
use rustc_ast_pretty:: pprust;
@@ -203,7 +203,7 @@ fn rewrite_macro_inner(
203
203
let is_forced_bracket = FORCED_BRACKET_MACROS . contains ( & & macro_name[ ..] ) ;
204
204
205
205
let style = if is_forced_bracket && !is_nested_macro {
206
- DelimToken :: Bracket
206
+ Delimiter :: Bracket
207
207
} else {
208
208
original_style
209
209
} ;
@@ -212,21 +212,21 @@ fn rewrite_macro_inner(
212
212
let has_comment = contains_comment ( context. snippet ( mac. span ( ) ) ) ;
213
213
if ts. is_empty ( ) && !has_comment {
214
214
return match style {
215
- DelimToken :: Paren if position == MacroPosition :: Item => {
215
+ Delimiter :: Parenthesis if position == MacroPosition :: Item => {
216
216
Some ( format ! ( "{}();" , macro_name) )
217
217
}
218
- DelimToken :: Bracket if position == MacroPosition :: Item => {
218
+ Delimiter :: Bracket if position == MacroPosition :: Item => {
219
219
Some ( format ! ( "{}[];" , macro_name) )
220
220
}
221
- DelimToken :: Paren => Some ( format ! ( "{}()" , macro_name) ) ,
222
- DelimToken :: Bracket => Some ( format ! ( "{}[]" , macro_name) ) ,
223
- DelimToken :: Brace => Some ( format ! ( "{} {{}}" , macro_name) ) ,
221
+ Delimiter :: Parenthesis => Some ( format ! ( "{}()" , macro_name) ) ,
222
+ Delimiter :: Bracket => Some ( format ! ( "{}[]" , macro_name) ) ,
223
+ Delimiter :: Brace => Some ( format ! ( "{} {{}}" , macro_name) ) ,
224
224
_ => unreachable ! ( ) ,
225
225
} ;
226
226
}
227
227
// Format well-known macros which cannot be parsed as a valid AST.
228
228
if macro_name == "lazy_static!" && !has_comment {
229
- if let success @ Some ( ..) = format_lazy_static ( context, shape, ts. trees ( ) . collect ( ) ) {
229
+ if let success @ Some ( ..) = format_lazy_static ( context, shape, ts. clone ( ) ) {
230
230
return success;
231
231
}
232
232
}
@@ -260,7 +260,7 @@ fn rewrite_macro_inner(
260
260
}
261
261
262
262
match style {
263
- DelimToken :: Paren => {
263
+ Delimiter :: Parenthesis => {
264
264
// Handle special case: `vec!(expr; expr)`
265
265
if vec_with_semi {
266
266
handle_vec_semi ( context, shape, arg_vec, macro_name, style)
@@ -286,7 +286,7 @@ fn rewrite_macro_inner(
286
286
} )
287
287
}
288
288
}
289
- DelimToken :: Bracket => {
289
+ Delimiter :: Bracket => {
290
290
// Handle special case: `vec![expr; expr]`
291
291
if vec_with_semi {
292
292
handle_vec_semi ( context, shape, arg_vec, macro_name, style)
@@ -323,7 +323,7 @@ fn rewrite_macro_inner(
323
323
Some ( format ! ( "{}{}" , rewrite, comma) )
324
324
}
325
325
}
326
- DelimToken :: Brace => {
326
+ Delimiter :: Brace => {
327
327
// For macro invocations with braces, always put a space between
328
328
// the `macro_name!` and `{ /* macro_body */ }` but skip modifying
329
329
// anything in between the braces (for now).
@@ -342,11 +342,11 @@ fn handle_vec_semi(
342
342
shape : Shape ,
343
343
arg_vec : Vec < MacroArg > ,
344
344
macro_name : String ,
345
- delim_token : DelimToken ,
345
+ delim_token : Delimiter ,
346
346
) -> Option < String > {
347
347
let ( left, right) = match delim_token {
348
- DelimToken :: Paren => ( "(" , ")" ) ,
349
- DelimToken :: Bracket => ( "[" , "]" ) ,
348
+ Delimiter :: Parenthesis => ( "(" , ")" ) ,
349
+ Delimiter :: Bracket => ( "[" , "]" ) ,
350
350
_ => unreachable ! ( ) ,
351
351
} ;
352
352
@@ -528,7 +528,7 @@ enum MacroArgKind {
528
528
/// e.g., `$($foo: expr),*`
529
529
Repeat (
530
530
/// `()`, `[]` or `{}`.
531
- DelimToken ,
531
+ Delimiter ,
532
532
/// Inner arguments inside delimiters.
533
533
Vec < ParsedMacroArg > ,
534
534
/// Something after the closing delimiter and the repeat token, if available.
@@ -537,7 +537,7 @@ enum MacroArgKind {
537
537
Token ,
538
538
) ,
539
539
/// e.g., `[derive(Debug)]`
540
- Delimited ( DelimToken , Vec < ParsedMacroArg > ) ,
540
+ Delimited ( Delimiter , Vec < ParsedMacroArg > ) ,
541
541
/// A possible separator. e.g., `,` or `;`.
542
542
Separator ( String , String ) ,
543
543
/// Other random stuff that does not fit to other kinds.
@@ -547,22 +547,22 @@ enum MacroArgKind {
547
547
548
548
fn delim_token_to_str (
549
549
context : & RewriteContext < ' _ > ,
550
- delim_token : DelimToken ,
550
+ delim_token : Delimiter ,
551
551
shape : Shape ,
552
552
use_multiple_lines : bool ,
553
553
inner_is_empty : bool ,
554
554
) -> ( String , String ) {
555
555
let ( lhs, rhs) = match delim_token {
556
- DelimToken :: Paren => ( "(" , ")" ) ,
557
- DelimToken :: Bracket => ( "[" , "]" ) ,
558
- DelimToken :: Brace => {
556
+ Delimiter :: Parenthesis => ( "(" , ")" ) ,
557
+ Delimiter :: Bracket => ( "[" , "]" ) ,
558
+ Delimiter :: Brace => {
559
559
if inner_is_empty || use_multiple_lines {
560
560
( "{" , "}" )
561
561
} else {
562
562
( "{ " , " }" )
563
563
}
564
564
}
565
- DelimToken :: NoDelim => ( "" , "" ) ,
565
+ Delimiter :: Invisible => unreachable ! ( ) ,
566
566
} ;
567
567
if use_multiple_lines {
568
568
let indent_str = shape. indent . to_string_with_newline ( context. config ) ;
@@ -583,8 +583,8 @@ impl MacroArgKind {
583
583
fn starts_with_brace ( & self ) -> bool {
584
584
matches ! (
585
585
* self ,
586
- MacroArgKind :: Repeat ( DelimToken :: Brace , _, _, _)
587
- | MacroArgKind :: Delimited ( DelimToken :: Brace , _)
586
+ MacroArgKind :: Repeat ( Delimiter :: Brace , _, _, _)
587
+ | MacroArgKind :: Delimited ( Delimiter :: Brace , _)
588
588
)
589
589
}
590
590
@@ -753,7 +753,7 @@ impl MacroArgParser {
753
753
}
754
754
}
755
755
756
- fn add_delimited ( & mut self , inner : Vec < ParsedMacroArg > , delim : DelimToken ) {
756
+ fn add_delimited ( & mut self , inner : Vec < ParsedMacroArg > , delim : Delimiter ) {
757
757
self . result . push ( ParsedMacroArg {
758
758
kind : MacroArgKind :: Delimited ( delim, inner) ,
759
759
} ) ;
@@ -763,7 +763,7 @@ impl MacroArgParser {
763
763
fn add_repeat (
764
764
& mut self ,
765
765
inner : Vec < ParsedMacroArg > ,
766
- delim : DelimToken ,
766
+ delim : Delimiter ,
767
767
iter : & mut Cursor ,
768
768
) -> Option < ( ) > {
769
769
let mut buffer = String :: new ( ) ;
@@ -855,7 +855,7 @@ impl MacroArgParser {
855
855
856
856
/// Returns a collection of parsed macro def's arguments.
857
857
fn parse ( mut self , tokens : TokenStream ) -> Option < Vec < ParsedMacroArg > > {
858
- let mut iter = tokens. trees ( ) ;
858
+ let mut iter = tokens. into_trees ( ) ;
859
859
860
860
while let Some ( tok) = iter. next ( ) {
861
861
match tok {
@@ -1083,18 +1083,18 @@ pub(crate) fn convert_try_mac(
1083
1083
}
1084
1084
}
1085
1085
1086
- pub ( crate ) fn macro_style ( mac : & ast:: MacCall , context : & RewriteContext < ' _ > ) -> DelimToken {
1086
+ pub ( crate ) fn macro_style ( mac : & ast:: MacCall , context : & RewriteContext < ' _ > ) -> Delimiter {
1087
1087
let snippet = context. snippet ( mac. span ( ) ) ;
1088
1088
let paren_pos = snippet. find_uncommented ( "(" ) . unwrap_or ( usize:: max_value ( ) ) ;
1089
1089
let bracket_pos = snippet. find_uncommented ( "[" ) . unwrap_or ( usize:: max_value ( ) ) ;
1090
1090
let brace_pos = snippet. find_uncommented ( "{" ) . unwrap_or ( usize:: max_value ( ) ) ;
1091
1091
1092
1092
if paren_pos < bracket_pos && paren_pos < brace_pos {
1093
- DelimToken :: Paren
1093
+ Delimiter :: Parenthesis
1094
1094
} else if bracket_pos < brace_pos {
1095
- DelimToken :: Bracket
1095
+ Delimiter :: Bracket
1096
1096
} else {
1097
- DelimToken :: Brace
1097
+ Delimiter :: Brace
1098
1098
}
1099
1099
}
1100
1100
@@ -1174,7 +1174,7 @@ struct Macro {
1174
1174
// rather than clone them, if we can make the borrowing work out.
1175
1175
struct MacroBranch {
1176
1176
span : Span ,
1177
- args_paren_kind : DelimToken ,
1177
+ args_paren_kind : Delimiter ,
1178
1178
args : TokenStream ,
1179
1179
body : Span ,
1180
1180
whole_body : Span ,
@@ -1188,7 +1188,7 @@ impl MacroBranch {
1188
1188
multi_branch_style : bool ,
1189
1189
) -> Option < String > {
1190
1190
// Only attempt to format function-like macros.
1191
- if self . args_paren_kind != DelimToken :: Paren {
1191
+ if self . args_paren_kind != Delimiter :: Parenthesis {
1192
1192
// FIXME(#1539): implement for non-sugared macros.
1193
1193
return None ;
1194
1194
}
@@ -1350,18 +1350,18 @@ fn rewrite_macro_with_items(
1350
1350
items : & [ MacroArg ] ,
1351
1351
macro_name : & str ,
1352
1352
shape : Shape ,
1353
- style : DelimToken ,
1353
+ style : Delimiter ,
1354
1354
position : MacroPosition ,
1355
1355
span : Span ,
1356
1356
) -> Option < String > {
1357
1357
let ( opener, closer) = match style {
1358
- DelimToken :: Paren => ( "(" , ")" ) ,
1359
- DelimToken :: Bracket => ( "[" , "]" ) ,
1360
- DelimToken :: Brace => ( " {" , "}" ) ,
1358
+ Delimiter :: Parenthesis => ( "(" , ")" ) ,
1359
+ Delimiter :: Bracket => ( "[" , "]" ) ,
1360
+ Delimiter :: Brace => ( " {" , "}" ) ,
1361
1361
_ => return None ,
1362
1362
} ;
1363
1363
let trailing_semicolon = match style {
1364
- DelimToken :: Paren | DelimToken :: Bracket if position == MacroPosition :: Item => ";" ,
1364
+ Delimiter :: Parenthesis | Delimiter :: Bracket if position == MacroPosition :: Item => ";" ,
1365
1365
_ => "" ,
1366
1366
} ;
1367
1367
0 commit comments