From 44690e3a5c73f9df364d3548bf367a4198953eac Mon Sep 17 00:00:00 2001 From: Emilio Cobos Álvarez Date: Thu, 22 Dec 2016 12:00:47 +0100 Subject: codegen: Use the canonical type to generate function signatures. --- libbindgen/src/codegen/mod.rs | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) (limited to 'libbindgen/src/codegen/mod.rs') 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 { 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?"), -- cgit v1.2.3