diff options
| author | dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> | 2024-01-16 08:03:49 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-01-16 07:03:49 +0000 |
| commit | f74f38a4f764fd017812ff351906b64cbb239767 (patch) | |
| tree | c45ee74cfb3510071f2aa9a69acb882eb82ac852 /rtic-macros/src/syntax/parse.rs | |
| parent | c63065700994f7215d3613b0dbb43b40a49c2d26 (diff) | |
Update syn requirement from 1.0.107 to 2.0.48 (#881)
* Update syn requirement from 1.0.107 to 2.0.48
Updates the requirements on [syn](https://github.com/dtolnay/syn) to permit the latest version.
- [Release notes](https://github.com/dtolnay/syn/releases)
- [Commits](https://github.com/dtolnay/syn/compare/1.0.107...2.0.48)
---
updated-dependencies:
- dependency-name: syn
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com>
* rtic-macros: attr.path -> attr.path()
* rtic-macros: tokens -> parse_args()
Fix parsing of InitArgs, IdleArgs, *Args
Including HardwareTaskArgs, SoftwareTaskArgs
* rtic-macros: Rename content to input
As syn2 removes the surrounding parenthesis as
part of parse_args() the distinction between
input and content is redundant
* rtic-macros: Handle removal of Expr::Type
Manually parse local_resources
With type ascription de-RFCd syn2 dropped
Expr::Type
* rtic-macros: Syn upgrade CHANGELOG
* rtic-macro: Retain most old errors as they were
Spans are not equal, but good enough
* rtic-macros: syn2 changed some error messages
Additionally some spans were not retained
with the manual parsing workaround
* rtic-macros: clippy fixes
---------
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Henrik Tjäder <henrik@tjaders.com>
Diffstat (limited to 'rtic-macros/src/syntax/parse.rs')
| -rw-r--r-- | rtic-macros/src/syntax/parse.rs | 53 |
1 files changed, 23 insertions, 30 deletions
diff --git a/rtic-macros/src/syntax/parse.rs b/rtic-macros/src/syntax/parse.rs index 823bd82..aae8a50 100644 --- a/rtic-macros/src/syntax/parse.rs +++ b/rtic-macros/src/syntax/parse.rs @@ -8,7 +8,7 @@ mod util; use proc_macro2::TokenStream as TokenStream2; use syn::{ - braced, parenthesized, + braced, parse::{self, Parse, ParseStream, Parser}, token::Brace, Ident, Item, LitInt, Token, @@ -70,15 +70,12 @@ fn init_args(tokens: TokenStream2) -> parse::Result<InitArgs> { let mut local_resources = None; - let content; - parenthesized!(content in input); - - if !content.is_empty() { + if !input.is_empty() { loop { // Parse identifier name - let ident: Ident = content.parse()?; + let ident: Ident = input.parse()?; // Handle equal sign - let _: Token![=] = content.parse()?; + let _: Token![=] = input.parse()?; match &*ident.to_string() { "local" => { @@ -89,18 +86,18 @@ fn init_args(tokens: TokenStream2) -> parse::Result<InitArgs> { )); } - local_resources = Some(util::parse_local_resources(&content)?); + local_resources = Some(util::parse_local_resources(input)?); } _ => { return Err(parse::Error::new(ident.span(), "unexpected argument")); } } - if content.is_empty() { + if input.is_empty() { break; } // Handle comma: , - let _: Token![,] = content.parse()?; + let _: Token![,] = input.parse()?; } } @@ -131,14 +128,12 @@ fn idle_args(tokens: TokenStream2) -> parse::Result<IdleArgs> { let mut shared_resources = None; let mut local_resources = None; - let content; - parenthesized!(content in input); - if !content.is_empty() { + if !input.is_empty() { loop { // Parse identifier name - let ident: Ident = content.parse()?; + let ident: Ident = input.parse()?; // Handle equal sign - let _: Token![=] = content.parse()?; + let _: Token![=] = input.parse()?; match &*ident.to_string() { "shared" => { @@ -149,7 +144,7 @@ fn idle_args(tokens: TokenStream2) -> parse::Result<IdleArgs> { )); } - shared_resources = Some(util::parse_shared_resources(&content)?); + shared_resources = Some(util::parse_shared_resources(input)?); } "local" => { @@ -160,19 +155,19 @@ fn idle_args(tokens: TokenStream2) -> parse::Result<IdleArgs> { )); } - local_resources = Some(util::parse_local_resources(&content)?); + local_resources = Some(util::parse_local_resources(input)?); } _ => { return Err(parse::Error::new(ident.span(), "unexpected argument")); } } - if content.is_empty() { + if input.is_empty() { break; } // Handle comma: , - let _: Token![,] = content.parse()?; + let _: Token![,] = input.parse()?; } } @@ -196,19 +191,17 @@ fn task_args(tokens: TokenStream2) -> parse::Result<Either<HardwareTaskArgs, Sof let mut local_resources = None; let mut prio_span = None; - let content; - parenthesized!(content in input); loop { - if content.is_empty() { + if input.is_empty() { break; } // Parse identifier name - let ident: Ident = content.parse()?; + let ident: Ident = input.parse()?; let ident_s = ident.to_string(); // Handle equal sign - let _: Token![=] = content.parse()?; + let _: Token![=] = input.parse()?; match &*ident_s { "binds" => { @@ -220,7 +213,7 @@ fn task_args(tokens: TokenStream2) -> parse::Result<Either<HardwareTaskArgs, Sof } // Parse identifier name - let ident = content.parse()?; + let ident = input.parse()?; binds = Some(ident); } @@ -234,7 +227,7 @@ fn task_args(tokens: TokenStream2) -> parse::Result<Either<HardwareTaskArgs, Sof } // #lit - let lit: LitInt = content.parse()?; + let lit: LitInt = input.parse()?; if !lit.suffix().is_empty() { return Err(parse::Error::new( @@ -263,7 +256,7 @@ fn task_args(tokens: TokenStream2) -> parse::Result<Either<HardwareTaskArgs, Sof )); } - shared_resources = Some(util::parse_shared_resources(&content)?); + shared_resources = Some(util::parse_shared_resources(input)?); } "local" => { @@ -274,7 +267,7 @@ fn task_args(tokens: TokenStream2) -> parse::Result<Either<HardwareTaskArgs, Sof )); } - local_resources = Some(util::parse_local_resources(&content)?); + local_resources = Some(util::parse_local_resources(input)?); } _ => { @@ -282,12 +275,12 @@ fn task_args(tokens: TokenStream2) -> parse::Result<Either<HardwareTaskArgs, Sof } } - if content.is_empty() { + if input.is_empty() { break; } // Handle comma: , - let _: Token![,] = content.parse()?; + let _: Token![,] = input.parse()?; } let shared_resources = shared_resources.unwrap_or_default(); let local_resources = local_resources.unwrap_or_default(); |
