From 11430df7ae96d184a5778f5f6eb3c93e65389eba Mon Sep 17 00:00:00 2001 From: Jens Geyer Date: Fri, 26 Jul 2013 00:23:00 +0200 Subject: [PATCH] THRIFT-2102 constants are not referencing to correct type when included from another thrift file Patch: Remo Hertig --- 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(-) diff --git a/compiler/cpp/src/generate/t_go_generator.cc b/compiler/cpp/src/generate/t_go_generator.cc index 0f4951b0..4a388854 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& fields = ((t_struct*)type)->get_members(); vector::const_iterator f_iter; diff --git a/lib/go/test/IncludesTest.thrift b/lib/go/test/IncludesTest.thrift index 4416c099..6b688062 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 listNumbers } diff --git a/test/ThriftTest.thrift b/test/ThriftTest.thrift index be000b6a..500f0eab 100644 --- a/test/ThriftTest.thrift +++ b/test/ThriftTest.thrift @@ -68,6 +68,8 @@ struct Bonk 2: i32 type } +typedef map MapType + struct Bools { 1: bool im_true, 2: bool im_false, -- 2.17.1