- needs_free = true;
- write!(w, "(").unwrap();
- for (idx, field) in fields.unnamed.iter().enumerate() {
- if export_status(&field.attrs) == ExportStatus::TestOnly { continue; }
- types.write_c_type(w, &field.ty, None, false);
- if idx != fields.unnamed.len() - 1 {
- write!(w, ",").unwrap();
+ let mut empty_tuple_variant = false;
+ if fields.unnamed.len() == 1 {
+ let mut empty_check = Vec::new();
+ types.write_c_type(&mut empty_check, &fields.unnamed[0].ty, Some(&gen_types), false);
+ if empty_check.is_empty() {
+ empty_tuple_variant = true;
+ }
+ }
+ if !empty_tuple_variant {
+ needs_free = true;
+ write!(w, "(").unwrap();
+ for (idx, field) in fields.unnamed.iter().enumerate() {
+ if export_status(&field.attrs) == ExportStatus::TestOnly { continue; }
+ types.write_c_type(w, &field.ty, Some(&gen_types), false);
+ if idx != fields.unnamed.len() - 1 {
+ write!(w, ",").unwrap();
+ }