diff options
-rw-r--r-- | src/codegen/mod.rs | 5 | ||||
-rw-r--r-- | tests/expectations/tests/issue-1025-unknown-enum-repr.rs | 12 | ||||
-rw-r--r-- | tests/headers/issue-1025-unknown-enum-repr.hpp | 4 |
3 files changed, 20 insertions, 1 deletions
diff --git a/src/codegen/mod.rs b/src/codegen/mod.rs index 0da01175..895422b0 100644 --- a/src/codegen/mod.rs +++ b/src/codegen/mod.rs @@ -2426,7 +2426,10 @@ impl CodeGenerator for Enum { let repr = self.repr() .and_then(|repr| repr.try_to_rust_ty_or_opaque(ctx, &()).ok()) - .unwrap_or_else(|| helpers::ast_ty::raw_type(ctx, repr_name)); + .unwrap_or_else(|| { + let repr_name = ctx.rust_ident_raw(repr_name); + quote! { #repr_name } + }); let mut builder = EnumBuilder::new( &name, diff --git a/tests/expectations/tests/issue-1025-unknown-enum-repr.rs b/tests/expectations/tests/issue-1025-unknown-enum-repr.rs new file mode 100644 index 00000000..26510910 --- /dev/null +++ b/tests/expectations/tests/issue-1025-unknown-enum-repr.rs @@ -0,0 +1,12 @@ +/* automatically generated by rust-bindgen */ + + +#![allow(dead_code, non_snake_case, non_camel_case_types, non_upper_case_globals)] + + +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct a { + pub _address: u8, +} +pub type a__bindgen_ty_1 = i32; diff --git a/tests/headers/issue-1025-unknown-enum-repr.hpp b/tests/headers/issue-1025-unknown-enum-repr.hpp new file mode 100644 index 00000000..589b3c25 --- /dev/null +++ b/tests/headers/issue-1025-unknown-enum-repr.hpp @@ -0,0 +1,4 @@ + +template <typename> class a { + enum {}; +}; |