Raise error on repeated definitions of same enum
diff --git a/macro/src/clang.rs b/macro/src/clang.rs
index 23ea8ad..6f9a90a 100644
--- a/macro/src/clang.rs
+++ b/macro/src/clang.rs
@@ -136,8 +136,20 @@
idx = None;
for (i, enm) in variants_from_header.iter().enumerate() {
if enm.name.cxx == **name && enm.name.namespace.iter().eq(&*namespace) {
- idx = Some(i);
- break;
+ if enm.variants.is_empty() {
+ idx = Some(i);
+ break;
+ } else {
+ let span = &enm.variants_from_header_attr;
+ let mut msg = "found multiple C++ definitions of enum ".to_owned();
+ for name in &enm.name.namespace {
+ msg += &name.to_string();
+ msg += "::";
+ }
+ msg += &enm.name.cxx.to_string();
+ cx.error(span, msg);
+ return;
+ }
}
}
if idx.is_none() {