summaryrefslogtreecommitdiff
path: root/libbindgen/src/codegen/mod.rs
diff options
context:
space:
mode:
authorEmilio Cobos Álvarez <emilio@crisal.io>2016-12-22 12:00:47 +0100
committerEmilio Cobos Álvarez <emilio@crisal.io>2016-12-23 11:40:35 +0100
commit44690e3a5c73f9df364d3548bf367a4198953eac (patch)
treeb76cf91f331b7f4561f1298794388b7668bba484 /libbindgen/src/codegen/mod.rs
parent4472e0a5e60765611e980795de7c3c3a7e244ad5 (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.rs10
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?"),