diff --git a/src/lib.rs b/src/lib.rs index 38a8f1a..393d9cb 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -598,24 +598,27 @@ fn gen_log( // fn(a: usize, b: usize) => "a = {a:?}, b = {b:?}" fn gen_input_format(sig: &Signature) -> String { - let mut input_format = String::new(); - for (i, input) in sig.inputs.iter().enumerate() { - if i > 0 { - input_format.push_str(", "); - } + let mut args = vec![]; + + for input in &sig.inputs { match input { FnArg::Typed(PatType { pat, .. }) => { if let Pat::Ident(pat_ident) = &**pat { - let ident = &pat_ident.ident; - input_format.push_str(&format!("{ident} = {{{ident}:?}}")); + let ident = &pat_ident.ident.to_string(); + // Skip async-trait generated anonymous arguments. + if ident.starts_with("__arg") { + continue; + } + args.push(format!("{ident} = {{{ident}:?}}")); } } FnArg::Receiver(_) => { - input_format.push_str("self"); + args.push("self".to_string()); } } } - input_format + + args.join(", ") } fn gen_output_format() -> String { diff --git a/tests/ui/ok/async-trait-underscore.rs b/tests/ui/ok/async-trait-underscore.rs new file mode 100644 index 0000000..0b818bd --- /dev/null +++ b/tests/ui/ok/async-trait-underscore.rs @@ -0,0 +1,16 @@ +#[async_trait::async_trait] +trait TestTrait { + async fn test(&self, value: String) -> String; +} + +struct Test; + +#[async_trait::async_trait] +impl TestTrait for Test { + #[logcall::logcall] + async fn test(&self, _: String) -> String { + "test".to_string() + } +} + +fn main() {} diff --git a/tests/ui/ok/has-no-argument.rs b/tests/ui/ok/has-no-argument.rs index 9a47bbd..ce55cec 100644 --- a/tests/ui/ok/has-no-argument.rs +++ b/tests/ui/ok/has-no-argument.rs @@ -1,4 +1,7 @@ #[logcall::logcall] fn f() {} +#[logcall::logcall] +fn g(_: i32) {} + fn main() {}