THRIFT-1105. ocaml: OCaml generator does not prefix methods of included structs with their type
This patch fixes the ocaml generator to generate good code when the 'include' Thrift IDL directive is used.
Patch: Joel Raymont
git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1084654 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/compiler/cpp/src/generate/t_ocaml_generator.cc b/compiler/cpp/src/generate/t_ocaml_generator.cc
index 46cb9fb..0b9bfb7 100644
--- a/compiler/cpp/src/generate/t_ocaml_generator.cc
+++ b/compiler/cpp/src/generate/t_ocaml_generator.cc
@@ -1470,8 +1470,13 @@
*/
void t_ocaml_generator::generate_deserialize_struct(ofstream &out,
t_struct* tstruct) {
+ string prefix = "";
+ t_program* program = tstruct->get_program();
+ if (program != NULL && program != program_) {
+ prefix = capitalize(program->get_name()) + "_types.";
+ }
string name = decapitalize(tstruct->get_name());
- out << "(read_" << name << " iprot)";
+ out << "(" << prefix << "read_" << name << " iprot)";
}