From 18687365975c008e774707a3f42a7836794839db Mon Sep 17 00:00:00 2001 From: unspeaker Date: Sat, 10 May 2025 15:49:46 +0300 Subject: [PATCH] proc: log parse info on give_err --- proc/src/proc_command.rs | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/proc/src/proc_command.rs b/proc/src/proc_command.rs index 502041f..bfe9246 100644 --- a/proc/src/proc_command.rs +++ b/proc/src/proc_command.rs @@ -70,7 +70,8 @@ impl ToTokens for CommandDef { state: &'state #target, iter: &mut ::tengri::dsl::TokenIter<'source> ) -> Option { let mut iter = iter.clone(); - match iter.next() { + let token = iter.next(); + match token { #(#matchers)* _ => None } @@ -154,10 +155,12 @@ impl CommandArm { for (arg, ty) in self.args() { //let take_err = LitStr::new(&format!("{}: missing argument \"{}\" ({})", //quote!{#ident}, quote!{#arg}, quote!{#ty}), Span::call_site()); - let give_err = LitStr::new(&format!("{}: missing value for \"{}\" ({})", - quote!{#ident}, quote!{#arg}, quote!{#ty}), Span::call_site()); + let give_err = format!("{}: missing value for \"{}\" ({}): {{:#?}}", + quote!{#ident}, quote!{#arg}, quote!{#ty}); + let give_err = LitStr::new(&give_err, Span::call_site()); write_quote_to(&mut out, quote! { - #arg: ::tengri::dsl::Context::get(state, &mut iter).expect(#give_err), + #arg: ::tengri::dsl::Context::get(state, &mut iter) + .unwrap_or_else(||panic!(#give_err, token)), }); } out