proc: log parse info on give_err

This commit is contained in:
🪞👃🪞 2025-05-10 15:49:46 +03:00
parent ed772b9872
commit 1868736597

View file

@ -70,7 +70,8 @@ impl ToTokens for CommandDef {
state: &'state #target, iter: &mut ::tengri::dsl::TokenIter<'source> state: &'state #target, iter: &mut ::tengri::dsl::TokenIter<'source>
) -> Option<Self> { ) -> Option<Self> {
let mut iter = iter.clone(); let mut iter = iter.clone();
match iter.next() { let token = iter.next();
match token {
#(#matchers)* #(#matchers)*
_ => None _ => None
} }
@ -154,10 +155,12 @@ impl CommandArm {
for (arg, ty) in self.args() { for (arg, ty) in self.args() {
//let take_err = LitStr::new(&format!("{}: missing argument \"{}\" ({})", //let take_err = LitStr::new(&format!("{}: missing argument \"{}\" ({})",
//quote!{#ident}, quote!{#arg}, quote!{#ty}), Span::call_site()); //quote!{#ident}, quote!{#arg}, quote!{#ty}), Span::call_site());
let give_err = LitStr::new(&format!("{}: missing value for \"{}\" ({})", let give_err = format!("{}: missing value for \"{}\" ({}): {{:#?}}",
quote!{#ident}, quote!{#arg}, quote!{#ty}), Span::call_site()); quote!{#ident}, quote!{#arg}, quote!{#ty});
let give_err = LitStr::new(&give_err, Span::call_site());
write_quote_to(&mut out, quote! { 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 out