Updated Branches:
  refs/heads/master 56a648d0f -> 11430df7a

THRIFT-2102 constants are not referencing to correct type when included from 
another thrift file

Patch: Remo Hertig


Project: http://git-wip-us.apache.org/repos/asf/thrift/repo
Commit: http://git-wip-us.apache.org/repos/asf/thrift/commit/11430df7
Tree: http://git-wip-us.apache.org/repos/asf/thrift/tree/11430df7
Diff: http://git-wip-us.apache.org/repos/asf/thrift/diff/11430df7

Branch: refs/heads/master
Commit: 11430df7ae96d184a5778f5f6eb3c93e65389eba
Parents: 56a648d
Author: Jens Geyer <[email protected]>
Authored: Fri Jul 26 00:23:00 2013 +0200
Committer: Jens Geyer <[email protected]>
Committed: Fri Jul 26 00:23:00 2013 +0200

----------------------------------------------------------------------
 compiler/cpp/src/generate/t_go_generator.cc | 3 ++-
 lib/go/test/IncludesTest.thrift             | 3 +++
 test/ThriftTest.thrift                      | 2 ++
 3 files changed, 7 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/thrift/blob/11430df7/compiler/cpp/src/generate/t_go_generator.cc
----------------------------------------------------------------------
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 @@ void t_go_generator::init_generator()
 
     f_consts_ <<
               go_package() <<
+              render_includes() <<              
               go_autogen_comment();
 
     f_const_values_ << endl << "func init() {" << endl;
@@ -767,7 +768,7 @@ string t_go_generator::render_const_value(t_type* type, 
t_const_value* value, co
         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;

http://git-wip-us.apache.org/repos/asf/thrift/blob/11430df7/lib/go/test/IncludesTest.thrift
----------------------------------------------------------------------
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
 }

http://git-wip-us.apache.org/repos/asf/thrift/blob/11430df7/test/ThriftTest.thrift
----------------------------------------------------------------------
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 @@ struct Bonk
   2: i32 type
 }
 
+typedef map<string,Bonk> MapType
+
 struct Bools {
   1: bool im_true,
   2: bool im_false,

Reply via email to