This repository was archived by the owner on May 28, 2025. It is now read-only.
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 {
5353
5454struct Symbol {
5555 name : Ident ,
56- value : Option < LitStr > ,
56+ value : Value ,
57+ }
58+
59+ enum Value {
60+ SameAsName ,
61+ String ( LitStr ) ,
5762}
5863
5964impl Parse for Symbol {
6065 fn parse ( input : ParseStream < ' _ > ) -> Result < Self > {
6166 let name = input. parse ( ) ?;
6267 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 } ;
6470
6571 Ok ( Symbol { name, value } )
6672 }
@@ -168,8 +174,8 @@ fn symbols_with_errors(input: TokenStream) -> (TokenStream, Vec<syn::Error>) {
168174 for symbol in input. symbols . iter ( ) {
169175 let name = & symbol. name ;
170176 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 ( ) ,
173179 } ;
174180 check_dup ( symbol. name . span ( ) , & value, & mut errors) ;
175181 check_order ( symbol. name . span ( ) , & name. to_string ( ) , & mut errors) ;
You can’t perform that action at this time.
0 commit comments