This is an automated email from the ASF dual-hosted git repository.

yuxuan pushed a commit to branch go-compiler-indentation-2
in repository https://gitbox.apache.org/repos/asf/thrift.git

commit f309927eb3a207f92f74045412e41c2a1836ba15
Author: Yuxuan 'fishy' Wang <[email protected]>
AuthorDate: Thu Jun 13 10:13:25 2024 -0700

    go: Fix indentation in compiler
    
    This fixes a small case I missed in 4930caca.
    
    Before:
    
        func NewFoo() *Foo {
               return &Foo{
               DefDef: 10,
    
               DefOpt: 11,
        }
        }
    
    After:
    
        func NewFoo() *Foo {
            return &Foo{
                DefDef: 10,
                DefOpt: 11,
            }
        }
---
 compiler/cpp/src/thrift/generate/t_go_generator.cc | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/compiler/cpp/src/thrift/generate/t_go_generator.cc 
b/compiler/cpp/src/thrift/generate/t_go_generator.cc
index 65574dd0a..a42c71ad5 100644
--- a/compiler/cpp/src/thrift/generate/t_go_generator.cc
+++ b/compiler/cpp/src/thrift/generate/t_go_generator.cc
@@ -1209,19 +1209,25 @@ void 
t_go_generator::generate_go_struct_initializer(ostream& out,
                                                     t_struct* tstruct,
                                                     bool is_args_or_result) {
   out << publicize(type_name(tstruct), is_args_or_result) << "{";
+  indent_up();
   const vector<t_field*>& members = tstruct->get_members();
+  bool empty = true;
   for (auto member : members) {
     bool pointer_field = is_pointer_field(member);
     string publicized_name;
     t_const_value* def_value;
     get_publicized_name_and_def_value(member, &publicized_name, &def_value);
     if (!pointer_field && def_value != nullptr && 
!omit_initialization(member)) {
+      empty = false;
       out << '\n' << indent() << publicized_name << ": "
-          << render_field_initial_value(member, member->get_name(), 
pointer_field) << ","
-          << '\n';
+          << render_field_initial_value(member, member->get_name(), 
pointer_field) << ",";
     }
   }
 
+  indent_down();
+  if (!empty) {
+    out << '\n' << indent();
+  }
   out << "}" << '\n';
 }
 

Reply via email to