Allow generation of manual types in reference options
[ldk-c-bindings] / c-bindings-gen / src / types.rs
index bc42bda05c614ccaf3b20e7673d3f877e0fd3f35..dc8c3b939d3e3c2bf737c60b451ca55c9fedf3cb 100644 (file)
@@ -594,13 +594,8 @@ impl<'mod_lifetime, 'crate_lft: 'mod_lifetime> ImportResolver<'mod_lifetime, 'cr
                                        }
                                },
                                syn::Item::Trait(t) => {
-                                       match export_status(&t.attrs) {
-                                               ExportStatus::Export|ExportStatus::NotImplementable => {
-                                                       if let syn::Visibility::Public(_) = t.vis {
-                                                               declared.insert(t.ident.clone(), DeclType::Trait(t));
-                                                       }
-                                               },
-                                               _ => continue,
+                                       if let syn::Visibility::Public(_) = t.vis {
+                                               declared.insert(t.ident.clone(), DeclType::Trait(t));
                                        }
                                },
                                syn::Item::Mod(m) => {
@@ -2686,17 +2681,14 @@ impl<'a, 'c: 'a> TypeResolver<'a, 'c> {
                                } else { unimplemented!(); }
                        } else if let syn::Type::Path(p_arg) = t {
                                if let Some(resolved) = self.maybe_resolve_path(&p_arg.path, generics) {
-                                       if !self.is_primitive(&resolved) {
+                                       if !self.is_primitive(&resolved) && self.c_type_from_path(&resolved, false, false).is_none() {
                                                if is_ref {
                                                        // We don't currently support outer reference types for non-primitive inners
                                                        return false;
                                                }
                                        }
                                } else {
-                                       if is_ref {
-                                               // We don't currently support outer reference types for non-primitive inners
-                                               return false;
-                                       }
+                                       return false;
                                }
                                if !self.write_c_type_intern(w, t, generics, false, false, false, true, true) { return false; }
                        } else {