Explicitly requesting an instantiation
diff --git a/gen/src/write.rs b/gen/src/write.rs
index 4276e9b..b83611a 100644
--- a/gen/src/write.rs
+++ b/gen/src/write.rs
@@ -1056,14 +1056,18 @@
}
} else if let Type::UniquePtr(ptr) = ty {
if let Type::Ident(inner) = &ptr.inner {
- if Atom::from(inner).is_none() && !types.aliases.contains_key(inner) {
+ if Atom::from(inner).is_none()
+ && (!types.aliases.contains_key(inner) || types.explicit_impls.contains(ty))
+ {
out.next_section();
write_unique_ptr(out, inner, types);
}
}
} else if let Type::CxxVector(ptr) = ty {
if let Type::Ident(inner) = &ptr.inner {
- if Atom::from(inner).is_none() && !types.aliases.contains_key(inner) {
+ if Atom::from(inner).is_none()
+ && (!types.aliases.contains_key(inner) || types.explicit_impls.contains(ty))
+ {
out.next_section();
write_cxx_vector(out, ty, inner, types);
}