diff options
author | bors-servo <lbergstrom+bors@mozilla.com> | 2018-03-13 12:21:39 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-03-13 12:21:39 -0400 |
commit | 22041e13d08dbd4cb0ea777fa540897735d9e7c2 (patch) | |
tree | 330e9aafb831b9da9b22896ff49efe91394c8abe /tests | |
parent | 9a0edb86548dca98cce6aad9025f5a8fc92a8522 (diff) | |
parent | 8c9b3ab4d650bd30b5f50cc85a19621f920f91c6 (diff) |
Auto merge of #1272 - tmfink:issue-1198, r=emilio
Declare precedence on enum types
Fixes issue #1198 where an enum matches the pattern for multiple enum types, such as constified module enum AND rustified enum.
Documents precedence in `Builder` doc comment.
Diffstat (limited to 'tests')
4 files changed, 61 insertions, 0 deletions
diff --git a/tests/expectations/tests/issue-1198-alias-rust-const-mod-enum.rs b/tests/expectations/tests/issue-1198-alias-rust-const-mod-enum.rs new file mode 100644 index 00000000..ed53fdf9 --- /dev/null +++ b/tests/expectations/tests/issue-1198-alias-rust-const-mod-enum.rs @@ -0,0 +1,16 @@ +/* automatically generated by rust-bindgen */ + +#![allow(dead_code, non_snake_case, non_camel_case_types, non_upper_case_globals)] + +pub mod MyDupeEnum { + pub type Type = u32; + pub const A: Type = 0; + pub const A_alias: Type = 0; + pub const B: Type = 1; +} +pub mod MyOtherDupeEnum { + pub type Type = u32; + pub const C: Type = 0; + pub const C_alias: Type = 0; + pub const D: Type = 1; +} diff --git a/tests/expectations/tests/issue-1198-alias-rust-enum.rs b/tests/expectations/tests/issue-1198-alias-rust-enum.rs new file mode 100644 index 00000000..b2902c89 --- /dev/null +++ b/tests/expectations/tests/issue-1198-alias-rust-enum.rs @@ -0,0 +1,18 @@ +/* automatically generated by rust-bindgen */ + +#![allow(dead_code, non_snake_case, non_camel_case_types, non_upper_case_globals)] + +pub const MyDupeEnum_A_alias: MyDupeEnum = MyDupeEnum::A; +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum MyDupeEnum { + A = 0, + B = 1, +} +pub const MyOtherDupeEnum_C_alias: MyOtherDupeEnum = MyOtherDupeEnum::C; +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum MyOtherDupeEnum { + C = 0, + D = 1, +} diff --git a/tests/headers/issue-1198-alias-rust-const-mod-enum.h b/tests/headers/issue-1198-alias-rust-const-mod-enum.h new file mode 100644 index 00000000..944fac31 --- /dev/null +++ b/tests/headers/issue-1198-alias-rust-const-mod-enum.h @@ -0,0 +1,13 @@ +// bindgen-flags: --rustified-enum '.*' --constified-enum-module '.*' + +typedef enum MyDupeEnum { + A = 0, + A_alias = 0, + B, +} MyDupeEnum; + +enum MyOtherDupeEnum { + C = 0, + C_alias = 0, + D, +};
\ No newline at end of file diff --git a/tests/headers/issue-1198-alias-rust-enum.h b/tests/headers/issue-1198-alias-rust-enum.h new file mode 100644 index 00000000..ede44f0a --- /dev/null +++ b/tests/headers/issue-1198-alias-rust-enum.h @@ -0,0 +1,14 @@ +// bindgen-flags: --rustified-enum '.*' + + +typedef enum MyDupeEnum { + A = 0, + A_alias = 0, + B, +} MyDupeEnum; + +enum MyOtherDupeEnum { + C = 0, + C_alias = 0, + D, +};
\ No newline at end of file |