[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20230523170221.77935844.gary@garyguo.net>
Date: Tue, 23 May 2023 17:02:21 +0100
From: Gary Guo <gary@...yguo.net>
To: Benno Lossin <benno.lossin@...ton.me>
Cc: Miguel Ojeda <ojeda@...nel.org>,
Alex Gaynor <alex.gaynor@...il.com>,
Wedson Almeida Filho <wedsonaf@...il.com>,
Boqun Feng <boqun.feng@...il.com>,
Björn Roy Baron <bjorn3_gh@...tonmail.com>,
rust-for-linux@...r.kernel.org, linux-kernel@...r.kernel.org,
patches@...ts.linux.dev
Subject: Re: [PATCH 1/4] rust: macros: fix usage of `#[allow]` in `quote!`
On Mon, 24 Apr 2023 08:11:33 +0000
Benno Lossin <benno.lossin@...ton.me> wrote:
> When using `quote!` as part of an expression that was not the last one
> in a function, the `#[allow(clippy::vec_init_then_push)]` attribute
> would be present on an expression, which is not allowed.
> This patch refactors that part of the macro to use a statement instead.
>
> Signed-off-by: Benno Lossin <benno.lossin@...ton.me>
Reviewed-by: Gary Guo <gary@...yguo.net>
> ---
> rust/macros/quote.rs | 14 ++++++++------
> 1 file changed, 8 insertions(+), 6 deletions(-)
>
> diff --git a/rust/macros/quote.rs b/rust/macros/quote.rs
> index c8e08b3c1e4c..dddbb4e6f4cb 100644
> --- a/rust/macros/quote.rs
> +++ b/rust/macros/quote.rs
> @@ -39,12 +39,14 @@ impl ToTokens for TokenStream {
> /// [`quote_spanned!`](https://docs.rs/quote/latest/quote/macro.quote_spanned.html) macro from the
> /// `quote` crate but provides only just enough functionality needed by the current `macros` crate.
> macro_rules! quote_spanned {
> - ($span:expr => $($tt:tt)*) => {
> - #[allow(clippy::vec_init_then_push)]
> - {
> - let mut tokens = ::std::vec::Vec::new();
> - let span = $span;
> - quote_spanned!(@proc tokens span $($tt)*);
> + ($span:expr => $($tt:tt)*) => {{
> + let mut tokens;
> + #[allow(clippy::vec_init_then_push)]
> + {
> + tokens = ::std::vec::Vec::new();
> + let span = $span;
> + quote_spanned!(@proc tokens span $($tt)*);
> + }
> ::proc_macro::TokenStream::from_iter(tokens)
> }};
> (@proc $v:ident $span:ident) => {};
>
> base-commit: ea76e08f4d901a450619831a255e9e0a4c0ed162
> --
> 2.40.0
>
>
Powered by blists - more mailing lists