diff options
author | Emilio Cobos Álvarez <emilio@crisal.io> | 2016-12-22 12:00:47 +0100 |
---|---|---|
committer | Emilio Cobos Álvarez <emilio@crisal.io> | 2016-12-23 11:40:35 +0100 |
commit | 44690e3a5c73f9df364d3548bf367a4198953eac (patch) | |
tree | b76cf91f331b7f4561f1298794388b7668bba484 /libbindgen/src/codegen/mod.rs | |
parent | 4472e0a5e60765611e980795de7c3c3a7e244ad5 (diff) |
codegen: Use the canonical type to generate function signatures.
Diffstat (limited to 'libbindgen/src/codegen/mod.rs')
-rw-r--r-- | libbindgen/src/codegen/mod.rs | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/libbindgen/src/codegen/mod.rs b/libbindgen/src/codegen/mod.rs index 192eb674..e9141b9c 100644 --- a/libbindgen/src/codegen/mod.rs +++ b/libbindgen/src/codegen/mod.rs @@ -2010,14 +2010,10 @@ impl CodeGenerator for Function { } let signature_item = ctx.resolve_item(self.signature()); - let signature = signature_item.kind().expect_type(); + let signature = signature_item.kind().expect_type().canonical_type(ctx); let signature = match *signature.kind() { TypeKind::Function(ref sig) => sig, - TypeKind::ResolvedTypeRef(ref item_id) => { - let item = ctx.resolve_item(*item_id); - return self.codegen(ctx, result, _whitelisted_items, item); - }, - _ => panic!("How?") + _ => panic!("Signature kind is not a Function: {:?}", signature), }; let fndecl = utils::rust_fndecl_from_signature(ctx, signature_item); @@ -2268,7 +2264,7 @@ mod utils { -> P<ast::FnDecl> { use codegen::ToRustTy; - let signature = sig.kind().expect_type(); + let signature = sig.kind().expect_type().canonical_type(ctx); let signature = match *signature.kind() { TypeKind::Function(ref sig) => sig, _ => panic!("How?"), |