From a16737a87f74d5642869d3315f6b44a6b0fc91d3 Mon Sep 17 00:00:00 2001 From: Jens Geyer Date: Mon, 13 Jan 2014 19:55:44 +0100 Subject: [PATCH] THRIFT-2311 Go: invalid code generated when exception name is a go keyword Patch: Krzysztof Godlewski --- compiler/cpp/src/generate/t_go_generator.cc | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/compiler/cpp/src/generate/t_go_generator.cc b/compiler/cpp/src/generate/t_go_generator.cc index bf1a03a6..f3d91007 100644 --- a/compiler/cpp/src/generate/t_go_generator.cc +++ b/compiler/cpp/src/generate/t_go_generator.cc @@ -1746,9 +1746,12 @@ void t_go_generator::generate_service_client(t_service* tservice) vector::const_iterator x_iter; for (x_iter = xceptions.begin(); x_iter != xceptions.end(); ++x_iter) { + const std::string varname = variable_name_to_go_name((*x_iter)->get_name()); + const std::string pubname = publicize(varname); + f_service_ << - indent() << "if " << result << "." << publicize((*x_iter)->get_name()) << " != nil {" << endl << - indent() << " " << (*x_iter)->get_name() << " = " << result << "." << publicize((*x_iter)->get_name()) << endl << + indent() << "if " << result << "." << pubname << " != nil {" << endl << + indent() << " " << varname << " = " << result << "." << pubname << endl << indent() << "}" << endl; } -- 2.17.1