diff options
Diffstat (limited to 'libbindgen/src/codegen/mod.rs')
-rw-r--r-- | libbindgen/src/codegen/mod.rs | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/libbindgen/src/codegen/mod.rs b/libbindgen/src/codegen/mod.rs index ae59bc52..24b862be 100644 --- a/libbindgen/src/codegen/mod.rs +++ b/libbindgen/src/codegen/mod.rs @@ -6,6 +6,7 @@ use aster; use ir::annotations::FieldAccessorKind; use ir::comp::{CompInfo, CompKind, Field, Method, MethodKind}; use ir::context::{BindgenContext, ItemId}; +use ir::derive::{CanDeriveCopy, CanDeriveDebug}; use ir::enum_ty::{Enum, EnumVariant, EnumVariantValue}; use ir::function::{Function, FunctionSig}; use ir::int::IntKind; @@ -765,12 +766,12 @@ impl CodeGenerator for CompInfo { let is_union = self.kind() == CompKind::Union; let mut derives = vec![]; - let ty = item.expect_type(); - if ty.can_derive_debug(ctx) { + if item.can_derive_debug(ctx, ()) { derives.push("Debug"); } - if item.can_derive_copy(ctx) && !item.annotations().disallow_copy() { + if item.can_derive_copy(ctx, ()) && + !item.annotations().disallow_copy() { derives.push("Copy"); if !applicable_template_args.is_empty() { // FIXME: This requires extra logic if you have a big array in a @@ -895,7 +896,7 @@ impl CodeGenerator for CompInfo { // Try to catch a bitfield contination early. if let (Some(ref mut bitfield_width), Some(width)) = - (current_bitfield_width, field.bitfield()) { + (current_bitfield_width, field.bitfield()) { let layout = current_bitfield_layout.unwrap(); debug!("Testing bitfield continuation {} {} {:?}", *bitfield_width, width, layout); |