@@ -13,7 +13,7 @@ use std::collections::HashMap;
13
13
use std:: panic:: { catch_unwind, AssertUnwindSafe } ;
14
14
15
15
use rustc_ast:: token:: { BinOpToken , Delimiter , Token , TokenKind } ;
16
- use rustc_ast:: tokenstream:: { Cursor , TokenStream , TokenTree } ;
16
+ use rustc_ast:: tokenstream:: { Cursor , Spacing , TokenStream , TokenTree } ;
17
17
use rustc_ast:: { ast, ptr} ;
18
18
use rustc_ast_pretty:: pprust;
19
19
use rustc_span:: {
@@ -682,7 +682,7 @@ struct MacroArgParser {
682
682
683
683
fn last_tok ( tt : & TokenTree ) -> Token {
684
684
match * tt {
685
- TokenTree :: Token ( ref t, _ ) => t. clone ( ) ,
685
+ TokenTree :: Token ( ref t) => t. clone ( ) ,
686
686
TokenTree :: Delimited ( delim_span, delim, _) => Token {
687
687
kind : TokenKind :: CloseDelim ( delim) ,
688
688
span : delim_span. close ,
@@ -737,13 +737,10 @@ impl MacroArgParser {
737
737
738
738
fn add_meta_variable ( & mut self , iter : & mut Cursor ) -> Option < ( ) > {
739
739
match iter. next ( ) {
740
- Some ( TokenTree :: Token (
741
- Token {
742
- kind : TokenKind :: Ident ( name, _) ,
743
- ..
744
- } ,
745
- _,
746
- ) ) => {
740
+ Some ( TokenTree :: Token ( Token {
741
+ kind : TokenKind :: Ident ( name, _) ,
742
+ ..
743
+ } ) ) => {
747
744
self . result . push ( ParsedMacroArg {
748
745
kind : MacroArgKind :: MetaVariable ( name, self . buf . clone ( ) ) ,
749
746
} ) ;
@@ -780,30 +777,21 @@ impl MacroArgParser {
780
777
}
781
778
782
779
match tok {
783
- TokenTree :: Token (
784
- Token {
785
- kind : TokenKind :: BinOp ( BinOpToken :: Plus ) ,
786
- ..
787
- } ,
788
- _,
789
- )
790
- | TokenTree :: Token (
791
- Token {
792
- kind : TokenKind :: Question ,
793
- ..
794
- } ,
795
- _,
796
- )
797
- | TokenTree :: Token (
798
- Token {
799
- kind : TokenKind :: BinOp ( BinOpToken :: Star ) ,
800
- ..
801
- } ,
802
- _,
803
- ) => {
780
+ TokenTree :: Token ( Token {
781
+ kind : TokenKind :: BinOp ( BinOpToken :: Plus ) ,
782
+ ..
783
+ } )
784
+ | TokenTree :: Token ( Token {
785
+ kind : TokenKind :: Question ,
786
+ ..
787
+ } )
788
+ | TokenTree :: Token ( Token {
789
+ kind : TokenKind :: BinOp ( BinOpToken :: Star ) ,
790
+ ..
791
+ } ) => {
804
792
break ;
805
793
}
806
- TokenTree :: Token ( ref t, _ ) => {
794
+ TokenTree :: Token ( ref t) => {
807
795
buffer. push_str ( & pprust:: token_to_string ( t) ) ;
808
796
}
809
797
_ => return None ,
@@ -871,13 +859,10 @@ impl MacroArgParser {
871
859
872
860
while let Some ( tok) = iter. next ( ) {
873
861
match tok {
874
- TokenTree :: Token (
875
- Token {
876
- kind : TokenKind :: Dollar ,
877
- span,
878
- } ,
879
- _,
880
- ) => {
862
+ TokenTree :: Token ( Token {
863
+ kind : TokenKind :: Dollar ,
864
+ span,
865
+ } ) => {
881
866
// We always want to add a separator before meta variables.
882
867
if !self . buf . is_empty ( ) {
883
868
self . add_separator ( ) ;
@@ -890,16 +875,13 @@ impl MacroArgParser {
890
875
span,
891
876
} ;
892
877
}
893
- TokenTree :: Token (
894
- Token {
895
- kind : TokenKind :: Colon ,
896
- ..
897
- } ,
898
- _,
899
- ) if self . is_meta_var => {
878
+ TokenTree :: Token ( Token {
879
+ kind : TokenKind :: Colon ,
880
+ ..
881
+ } ) if self . is_meta_var => {
900
882
self . add_meta_variable ( & mut iter) ?;
901
883
}
902
- TokenTree :: Token ( ref t, _ ) => self . update_buffer ( t) ,
884
+ TokenTree :: Token ( ref t) => self . update_buffer ( t) ,
903
885
TokenTree :: Delimited ( _delimited_span, delimited, ref tts) => {
904
886
if !self . buf . is_empty ( ) {
905
887
if next_space ( & self . last_tok . kind ) == SpaceState :: Always {
@@ -1141,15 +1123,12 @@ impl MacroParser {
1141
1123
TokenTree :: Token ( ..) => return None ,
1142
1124
TokenTree :: Delimited ( delimited_span, d, _) => ( delimited_span. open . lo ( ) , d) ,
1143
1125
} ;
1144
- let args = TokenStream :: new ( vec ! [ tok] ) ;
1126
+ let args = TokenStream :: new ( vec ! [ ( tok, Spacing :: Joint ) ] ) ;
1145
1127
match self . toks . next ( ) ? {
1146
- TokenTree :: Token (
1147
- Token {
1148
- kind : TokenKind :: FatArrow ,
1149
- ..
1150
- } ,
1151
- _,
1152
- ) => { }
1128
+ TokenTree :: Token ( Token {
1129
+ kind : TokenKind :: FatArrow ,
1130
+ ..
1131
+ } ) => { }
1153
1132
_ => return None ,
1154
1133
}
1155
1134
let ( mut hi, body, whole_body) = match self . toks . next ( ) ? {
@@ -1168,13 +1147,10 @@ impl MacroParser {
1168
1147
)
1169
1148
}
1170
1149
} ;
1171
- if let Some ( TokenTree :: Token (
1172
- Token {
1173
- kind : TokenKind :: Semi ,
1174
- span,
1175
- } ,
1176
- _,
1177
- ) ) = self . toks . look_ahead ( 0 )
1150
+ if let Some ( TokenTree :: Token ( Token {
1151
+ kind : TokenKind :: Semi ,
1152
+ span,
1153
+ } ) ) = self . toks . look_ahead ( 0 )
1178
1154
{
1179
1155
hi = span. hi ( ) ;
1180
1156
self . toks . next ( ) ;
0 commit comments