chore: clippy happy on macro

This commit is contained in:
Jonathan Kelley 2021-10-27 17:09:22 -04:00
parent 339e450027
commit e1c858dda5
5 changed files with 9 additions and 14 deletions

View file

@ -1,6 +1,5 @@
use proc_macro::TokenStream; use proc_macro::TokenStream;
use quote::ToTokens; use quote::ToTokens;
use rsx::{AS_HTML, AS_RSX};
use syn::parse_macro_input; use syn::parse_macro_input;
pub(crate) mod htm; pub(crate) mod htm;

View file

@ -17,7 +17,7 @@ pub fn impl_my_derive(ast: &syn::DeriveInput) -> Result<TokenStream, Error> {
let data = match &ast.data { let data = match &ast.data {
syn::Data::Struct(data) => match &data.fields { syn::Data::Struct(data) => match &data.fields {
syn::Fields::Named(fields) => { syn::Fields::Named(fields) => {
let struct_info = struct_info::StructInfo::new(&ast, fields.named.iter())?; let struct_info = struct_info::StructInfo::new(ast, fields.named.iter())?;
let builder_creation = struct_info.builder_creation_impl()?; let builder_creation = struct_info.builder_creation_impl()?;
let conversion_helper = struct_info.conversion_helper_impl()?; let conversion_helper = struct_info.conversion_helper_impl()?;
let fields = struct_info let fields = struct_info
@ -196,7 +196,7 @@ mod field_info {
if let Some(ref name) = field.ident { if let Some(ref name) = field.ident {
Ok(FieldInfo { Ok(FieldInfo {
ordinal, ordinal,
name: &name, name,
generic_ident: syn::Ident::new( generic_ident: syn::Ident::new(
&format!("__{}", strip_raw_ident_prefix(name.to_string())), &format!("__{}", strip_raw_ident_prefix(name.to_string())),
proc_macro2::Span::call_site(), proc_macro2::Span::call_site(),
@ -585,7 +585,7 @@ mod struct_info {
// we use the heuristic: are there *any* generic parameters? // we use the heuristic: are there *any* generic parameters?
// If so, then they might have non-static lifetimes and we can't compare two generic things that *might borrow* // If so, then they might have non-static lifetimes and we can't compare two generic things that *might borrow*
// Therefore, we will generate code that shortcircuits the "comparison" in memoization // Therefore, we will generate code that shortcircuits the "comparison" in memoization
let are_there_generics = self.generics.params.len() > 0; let are_there_generics = !self.generics.params.is_empty();
let (impl_generics, ty_generics, where_clause) = self.generics.split_for_impl(); let (impl_generics, ty_generics, where_clause) = self.generics.split_for_impl();
let all_fields_param = syn::GenericParam::Type( let all_fields_param = syn::GenericParam::Type(

View file

@ -3,9 +3,8 @@ use super::*;
use proc_macro2::TokenStream as TokenStream2; use proc_macro2::TokenStream as TokenStream2;
use quote::{quote, ToTokens, TokenStreamExt}; use quote::{quote, ToTokens, TokenStreamExt};
use syn::{ use syn::{
ext::IdentExt, parse::{Parse, ParseBuffer, ParseStream},
parse::{discouraged::Speculative, Parse, ParseBuffer, ParseStream}, token, Expr, ExprClosure, Ident, LitStr, Result, Token,
token, Error, Expr, ExprClosure, Ident, LitStr, Result, Token,
}; };
// ======================================= // =======================================
@ -32,8 +31,9 @@ impl Parse for Element {
let mut listeners: Vec<ElementAttrNamed> = vec![]; let mut listeners: Vec<ElementAttrNamed> = vec![];
let mut children: Vec<BodyNode> = vec![]; let mut children: Vec<BodyNode> = vec![];
let mut key = None; let mut key = None;
let mut el_ref = None; let mut _el_ref = None;
// todo: more descriptive error handling
while !content.is_empty() { while !content.is_empty() {
if content.peek(Ident) && content.peek2(Token![:]) && !content.peek3(Token![:]) { if content.peek(Ident) && content.peek2(Token![:]) && !content.peek3(Token![:]) {
let name = content.parse::<Ident>()?; let name = content.parse::<Ident>()?;
@ -73,7 +73,7 @@ impl Parse for Element {
todo!("custom namespace not supported") todo!("custom namespace not supported")
} }
"node_ref" => { "node_ref" => {
el_ref = Some(content.parse::<Expr>()?); _el_ref = Some(content.parse::<Expr>()?);
} }
_ => { _ => {
if content.peek(LitStr) { if content.peek(LitStr) {

View file

@ -8,7 +8,7 @@
//! - [ ] Children //! - [ ] Children
//! - [ ] Keys //! - [ ] Keys
use super::{AmbiguousElement, HtmlOrRsx, AS_HTML, AS_RSX}; use super::AmbiguousElement;
use syn::parse::ParseBuffer; use syn::parse::ParseBuffer;
use { use {
proc_macro2::TokenStream as TokenStream2, proc_macro2::TokenStream as TokenStream2,

View file

@ -25,7 +25,3 @@ pub use component::*;
pub use element::*; pub use element::*;
pub use fragment::*; pub use fragment::*;
pub use node::*; pub use node::*;
pub(crate) type HtmlOrRsx = bool;
pub const AS_HTML: bool = true;
pub const AS_RSX: bool = false;