THRIFT-3408: correct emitted JSON types
This closes #679
diff --git a/compiler/cpp/src/generate/t_json_generator.cc b/compiler/cpp/src/generate/t_json_generator.cc
index 3f44a82..10aaa64 100644
--- a/compiler/cpp/src/generate/t_json_generator.cc
+++ b/compiler/cpp/src/generate/t_json_generator.cc
@@ -701,8 +701,12 @@
if (ttype->is_xception()) {
return "exception";
}
- //if (ttype->is_base_type() && ((t_base_type*)ttype)->is_binary()) {
- return "binary";
+ if (ttype->is_base_type()) {
+ t_base_type* tbasetype = (t_base_type*)ttype;
+ return tbasetype->is_binary() ? "binary" : t_base_type::t_base_name(tbasetype->get_base());
+ }
+
+ return "(unknown)";
}
string t_json_generator::get_qualified_name(t_type* ttype) {