summaryrefslogtreecommitdiff
path: root/src/codegen/mod.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/codegen/mod.rs')
-rw-r--r--src/codegen/mod.rs8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/codegen/mod.rs b/src/codegen/mod.rs
index 754c2c8b..15aea22a 100644
--- a/src/codegen/mod.rs
+++ b/src/codegen/mod.rs
@@ -118,7 +118,7 @@ fn derives_of_item(item: &Item, ctx: &BindgenContext) -> DerivableTraits {
derivable_traits |= DerivableTraits::DEBUG;
}
- if item.can_derive_default(ctx) {
+ if item.can_derive_default(ctx) && !item.annotations().disallow_default() {
derivable_traits |= DerivableTraits::DEFAULT;
}
@@ -1900,8 +1900,10 @@ impl CodeGenerator for CompInfo {
}
if !derivable_traits.contains(DerivableTraits::DEFAULT) {
- needs_default_impl =
- ctx.options().derive_default && !self.is_forward_declaration();
+ needs_default_impl = ctx.options().derive_default &&
+ !self.is_forward_declaration() &&
+ !ctx.no_default_by_name(item) &&
+ !item.annotations().disallow_default();
}
let all_template_params = item.all_template_params(ctx);