From f388c0d91e63a43899d3188370c4256ae0f2e7cb Mon Sep 17 00:00:00 2001 From: Matt Corallo Date: Fri, 24 Jun 2022 01:18:00 +0000 Subject: [PATCH] Correctly define the `native` type alias for enums with generic params --- c-bindings-gen/src/main.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/c-bindings-gen/src/main.rs b/c-bindings-gen/src/main.rs index 279424e..b21c8d8 100644 --- a/c-bindings-gen/src/main.rs +++ b/c-bindings-gen/src/main.rs @@ -1661,7 +1661,10 @@ fn writeln_enum<'a, 'b, W: std::io::Write>(w: &mut W, e: &'a syn::ItemEnum, type writeln!(&mut constr, "}}").unwrap(); writeln!(w, ",").unwrap(); } - writeln!(w, "}}\nuse {}::{} as native{};\nimpl {} {{", types.module_path, e.ident, e.ident, e.ident).unwrap(); + writeln!(w, "}}\nuse {}::{} as {}Import;", types.module_path, e.ident, e.ident).unwrap(); + write!(w, "pub(crate) type native{} = {}Import", e.ident, e.ident).unwrap(); + maybe_write_generics(w, &e.generics, &types, true); + writeln!(w, ";\n\nimpl {} {{", e.ident).unwrap(); macro_rules! write_conv { ($fn_sig: expr, $to_c: expr, $ref: expr) => { -- 2.30.2