Repository: thrift
Updated Branches:
  refs/heads/master 91b3b1a6b -> 5588a569d


THRIFT-2555 excessive "unused field" comments
Client: Go
Patch: Jens Geyer


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

Branch: refs/heads/master
Commit: eb1e1d5567cabe4a4f7f58c380f651325cdba77e
Parents: 91b3b1a
Author: Jens Geyer <[email protected]>
Authored: Fri May 30 17:51:14 2014 +0200
Committer: Jens Geyer <[email protected]>
Committed: Fri May 30 17:53:45 2014 +0200

----------------------------------------------------------------------
 compiler/cpp/src/generate/t_go_generator.cc | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/thrift/blob/eb1e1d55/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 c581ffa..19f502d 100644
--- a/compiler/cpp/src/generate/t_go_generator.cc
+++ b/compiler/cpp/src/generate/t_go_generator.cc
@@ -1144,9 +1144,16 @@ void 
t_go_generator::generate_go_struct_definition(ofstream& out,
         int sorted_keys_pos = 0;
 
         for (m_iter = sorted_members.begin(); m_iter != sorted_members.end(); 
++m_iter) {
-            for (; sorted_keys_pos != (*m_iter)->get_key(); sorted_keys_pos++) 
{
-                if (sorted_keys_pos != 0) {
-                    indent(out) << "// unused field # " << sorted_keys_pos << 
endl;
+            if( sorted_keys_pos != (*m_iter)->get_key()) {
+                int first_unused = std::max(1,sorted_keys_pos++);
+                while( sorted_keys_pos != (*m_iter)->get_key()) {
+                    ++sorted_keys_pos;
+                }
+                int last_unused = sorted_keys_pos - 1;
+                if (first_unused < last_unused) {
+                    indent(out) << "// unused fields # " << first_unused << " 
to "<< last_unused << endl;
+                } else if (first_unused == last_unused) {
+                    indent(out) << "// unused field # " << first_unused << 
endl;
                 }
             }
 

Reply via email to