Remove check for duplicated discriminants
C++ enum and enum class are allowed to contain multiple enumerator
definitions with the same value. Our enum representation in Rust is
compatible with this too, so there is no need to error on such enums.
enum class Enum {
A = 5,
B = 4,
C = 4, // dup
D, // = 5 dup
};
diff --git a/syntax/discriminant.rs b/syntax/discriminant.rs
index 6a04d88..5e39f63 100644
--- a/syntax/discriminant.rs
+++ b/syntax/discriminant.rs
@@ -133,13 +133,9 @@
}
}
}
- if set.values.insert(discriminant) {
- set.previous = Some(discriminant);
- Ok(discriminant)
- } else {
- let msg = format!("discriminant value `{}` already exists", discriminant);
- Err(Error::new(Span::call_site(), msg))
- }
+ set.values.insert(discriminant);
+ set.previous = Some(discriminant);
+ Ok(discriminant)
}
impl Discriminant {