THRIFT-2857 C# generator creates uncompilable code for struct constants
Client: C#
Patch: Jens Geyer
Thanks: Stig Bakken for catching this
This closes #289
C#: constant assignments where values are structs did not properly
uppercase field names in the Constants constructor
diff --git a/compiler/cpp/src/generate/t_csharp_generator.cc b/compiler/cpp/src/generate/t_csharp_generator.cc
index 4762873..05a084a 100644
--- a/compiler/cpp/src/generate/t_csharp_generator.cc
+++ b/compiler/cpp/src/generate/t_csharp_generator.cc
@@ -503,6 +503,7 @@
vector<t_field*>::const_iterator f_iter;
const map<t_const_value*, t_const_value*>& val = value->get_map();
map<t_const_value*, t_const_value*>::const_iterator v_iter;
+ prepare_member_name_mapping((t_struct*)type);
for (v_iter = val.begin(); v_iter != val.end(); ++v_iter) {
t_field* field = NULL;
for (f_iter = fields.begin(); f_iter != fields.end(); ++f_iter) {
@@ -517,6 +518,7 @@
string val = render_const_value(out, name, field_type, v_iter->second);
indent(out) << name << "." << prop_name(field) << " = " << val << ";" << endl;
}
+ cleanup_member_name_mapping((t_struct*)type);
} else if (type->is_map()) {
t_type* ktype = ((t_map*)type)->get_key_type();
t_type* vtype = ((t_map*)type)->get_val_type();