about summary refs log tree commit diff
path: root/compiler/rustc_macros/src
diff options
context:
space:
mode:
authorDavid Tolnay <dtolnay@gmail.com>2023-10-25 11:15:18 -0700
committerDavid Tolnay <dtolnay@gmail.com>2023-10-26 01:57:08 -0700
commit95742ff23cf2283da796f483386367f7fdc06bc6 (patch)
tree832e66a10d16e5dc5dd61f2f24b2b413647cf21e /compiler/rustc_macros/src
parentba17934bc1f6fce2e4f9e5494efdb90508eafecd (diff)
downloadrust-95742ff23cf2283da796f483386367f7fdc06bc6.tar.gz
rust-95742ff23cf2283da796f483386367f7fdc06bc6.zip
Add a Parse impl for symbol Value
Diffstat (limited to 'compiler/rustc_macros/src')
-rw-r--r--compiler/rustc_macros/src/symbols.rs10
1 files changed, 8 insertions, 2 deletions
diff --git a/compiler/rustc_macros/src/symbols.rs b/compiler/rustc_macros/src/symbols.rs
index 4df7eb63104..c48df8313b2 100644
--- a/compiler/rustc_macros/src/symbols.rs
+++ b/compiler/rustc_macros/src/symbols.rs
@@ -65,13 +65,19 @@ impl Parse for Symbol {
     fn parse(input: ParseStream<'_>) -> Result<Self> {
         let name = input.parse()?;
         let colon_token: Option<Token![:]> = input.parse()?;
-        let value =
-            if colon_token.is_some() { Value::String(input.parse()?) } else { Value::SameAsName };
+        let value = if colon_token.is_some() { input.parse()? } else { Value::SameAsName };
 
         Ok(Symbol { name, value })
     }
 }
 
+impl Parse for Value {
+    fn parse(input: ParseStream<'_>) -> Result<Self> {
+        let lit: LitStr = input.parse()?;
+        Ok(Value::String(lit))
+    }
+}
+
 struct Input {
     keywords: Punctuated<Keyword, Token![,]>,
     symbols: Punctuated<Symbol, Token![,]>,