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,