diff options
author | Jens Geyer <jensg@apache.org> | 2014-11-26 20:56:58 +0100 |
---|---|---|
committer | Jens Geyer <jensg@apache.org> | 2014-11-28 00:54:55 +0100 |
commit | eed6a6d657a131fde14b994fc8f18491c058bfe4 (patch) | |
tree | 628f661fe22bd0806cab7528adf5a078c5110ce1 /compiler | |
parent | 1e7971cfff020be14bd30114f0dfe264797f259a (diff) | |
download | thrift-eed6a6d657a131fde14b994fc8f18491c058bfe4.tar.gz |
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
Diffstat (limited to 'compiler')
-rw-r--r-- | compiler/cpp/src/generate/t_csharp_generator.cc | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/compiler/cpp/src/generate/t_csharp_generator.cc b/compiler/cpp/src/generate/t_csharp_generator.cc index 4762873a0..05a084acd 100644 --- a/compiler/cpp/src/generate/t_csharp_generator.cc +++ b/compiler/cpp/src/generate/t_csharp_generator.cc @@ -503,6 +503,7 @@ void t_csharp_generator::print_const_def_value(std::ofstream& out, 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 @@ void t_csharp_generator::print_const_def_value(std::ofstream& out, 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(); |