diff options
| author | David Tolnay <dtolnay@gmail.com> | 2023-10-25 11:15:18 -0700 |
|---|---|---|
| committer | David Tolnay <dtolnay@gmail.com> | 2023-10-26 01:57:08 -0700 |
| commit | 95742ff23cf2283da796f483386367f7fdc06bc6 (patch) | |
| tree | 832e66a10d16e5dc5dd61f2f24b2b413647cf21e /compiler/rustc_macros/src | |
| parent | ba17934bc1f6fce2e4f9e5494efdb90508eafecd (diff) | |
| download | rust-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.rs | 10 |
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![,]>, |
