File tree Expand file tree Collapse file tree 1 file changed +10
-4
lines changed
compiler/rustc_macros/src Expand file tree Collapse file tree 1 file changed +10
-4
lines changed Original file line number Diff line number Diff line change @@ -53,14 +53,20 @@ impl Parse for Keyword {
53
53
54
54
struct Symbol {
55
55
name : Ident ,
56
- value : Option < LitStr > ,
56
+ value : Value ,
57
+ }
58
+
59
+ enum Value {
60
+ SameAsName ,
61
+ String ( LitStr ) ,
57
62
}
58
63
59
64
impl Parse for Symbol {
60
65
fn parse ( input : ParseStream < ' _ > ) -> Result < Self > {
61
66
let name = input. parse ( ) ?;
62
67
let colon_token: Option < Token ! [ : ] > = input. parse ( ) ?;
63
- let value = if colon_token. is_some ( ) { Some ( input. parse ( ) ?) } else { None } ;
68
+ let value =
69
+ if colon_token. is_some ( ) { Value :: String ( input. parse ( ) ?) } else { Value :: SameAsName } ;
64
70
65
71
Ok ( Symbol { name, value } )
66
72
}
@@ -168,8 +174,8 @@ fn symbols_with_errors(input: TokenStream) -> (TokenStream, Vec<syn::Error>) {
168
174
for symbol in input. symbols . iter ( ) {
169
175
let name = & symbol. name ;
170
176
let value = match & symbol. value {
171
- Some ( value ) => value . value ( ) ,
172
- None => name . to_string ( ) ,
177
+ Value :: SameAsName => name . to_string ( ) ,
178
+ Value :: String ( lit ) => lit . value ( ) ,
173
179
} ;
174
180
check_dup ( symbol. name . span ( ) , & value, & mut errors) ;
175
181
check_order ( symbol. name . span ( ) , & name. to_string ( ) , & mut errors) ;
You can’t perform that action at this time.
0 commit comments