- types.write_c_type_in_generic_param(w, &syn::parse_quote!(#type_ident), Some(&gen_types), false);
+ if types.understood_c_type(&syn::parse_quote!(#type_ident), Some(&gen_types)) {
+ types.write_c_type_in_generic_param(w, &syn::parse_quote!(#type_ident), Some(&gen_types), false);
+ } else {
+ if let syn::PathArguments::AngleBracketed(args) = generics_impld {
+ if let syn::GenericArgument::Type(ty) = &args.args[idx] {
+ types.write_c_type_in_generic_param(w, &ty, Some(&gen_types), false);
+ }
+ }
+ }