From b015cd08ea6c7cba40428e3a760365e0feacbf74 Mon Sep 17 00:00:00 2001 From: Chrislearn Young Date: Fri, 1 Dec 2023 16:14:32 +0800 Subject: [PATCH] Fix endpoint parse param `mut pdata` warning and not working --- crates/oapi-macros/src/endpoint/mod.rs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/crates/oapi-macros/src/endpoint/mod.rs b/crates/oapi-macros/src/endpoint/mod.rs index 26aae10c7..bfd75fb3b 100644 --- a/crates/oapi-macros/src/endpoint/mod.rs +++ b/crates/oapi-macros/src/endpoint/mod.rs @@ -190,6 +190,9 @@ fn handle_fn(salvo: &Ident, oapi: &Ident, sig: &Signature) -> syn::Result<(Token let id = &pat.pat; let ty = omit_type_path_lifetimes(ty); let idv = id.to_token_stream().to_string(); + // If id like `mut pdata`, then idv is `pdata`; + let idv = idv.rsplit_once(' ').map(|(_, v)| v.to_owned()).unwrap_or(idv); + let id = Ident::new(&idv, Span::call_site()); let idv = idv.trim_start_matches('_'); extract_ts.push(quote! { let #id: #ty = match <#ty as #salvo::Extractible>::extract_with_arg(__macro_generated_req, #idv).await {