From dfcee869ba536e661a0c972b5407ea3a5579d960 Mon Sep 17 00:00:00 2001 From: Vadim Petrochenkov Date: Sun, 6 Dec 2020 02:10:21 +0300 Subject: [PATCH] enum: Do not forget to rename entities in enum discriminants --- src/bindgen/ir/enumeration.rs | 4 +++- tests/expectations/enum_discriminant.c | 4 ++-- tests/expectations/enum_discriminant.compat.c | 4 ++-- tests/expectations/enum_discriminant.cpp | 4 ++-- tests/expectations/enum_discriminant.pyx | 4 ++-- tests/rust/enum_discriminant.toml | 2 ++ 6 files changed, 13 insertions(+), 9 deletions(-) create mode 100644 tests/rust/enum_discriminant.toml diff --git a/src/bindgen/ir/enumeration.rs b/src/bindgen/ir/enumeration.rs index ff41458..220068a 100644 --- a/src/bindgen/ir/enumeration.rs +++ b/src/bindgen/ir/enumeration.rs @@ -479,7 +479,9 @@ impl Item for Enum { for variant in &mut self.variants { reserved::escape(&mut variant.export_name); - + if let Some(discriminant) = &mut variant.discriminant { + discriminant.rename_for_config(config); + } if let VariantBody::Body { ref mut name, ref mut body, diff --git a/tests/expectations/enum_discriminant.c b/tests/expectations/enum_discriminant.c index ea1ae94..181dab1 100644 --- a/tests/expectations/enum_discriminant.c +++ b/tests/expectations/enum_discriminant.c @@ -3,13 +3,13 @@ #include #include -#define FOUR 4 +#define FOURTY_FOUR 4 enum E { A = 1, B = -1, C = (1 + 2), - D = FOUR, + D = FOURTY_FOUR, F = 5, G = (int8_t)54, H = (int8_t)false, diff --git a/tests/expectations/enum_discriminant.compat.c b/tests/expectations/enum_discriminant.compat.c index 2d41668..be57fde 100644 --- a/tests/expectations/enum_discriminant.compat.c +++ b/tests/expectations/enum_discriminant.compat.c @@ -3,7 +3,7 @@ #include #include -#define FOUR 4 +#define FOURTY_FOUR 4 enum E #ifdef __cplusplus @@ -13,7 +13,7 @@ enum E A = 1, B = -1, C = (1 + 2), - D = FOUR, + D = FOURTY_FOUR, F = 5, G = (int8_t)54, H = (int8_t)false, diff --git a/tests/expectations/enum_discriminant.cpp b/tests/expectations/enum_discriminant.cpp index 95a391c..30b383f 100644 --- a/tests/expectations/enum_discriminant.cpp +++ b/tests/expectations/enum_discriminant.cpp @@ -4,13 +4,13 @@ #include #include -static const int8_t FOUR = 4; +static const int8_t FOURTY_FOUR = 4; enum class E : int8_t { A = 1, B = -1, C = (1 + 2), - D = FOUR, + D = FOURTY_FOUR, F = 5, G = (int8_t)54, H = (int8_t)false, diff --git a/tests/expectations/enum_discriminant.pyx b/tests/expectations/enum_discriminant.pyx index 5837a20..6ab1f0e 100644 --- a/tests/expectations/enum_discriminant.pyx +++ b/tests/expectations/enum_discriminant.pyx @@ -6,13 +6,13 @@ cdef extern from *: cdef extern from *: - const int8_t FOUR # = 4 + const int8_t FOURTY_FOUR # = 4 cdef enum: A # = 1, B # = -1, C # = (1 + 2), - D # = FOUR, + D # = FOURTY_FOUR, F # = 5, G # = 54, H # = False, diff --git a/tests/rust/enum_discriminant.toml b/tests/rust/enum_discriminant.toml new file mode 100644 index 0000000..24ebcb1 --- /dev/null +++ b/tests/rust/enum_discriminant.toml @@ -0,0 +1,2 @@ +[export.rename] +"FOUR" = "FOURTY_FOUR"