chiark / gitweb /
config, wip macro, spans
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 24 Jul 2021 11:39:21 +0000 (12:39 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 24 Jul 2021 11:39:21 +0000 (12:39 +0100)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
macros/macros.rs

index 3f249be6407daf5b7b30a7f739dea38348d3f471..bbdb99fc88b96c16b9830345c7737311533ca49f 100644 (file)
@@ -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);