From 05d07bbc627b59fd07a8764a972b4aac63a46f53 Mon Sep 17 00:00:00 2001 From: 魏曹先生 <1992414357@qq.com> Date: Sat, 16 May 2026 22:17:38 +0800 Subject: Use `default_program_path()` instead of `default_program_ident()` --- mingling_macros/src/program_setup.rs | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) (limited to 'mingling_macros/src/program_setup.rs') diff --git a/mingling_macros/src/program_setup.rs b/mingling_macros/src/program_setup.rs index 57b7e6c..dd32581 100644 --- a/mingling_macros/src/program_setup.rs +++ b/mingling_macros/src/program_setup.rs @@ -3,8 +3,6 @@ use quote::quote; use syn::spanned::Spanned; use syn::{FnArg, Ident, ItemFn, Pat, PatType, ReturnType, Signature, Type, parse_macro_input}; -use crate::DEFAULT_PROGRAM_NAME; - /// Extracts the program parameter from function arguments fn extract_program_param(sig: &Signature) -> syn::Result<(Pat, Type)> { // The function should have exactly one parameter @@ -50,17 +48,13 @@ fn extract_return_type(sig: &Signature) -> syn::Result<()> { } pub fn setup_attr(attr: TokenStream, item: TokenStream) -> TokenStream { - let default_program_ident = crate::default_program_ident(); - // Parse the attribute arguments (e.g., MyProgram from #[program_setup(MyProgram)]) // If no argument is provided, use ThisProgram let (program_name, use_crate_prefix) = if attr.is_empty() { - ( - Ident::new(DEFAULT_PROGRAM_NAME, proc_macro2::Span::call_site()), - true, - ) + (crate::default_program_path(), true) } else { - (parse_macro_input!(attr as Ident), false) + let ident: Ident = parse_macro_input!(attr as Ident); + (quote! { #ident }, false) }; // Parse the function item @@ -110,8 +104,8 @@ pub fn setup_attr(attr: TokenStream, item: TokenStream) -> TokenStream { #[doc(hidden)] #vis struct #struct_name; - impl ::mingling::setup::ProgramSetup<#default_program_ident> for #struct_name { - fn setup(&mut self, program: &mut ::mingling::Program<#default_program_ident>) { + impl ::mingling::setup::ProgramSetup<#program_name> for #struct_name { + fn setup(&mut self, program: &mut ::mingling::Program<#program_name>) { // Call the original function with the actual Program type #fn_name(program); } -- cgit