summaryrefslogtreecommitdiff
path: root/src/codegen/mod.rs
diff options
context:
space:
mode:
authorEmilio Cobos Álvarez <emilio@crisal.io>2018-10-11 17:12:16 +0200
committerEmilio Cobos Álvarez <emilio@crisal.io>2018-10-11 17:16:41 +0200
commite0a052a3b181edd83894e0ade15de47e4b1e9b85 (patch)
treeedfda64c339a560a788f1b0113e2805cc9438185 /src/codegen/mod.rs
parent988a9537800a23c045e045f19e02a1674d6a14ef (diff)
ir: Ensure everything agrees in which kind of variation an enum generates.
Diffstat (limited to 'src/codegen/mod.rs')
-rw-r--r--src/codegen/mod.rs16
1 files changed, 2 insertions, 14 deletions
diff --git a/src/codegen/mod.rs b/src/codegen/mod.rs
index dc8271f9..f29a3bc0 100644
--- a/src/codegen/mod.rs
+++ b/src/codegen/mod.rs
@@ -2566,22 +2566,10 @@ impl CodeGenerator for Enum {
}
};
- // ModuleConsts has higher precedence before Rust in order to avoid problems with
- // overlapping match patterns
- let variation = if self.is_constified_enum_module(ctx, item) {
- EnumVariation::ModuleConsts
- } else if self.is_bitfield(ctx, item) {
- EnumVariation::Bitfield
- } else if self.is_rustified_enum(ctx, item) {
- EnumVariation::Rust
- } else if self.is_constified_enum(ctx, item) {
- EnumVariation::Consts
- } else {
- ctx.options().default_enum_style
- };
-
let mut attrs = vec![];
+ let variation = self.computed_enum_variation(ctx, item);
+
// TODO(emilio): Delegate this to the builders?
if variation.is_rust() {
attrs.push(attributes::repr(repr_name));