diff --git a/src/macros/generate/convert/auxiliary/c/function/mod.rs b/src/macros/generate/convert/auxiliary/c/function/mod.rs index 6d1ec71..a21c120 100644 --- a/src/macros/generate/convert/auxiliary/c/function/mod.rs +++ b/src/macros/generate/convert/auxiliary/c/function/mod.rs @@ -29,11 +29,7 @@ impl Function { pub fn to_auxiliary_c(&self, namespaces: &[&Identifier]) -> String { let doc_comments: String = Attribute::to_auxiliary_c_merged(&self.attributes); let ident = self.identifier.to_c_with_path(namespaces); - let inputs: Vec = self - .inputs - .iter() - .map(NamedType::to_auxiliary_c) - .collect(); + let inputs: Vec = self.inputs.iter().map(NamedType::to_auxiliary_c).collect(); let function_output = if let Some(out) = &self.output { let type_name = &out.to_auxiliary_c(true, None); @@ -76,20 +72,23 @@ impl Function { (TokenStream2::default(), TokenStream2::default()) }; + let initial_inputs: Vec = self + .inputs + .iter() + .map(|named_type| (&named_type.r#type, &named_type.name)) + .map(|(r#type, name)| r#type.to_auxiliary_c(false, Some(name))) + .collect(); + let inputs: TokenStream2 = if self.inputs.is_empty() && output.is_empty() { quote! { void } } else if !self.inputs.is_empty() && !output.is_empty() { - let inputs: Vec = self - .inputs - .iter() - .map(|named_type| &named_type.r#type) - .map(|r#type| r#type.to_auxiliary_c(false, None)) - .collect(); quote! { - #output_comma #(#inputs),* + #output_comma #(#initial_inputs),* } } else { - TokenStream2::default() + quote! { + #(#initial_inputs),* + } }; quote! {