From: Ian Jackson Date: Sat, 24 Jul 2021 11:39:21 +0000 (+0100) Subject: config, wip macro, spans X-Git-Tag: hippotat/1.0.0~490 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ian/git?a=commitdiff_plain;h=f9d5dfde500997168f42123ed020a2ea60fe6cfd;p=hippotat.git config, wip macro, spans Signed-off-by: Ian Jackson --- diff --git a/macros/macros.rs b/macros/macros.rs index 3f249be..bbdb99f 100644 --- a/macros/macros.rs +++ b/macros/macros.rs @@ -32,6 +32,7 @@ pub fn resolve(input: proc_macro::TokenStream) -> proc_macro::TokenStream { let mut names = vec![]; let mut output = vec![]; for field in &fields.named { + let fname = &field.ident; dbg!(field); let mut skl = quote!{ SectionKindList::Ordinary }; let mut method = quote!{ ordinary }; @@ -58,14 +59,13 @@ pub fn resolve(input: proc_macro::TokenStream) -> proc_macro::TokenStream { skl = get_path(tskl); } } - let fname = &field.ident; let fname_string = fname.as_ref().unwrap().to_string(); let fname_lit = Literal::string( &fname_string ); names.push(quote!{ (#fname_lit, #skl), }); - output.push(quote!{ + output.push(quote_spanned!{fname.as_ref().unwrap().span()=> #fname: rctx. #method ( #fname_lit )?, }); eprintln!("{:?} method={:?} skl={:?}", field.ident, method, skl);