summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorbors-servo <lbergstrom+bors@mozilla.com>2018-03-13 12:21:39 -0400
committerGitHub <noreply@github.com>2018-03-13 12:21:39 -0400
commit22041e13d08dbd4cb0ea777fa540897735d9e7c2 (patch)
tree330e9aafb831b9da9b22896ff49efe91394c8abe /tests
parent9a0edb86548dca98cce6aad9025f5a8fc92a8522 (diff)
parent8c9b3ab4d650bd30b5f50cc85a19621f920f91c6 (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')
-rw-r--r--tests/expectations/tests/issue-1198-alias-rust-const-mod-enum.rs16
-rw-r--r--tests/expectations/tests/issue-1198-alias-rust-enum.rs18
-rw-r--r--tests/headers/issue-1198-alias-rust-const-mod-enum.h13
-rw-r--r--tests/headers/issue-1198-alias-rust-enum.h14
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