Fold span inside of Ident
diff --git a/codegen/src/main.rs b/codegen/src/main.rs
index a344585..f155fbf 100644
--- a/codegen/src/main.rs
+++ b/codegen/src/main.rs
@@ -892,7 +892,11 @@
                             .collect()
                     }
                     Fields::Unit => {
-                        state.fold_impl.push_str("    _i\n");
+                        if s.ast.ident == "Ident" {
+                            state.fold_impl.push_str("    Ident::new(&_i.to_string(), _visitor.fold_span(_i.span()))\n");
+                        } else {
+                            state.fold_impl.push_str("    _i\n");
+                        }
                         vec![]
                     }
                 };
diff --git a/src/gen/fold.rs b/src/gen/fold.rs
index 1b2372c..0607e92 100644
--- a/src/gen/fold.rs
+++ b/src/gen/fold.rs
@@ -1595,7 +1595,7 @@
 }
 
 pub fn fold_ident<V: Fold + ?Sized>(_visitor: &mut V, _i: Ident) -> Ident {
-    _i
+    Ident::new(&_i.to_string(), _visitor.fold_span(_i.span()))
 }
 # [ cfg ( feature = "full" ) ]
 pub fn fold_impl_item<V: Fold + ?Sized>(_visitor: &mut V, _i: ImplItem) -> ImplItem {