From f74f38a4f764fd017812ff351906b64cbb239767 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 16 Jan 2024 08:03:49 +0100 Subject: Update syn requirement from 1.0.107 to 2.0.48 (#881) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 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] * 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] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Henrik Tjäder --- rtic-macros/src/syntax/parse.rs | 53 ++++++++++++++++++----------------------- 1 file changed, 23 insertions(+), 30 deletions(-) (limited to 'rtic-macros/src/syntax/parse.rs') 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 { 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 { )); } - 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 { 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 { )); } - 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 { )); } - 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 { @@ -220,7 +213,7 @@ fn task_args(tokens: TokenStream2) -> parse::Result parse::Result parse::Result { @@ -274,7 +267,7 @@ fn task_args(tokens: TokenStream2) -> parse::Result { @@ -282,12 +275,12 @@ fn task_args(tokens: TokenStream2) -> parse::Result