Fix default fold_ident of raw identifiers
diff --git a/codegen/src/main.rs b/codegen/src/main.rs
index 44b9d8b..5c2f683 100644
--- a/codegen/src/main.rs
+++ b/codegen/src/main.rs
@@ -849,12 +849,11 @@
                     }
                     Fields::Unit => {
                         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");
+                            state.fold_impl.push_str("    let mut _i = _i;\n");
+                            state.fold_impl.push_str("    let span = _visitor.fold_span(_i.span());\n");
+                            state.fold_impl.push_str("    _i.set_span(span);\n");
                         }
+                        state.fold_impl.push_str("    _i\n");
                         vec![]
                     }
                 };