diff options
Diffstat (limited to 'rust/pin-init/internal/src')
| -rw-r--r-- | rust/pin-init/internal/src/helpers.rs | 7 | ||||
| -rw-r--r-- | rust/pin-init/internal/src/lib.rs | 16 | ||||
| -rw-r--r-- | rust/pin-init/internal/src/pin_data.rs | 18 | ||||
| -rw-r--r-- | rust/pin-init/internal/src/pinned_drop.rs | 10 | ||||
| -rw-r--r-- | rust/pin-init/internal/src/zeroable.rs | 6 |
5 files changed, 14 insertions, 43 deletions
diff --git a/rust/pin-init/internal/src/helpers.rs b/rust/pin-init/internal/src/helpers.rs index 236f989a50f2..90f85eaa4123 100644 --- a/rust/pin-init/internal/src/helpers.rs +++ b/rust/pin-init/internal/src/helpers.rs @@ -1,9 +1,6 @@ // SPDX-License-Identifier: Apache-2.0 OR MIT -#[cfg(not(kernel))] -use proc_macro2 as proc_macro; - -use proc_macro::{TokenStream, TokenTree}; +use proc_macro2::{TokenStream, TokenTree}; /// Parsed generics. /// @@ -101,7 +98,7 @@ pub(crate) fn parse_generics(input: TokenStream) -> (Generics, Vec<TokenTree>) { 1 => { // Here depending on the token, it might be a generic variable name. match tt.clone() { - TokenTree::Ident(i) if at_start && i.to_string() == "const" => { + TokenTree::Ident(i) if at_start && i == "const" => { let Some(name) = toks.next() else { // Parsing error. break; diff --git a/rust/pin-init/internal/src/lib.rs b/rust/pin-init/internal/src/lib.rs index 297b0129a5bf..4c4dc639ce82 100644 --- a/rust/pin-init/internal/src/lib.rs +++ b/rust/pin-init/internal/src/lib.rs @@ -7,27 +7,11 @@ //! `pin-init` proc macros. #![cfg_attr(not(RUSTC_LINT_REASONS_IS_STABLE), feature(lint_reasons))] -// Allow `.into()` to convert -// - `proc_macro2::TokenStream` into `proc_macro::TokenStream` in the user-space version. -// - `proc_macro::TokenStream` into `proc_macro::TokenStream` in the kernel version. -// Clippy warns on this conversion, but it's required by the user-space version. -// -// Remove once we have `proc_macro2` in the kernel. -#![allow(clippy::useless_conversion)] // Documentation is done in the pin-init crate instead. #![allow(missing_docs)] use proc_macro::TokenStream; -#[cfg(kernel)] -#[path = "../../../macros/quote.rs"] -#[macro_use] -#[cfg_attr(not(kernel), rustfmt::skip)] -mod quote; -#[cfg(not(kernel))] -#[macro_use] -extern crate quote; - mod helpers; mod pin_data; mod pinned_drop; diff --git a/rust/pin-init/internal/src/pin_data.rs b/rust/pin-init/internal/src/pin_data.rs index 87d4a7eb1d35..86a53b37cc66 100644 --- a/rust/pin-init/internal/src/pin_data.rs +++ b/rust/pin-init/internal/src/pin_data.rs @@ -1,10 +1,8 @@ // SPDX-License-Identifier: Apache-2.0 OR MIT -#[cfg(not(kernel))] -use proc_macro2 as proc_macro; - use crate::helpers::{parse_generics, Generics}; -use proc_macro::{Group, Punct, Spacing, TokenStream, TokenTree}; +use proc_macro2::{Group, Punct, Spacing, TokenStream, TokenTree}; +use quote::quote; pub(crate) fn pin_data(args: TokenStream, input: TokenStream) -> TokenStream { // This proc-macro only does some pre-parsing and then delegates the actual parsing to @@ -28,7 +26,7 @@ pub(crate) fn pin_data(args: TokenStream, input: TokenStream) -> TokenStream { // The name of the struct with ty_generics. let struct_name = rest .iter() - .skip_while(|tt| !matches!(tt, TokenTree::Ident(i) if i.to_string() == "struct")) + .skip_while(|tt| !matches!(tt, TokenTree::Ident(i) if i == "struct")) .nth(1) .and_then(|tt| match tt { TokenTree::Ident(_) => { @@ -65,7 +63,7 @@ pub(crate) fn pin_data(args: TokenStream, input: TokenStream) -> TokenStream { .into_iter() .flat_map(|tt| { // We ignore top level `struct` tokens, since they would emit a compile error. - if matches!(&tt, TokenTree::Ident(i) if i.to_string() == "struct") { + if matches!(&tt, TokenTree::Ident(i) if i == "struct") { vec![tt] } else { replace_self_and_deny_type_defs(&struct_name, tt, &mut errs) @@ -98,11 +96,7 @@ fn replace_self_and_deny_type_defs( ) -> Vec<TokenTree> { match tt { TokenTree::Ident(ref i) - if i.to_string() == "enum" - || i.to_string() == "trait" - || i.to_string() == "struct" - || i.to_string() == "union" - || i.to_string() == "impl" => + if i == "enum" || i == "trait" || i == "struct" || i == "union" || i == "impl" => { errs.extend( format!( @@ -119,7 +113,7 @@ fn replace_self_and_deny_type_defs( ); vec![tt] } - TokenTree::Ident(i) if i.to_string() == "Self" => struct_name.clone(), + TokenTree::Ident(i) if i == "Self" => struct_name.clone(), TokenTree::Literal(_) | TokenTree::Punct(_) | TokenTree::Ident(_) => vec![tt], TokenTree::Group(g) => vec![TokenTree::Group(Group::new( g.delimiter(), diff --git a/rust/pin-init/internal/src/pinned_drop.rs b/rust/pin-init/internal/src/pinned_drop.rs index c4ca7a70b726..cf8cd1c42984 100644 --- a/rust/pin-init/internal/src/pinned_drop.rs +++ b/rust/pin-init/internal/src/pinned_drop.rs @@ -1,15 +1,13 @@ // SPDX-License-Identifier: Apache-2.0 OR MIT -#[cfg(not(kernel))] -use proc_macro2 as proc_macro; - -use proc_macro::{TokenStream, TokenTree}; +use proc_macro2::{TokenStream, TokenTree}; +use quote::quote; pub(crate) fn pinned_drop(_args: TokenStream, input: TokenStream) -> TokenStream { let mut toks = input.into_iter().collect::<Vec<_>>(); assert!(!toks.is_empty()); // Ensure that we have an `impl` item. - assert!(matches!(&toks[0], TokenTree::Ident(i) if i.to_string() == "impl")); + assert!(matches!(&toks[0], TokenTree::Ident(i) if i == "impl")); // Ensure that we are implementing `PinnedDrop`. let mut nesting: usize = 0; let mut pinned_drop_idx = None; @@ -27,7 +25,7 @@ pub(crate) fn pinned_drop(_args: TokenStream, input: TokenStream) -> TokenStream if i >= 1 && nesting == 0 { // Found the end of the generics, this should be `PinnedDrop`. assert!( - matches!(tt, TokenTree::Ident(i) if i.to_string() == "PinnedDrop"), + matches!(tt, TokenTree::Ident(i) if i == "PinnedDrop"), "expected 'PinnedDrop', found: '{tt:?}'" ); pinned_drop_idx = Some(i); diff --git a/rust/pin-init/internal/src/zeroable.rs b/rust/pin-init/internal/src/zeroable.rs index e0ed3998445c..d8a5ef3883f4 100644 --- a/rust/pin-init/internal/src/zeroable.rs +++ b/rust/pin-init/internal/src/zeroable.rs @@ -1,10 +1,8 @@ // SPDX-License-Identifier: GPL-2.0 -#[cfg(not(kernel))] -use proc_macro2 as proc_macro; - use crate::helpers::{parse_generics, Generics}; -use proc_macro::{TokenStream, TokenTree}; +use proc_macro2::{TokenStream, TokenTree}; +use quote::quote; pub(crate) fn parse_zeroable_derive_input( input: TokenStream, |
