From 1b47f8e86d6d957db159794476f54227e8ff8ece Mon Sep 17 00:00:00 2001 From: Stiopa Koltsov Date: Thu, 10 Oct 2024 09:39:41 -0700 Subject: [PATCH] Proper span for fields in derive(Freeze) Summary: Now it shows proper location, but does not show it is coming from `derive(Freeze)` (and it is the same behavior with named fields). Reviewed By: rajneesh Differential Revision: D63841672 fbshipit-source-id: 41dc0b512b5c101dd1fd4793e4bd21352f0f040f --- starlark_derive/src/util.rs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/starlark_derive/src/util.rs b/starlark_derive/src/util.rs index e88cb5b67..5c1be55ca 100644 --- a/starlark_derive/src/util.rs +++ b/starlark_derive/src/util.rs @@ -51,8 +51,11 @@ impl<'a> FieldsUtil<'a> { .iter() .map(|f| f.ident.clone().unwrap()) .collect(), - Fields::Unnamed(unnamed) => (0..unnamed.unnamed.len()) - .map(|i| syn::Ident::new(&format!("f{}", i), Span::call_site())) + Fields::Unnamed(unnamed) => unnamed + .unnamed + .iter() + .enumerate() + .map(|(i, f)| syn::Ident::new(&format!("f{}", i), f.span())) .collect(), Fields::Unit => Vec::new(), }