summaryrefslogtreecommitdiff
path: root/src/codegen
diff options
context:
space:
mode:
authorEmilio Cobos Álvarez <emilio@crisal.io>2017-06-16 21:38:35 +0200
committerEmilio Cobos Álvarez <emilio@crisal.io>2017-06-16 21:41:08 +0200
commitda2bc039c12fcbffe100f570bd6c61314d29dc75 (patch)
treec1685aecd7399800a2c9c14fba703b6ba9504e87 /src/codegen
parent56a46b20b799962418a6c741439105f7e016c12c (diff)
codegen: Respect prepend_enum_name in constified variants.
Fixes #755
Diffstat (limited to 'src/codegen')
-rw-r--r--src/codegen/mod.rs15
1 files changed, 11 insertions, 4 deletions
diff --git a/src/codegen/mod.rs b/src/codegen/mod.rs
index 86aafa39..8d979dce 100644
--- a/src/codegen/mod.rs
+++ b/src/codegen/mod.rs
@@ -2264,7 +2264,8 @@ impl CodeGenerator for Enum {
builder = builder.with_attr(derives);
}
- fn add_constant<'a>(enum_: &Type,
+ fn add_constant<'a>(ctx: &BindgenContext,
+ enum_: &Type,
// Only to avoid recomputing every time.
enum_canonical_name: &str,
// May be the same as "variant" if it's because the
@@ -2275,7 +2276,11 @@ impl CodeGenerator for Enum {
enum_rust_ty: P<ast::Ty>,
result: &mut CodegenResult<'a>) {
let constant_name = if enum_.name().is_some() {
- format!("{}_{}", enum_canonical_name, variant_name)
+ if ctx.options().prepend_enum_name {
+ format!("{}_{}", enum_canonical_name, variant_name)
+ } else {
+ variant_name.into()
+ }
} else {
variant_name.into()
};
@@ -2358,7 +2363,8 @@ impl CodeGenerator for Enum {
};
let existing_variant_name = entry.get();
- add_constant(enum_ty,
+ add_constant(ctx,
+ enum_ty,
&name,
&*mangled_name,
existing_variant_name,
@@ -2397,7 +2403,8 @@ impl CodeGenerator for Enum {
variant_name))
};
- add_constant(enum_ty,
+ add_constant(ctx,
+ enum_ty,
&name,
&mangled_name,
&variant_name,