From c437cff08f0013aa832d2efa871539f5d2a04891 Mon Sep 17 00:00:00 2001 From: alisdair sullivan Date: Mon, 14 Jul 2014 21:57:14 -0700 Subject: [PATCH] THRIFT-2627:erlang backend doesn't support corecursive structs client: erlang patch: anthony molinari add additional type specifications to generated erlang files to support corecursive structs --- compiler/cpp/src/generate/t_erl_generator.cc | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/compiler/cpp/src/generate/t_erl_generator.cc b/compiler/cpp/src/generate/t_erl_generator.cc index ae1a1221..67242eaf 100644 --- a/compiler/cpp/src/generate/t_erl_generator.cc +++ b/compiler/cpp/src/generate/t_erl_generator.cc @@ -508,7 +508,7 @@ string t_erl_generator::render_member_type(t_field * field) { } else if (type->is_enum()) { return "integer()"; } else if (type->is_struct() || type->is_xception()) { - return "#" + uncapitalize(type->get_name()) + "{}"; + return uncapitalize(type->get_name()) + "()"; } else if (type->is_map()) { return "dict()"; } else if (type->is_set()) { @@ -577,7 +577,10 @@ void t_erl_generator::generate_erl_struct_definition(ostream& out, t_struct* tst } buf << "})."; - out << buf.str() << endl << endl; + out << buf.str() << endl; + out << + "-type "+type_name (tstruct) << "() :: #" + type_name (tstruct) + "{}." + << endl << endl; } /** -- 2.17.1