@@ -2,7 +2,6 @@ use std::collections::HashMap;
22
33use darling:: FromAttributes ;
44use proc_macro:: TokenStream ;
5- use proc_macro2:: Span ;
65use syn:: parse_quote;
76
87use crate :: Flavor ;
@@ -327,14 +326,14 @@ impl Generator for FieldSortingGenerator<'_> {
327326 . generate_udt_type_match ( parse_quote ! ( #crate_path:: UdtTypeCheckErrorKind :: NotUdt ) ) ,
328327 ) ;
329328
330- fn make_visited_flag_ident ( field_name : & str ) -> syn:: Ident {
331- syn:: Ident :: new ( & format ! ( "visited_flag_{}" , field_name) , Span :: call_site ( ) )
329+ fn make_visited_flag_ident ( field_name : & syn :: Ident ) -> syn:: Ident {
330+ syn:: Ident :: new ( & format ! ( "visited_flag_{}" , field_name) , field_name . span ( ) )
332331 }
333332
334333 // Generate a "visited" flag for each field
335- let visited_flag_names = rust_field_names
334+ let visited_flag_names = rust_field_idents
336335 . iter ( )
337- . map ( |s| make_visited_flag_ident ( s ) )
336+ . map ( make_visited_flag_ident)
338337 . collect :: < Vec < _ > > ( ) ;
339338 statements. extend :: < Vec < _ > > ( parse_quote ! {
340339 #( let mut #visited_flag_names = false ; ) *
@@ -347,11 +346,11 @@ impl Generator for FieldSortingGenerator<'_> {
347346 . fields
348347 . iter ( )
349348 . filter ( |f| !f. attrs . ignore_missing )
350- . map ( |f| f . field_name ( ) ) ;
349+ . map ( |f| & f . ident ) ;
351350 // An iterator over visited flags of Rust fields that can't be ignored
352351 // (i.e., if UDT misses a corresponding field, an error should be raised).
353352 let nonignorable_visited_flag_names =
354- nonignorable_rust_field_names. map ( |s| make_visited_flag_ident ( & s ) ) ;
353+ nonignorable_rust_field_names. map ( make_visited_flag_ident) ;
355354
356355 // Generate a variable that counts down visited fields.
357356 let field_count = self . ctx . fields . len ( ) ;
0 commit comments