THRIFT-2102 constants are not referencing to correct type when included from another thrift file
Patch: Remo Hertig
diff --git a/compiler/cpp/src/generate/t_go_generator.cc b/compiler/cpp/src/generate/t_go_generator.cc
index 0f4951b..4a38885 100644
--- a/compiler/cpp/src/generate/t_go_generator.cc
+++ b/compiler/cpp/src/generate/t_go_generator.cc
@@ -509,6 +509,7 @@
f_consts_ <<
go_package() <<
+ render_includes() <<
go_autogen_comment();
f_const_values_ << endl << "func init() {" << endl;
@@ -767,7 +768,7 @@
indent(out) << value->get_integer();
} else if (type->is_struct() || type->is_xception()) {
out <<
- "&" << publicize(type->get_name()) << "{";
+ "&" << publicize(type_name(type)) << "{";
indent_up();
const vector<t_field*>& fields = ((t_struct*)type)->get_members();
vector<t_field*>::const_iterator f_iter;
diff --git a/lib/go/test/IncludesTest.thrift b/lib/go/test/IncludesTest.thrift
index 4416c09..6b68806 100644
--- a/lib/go/test/IncludesTest.thrift
+++ b/lib/go/test/IncludesTest.thrift
@@ -19,6 +19,9 @@
include "ThriftTest.thrift"
+const ThriftTest.UserId USERID = 42
+const ThriftTest.MapType MAPCONSTANT = {'hello':{}, 'goodnight':{}}
+
struct testStruct {
1: list<ThriftTest.Numberz> listNumbers
}
diff --git a/test/ThriftTest.thrift b/test/ThriftTest.thrift
index be000b6..500f0ea 100644
--- a/test/ThriftTest.thrift
+++ b/test/ThriftTest.thrift
@@ -68,6 +68,8 @@
2: i32 type
}
+typedef map<string,Bonk> MapType
+
struct Bools {
1: bool im_true,
2: bool im_false,