aboutsummaryrefslogtreecommitdiff
path: root/mingling_macros/src/func
diff options
context:
space:
mode:
author魏曹先生 <1992414357@qq.com>2026-08-10 16:04:57 +0800
committer魏曹先生 <1992414357@qq.com>2026-08-10 16:04:57 +0800
commiteebcdf6b163174ec1629d121264c0477652e3323 (patch)
treef3b56721e4159fe4069a4524ce9d1a47c865019d /mingling_macros/src/func
parenta9d5943939261e27e58bcf5cacbb618a0f63e999 (diff)
refactor(macros): clean up clippy lints and simplify code
Diffstat (limited to 'mingling_macros/src/func')
-rw-r--r--mingling_macros/src/func/dispatcher.rs2
-rw-r--r--mingling_macros/src/func/node.rs4
-rw-r--r--mingling_macros/src/func/pack.rs2
-rw-r--r--mingling_macros/src/func/pack_structural.rs3
-rw-r--r--mingling_macros/src/func/program_final_gen.rs1
-rw-r--r--mingling_macros/src/func/r_append.rs16
-rw-r--r--mingling_macros/src/func/r_print.rs8
-rw-r--r--mingling_macros/src/func/register_help.rs19
-rw-r--r--mingling_macros/src/func/suggest.rs9
9 files changed, 36 insertions, 28 deletions
diff --git a/mingling_macros/src/func/dispatcher.rs b/mingling_macros/src/func/dispatcher.rs
index a9e2464..d834c95 100644
--- a/mingling_macros/src/func/dispatcher.rs
+++ b/mingling_macros/src/func/dispatcher.rs
@@ -53,7 +53,7 @@ impl Parse for DispatcherChainInput {
let entry_attrs = input.call(Attribute::parse_outer)?;
let pack = input.parse()?;
- Ok(DispatcherChainInput::Default {
+ Ok(Self::Default {
cmd_attrs,
entry_attrs,
command_name,
diff --git a/mingling_macros/src/func/node.rs b/mingling_macros/src/func/node.rs
index 1b944a1..0b0de58 100644
--- a/mingling_macros/src/func/node.rs
+++ b/mingling_macros/src/func/node.rs
@@ -12,7 +12,7 @@ struct NodeInput {
impl Parse for NodeInput {
fn parse(input: ParseStream) -> SynResult<Self> {
- Ok(NodeInput {
+ Ok(Self {
path: input.parse()?,
})
}
@@ -38,7 +38,7 @@ pub(crate) fn node(input: TokenStream) -> TokenStream {
if s.starts_with('_') {
s.to_string()
} else {
- kebab_case!(s).to_string()
+ kebab_case!(s)
}
})
.collect();
diff --git a/mingling_macros/src/func/pack.rs b/mingling_macros/src/func/pack.rs
index 7206b8e..d85f59e 100644
--- a/mingling_macros/src/func/pack.rs
+++ b/mingling_macros/src/func/pack.rs
@@ -16,7 +16,7 @@ impl Parse for PackInput {
input.parse::<Token![=]>()?;
let inner_type: Type = input.parse()?;
- Ok(PackInput {
+ Ok(Self {
attrs,
type_name,
inner_type,
diff --git a/mingling_macros/src/func/pack_structural.rs b/mingling_macros/src/func/pack_structural.rs
index 9399959..e5b2362 100644
--- a/mingling_macros/src/func/pack_structural.rs
+++ b/mingling_macros/src/func/pack_structural.rs
@@ -6,6 +6,7 @@ use crate::get_global_set;
/// `pack_structural!` — like `pack!` but also marks the type as supporting
/// structured output via `StructuralData`.
+#[allow(clippy::too_many_lines)]
pub(crate) fn pack_structural(input: TokenStream) -> TokenStream {
// Parse same input format as `pack!`
let input_parsed = syn::parse_macro_input!(input as PackStructuralInput);
@@ -159,7 +160,7 @@ impl syn::parse::Parse for PackStructuralInput {
let type_name: Ident = input.parse()?;
input.parse::<syn::Token![=]>()?;
let inner_type: syn::Type = input.parse()?;
- Ok(PackStructuralInput {
+ Ok(Self {
attrs,
type_name,
inner_type,
diff --git a/mingling_macros/src/func/program_final_gen.rs b/mingling_macros/src/func/program_final_gen.rs
index 429e60c..f43f37a 100644
--- a/mingling_macros/src/func/program_final_gen.rs
+++ b/mingling_macros/src/func/program_final_gen.rs
@@ -45,6 +45,7 @@ fn ident_tokens(name: &str) -> proc_macro2::TokenStream {
}
#[allow(clippy::too_many_lines)]
+#[allow(clippy::similar_names)] // You're being quite picky.
pub(crate) fn program_final_gen_impl(_input: TokenStream) -> TokenStream {
let name = syn::Ident::new("ThisProgram", proc_macro2::Span::call_site());
diff --git a/mingling_macros/src/func/r_append.rs b/mingling_macros/src/func/r_append.rs
index 247da27..ffdc9ba 100644
--- a/mingling_macros/src/func/r_append.rs
+++ b/mingling_macros/src/func/r_append.rs
@@ -12,18 +12,18 @@ pub(crate) fn r_append(input: TokenStream) -> TokenStream {
let dst_ident = parsed.dst.clone();
let src_tokens = parsed.src;
- let expanded = match dst_ident {
- Some(dst) => {
+ let expanded = dst_ident.map_or_else(
+ || {
quote! {
- #dst.append_other(#src_tokens);
+ __render_result_buffer.append_other(#src_tokens);
}
- }
- None => {
+ },
+ |dst| {
quote! {
- __render_result_buffer.append_other(#src_tokens);
+ #dst.append_other(#src_tokens);
}
- }
- };
+ },
+ );
expanded.into()
}
diff --git a/mingling_macros/src/func/r_print.rs b/mingling_macros/src/func/r_print.rs
index 20f15b8..06d8a45 100644
--- a/mingling_macros/src/func/r_print.rs
+++ b/mingling_macros/src/func/r_print.rs
@@ -21,10 +21,10 @@ impl Parse for PrintInput {
let dst: Ident = input.parse()?;
let _comma: Token![,] = input.parse()?;
let args: TokenStream2 = input.parse()?;
- Ok(PrintInput::Explicit { dst, args })
+ Ok(Self::Explicit { dst, args })
} else {
let args: TokenStream2 = input.parse()?;
- Ok(PrintInput::Implicit { args })
+ Ok(Self::Implicit { args })
}
}
}
@@ -73,13 +73,13 @@ impl Parse for AppendInput {
let dst: Ident = input.parse()?;
let _comma: Token![,] = input.parse()?;
let src: TokenStream2 = input.parse()?;
- Ok(AppendInput {
+ Ok(Self {
dst: Some(dst),
src,
})
} else {
let src: TokenStream2 = input.parse()?;
- Ok(AppendInput { dst: None, src })
+ Ok(Self { dst: None, src })
}
}
}
diff --git a/mingling_macros/src/func/register_help.rs b/mingling_macros/src/func/register_help.rs
index e715244..d1957a5 100644
--- a/mingling_macros/src/func/register_help.rs
+++ b/mingling_macros/src/func/register_help.rs
@@ -39,21 +39,28 @@ pub(crate) fn register_help(input: TokenStream) -> TokenStream {
let entry_str = help_entry.to_string();
// Check if entry was already pre-inserted by `#[help]` attribute
- let mut helps = get_global_set(&crate::HELP_REQUESTS).lock().unwrap();
- if helps.contains(&entry_str) {
+ let helps = get_global_set(&crate::HELP_REQUESTS);
+ let help_set = helps.lock().unwrap();
+ if help_set.contains(&entry_str) {
// Already registered by `#[help]`, no duplicate check needed
return quote::quote! {}.into();
}
// Check for duplicate variant (different struct, same type)
let variant_name = entry_type.path.segments.last().unwrap().ident.to_string();
- if let Err(err) =
- crate::check_duplicate_variant(&helps, &entry_str, &variant_name, "help", entry_type.span())
- {
+ let dup_check = crate::check_duplicate_variant(
+ &help_set,
+ &entry_str,
+ &variant_name,
+ "help",
+ entry_type.span(),
+ );
+ if let Err(err) = dup_check {
return err.into();
}
- helps.insert(entry_str);
+ drop(help_set);
+ helps.lock().unwrap().insert(entry_str);
quote::quote! {}.into()
}
diff --git a/mingling_macros/src/func/suggest.rs b/mingling_macros/src/func/suggest.rs
index 6613a98..c2841d5 100644
--- a/mingling_macros/src/func/suggest.rs
+++ b/mingling_macros/src/func/suggest.rs
@@ -16,7 +16,7 @@ enum SuggestItem {
impl Parse for SuggestInput {
fn parse(input: ParseStream) -> syn::Result<Self> {
let items = Punctuated::parse_terminated(input)?;
- Ok(SuggestInput { items })
+ Ok(Self { items })
}
}
@@ -27,15 +27,14 @@ impl Parse for SuggestItem {
if input.peek(Token![:]) {
let _colon: Token![:] = input.parse()?;
let value: Expr = input.parse()?;
- Ok(SuggestItem::WithDesc(Box::new((key, value))))
+ Ok(Self::WithDesc(Box::new((key, value))))
} else {
- Ok(SuggestItem::Simple(key))
+ Ok(Self::Simple(key))
}
}
}
-/// 判断表达式是否是一个纯字符串字面量(仅由一对引号包裹)
-fn is_pure_lit_str(expr: &Expr) -> bool {
+const fn is_pure_lit_str(expr: &Expr) -> bool {
matches!(expr, Expr::Lit(lit) if matches!(lit.lit, syn::Lit::Str(_)))
}