@@ -565,7 +565,27 @@ fn (mut g Gen) gen_str_for_chan(info ast.Chan, styp string, str_fn_name string)
565565 }
566566 elem_type_name := util.strip_main_name (g.table.get_type_name (g.unwrap_generic (info.elem_type)))
567567 g.definitions.writeln ('${g.static_non_parallel} string ${str_fn_name} (${styp} x);' )
568- g.auto_str_funcs.writeln ('${g.static_non_parallel} string ${str_fn_name} (${styp} x) { return sync__Channel_auto_str(x, _S("${elem_type_name} ")); }' )
568+ g.auto_str_funcs.writeln ('${g.static_non_parallel} string ${str_fn_name} (${styp} x) { return indent_${str_fn_name} (x, 0);}' )
569+ g.definitions.writeln ('${g.static_non_parallel} string indent_${str_fn_name} (${styp} x, ${ast.int_type_name} indent_count);' )
570+ g.auto_str_funcs.writeln ('${g.static_non_parallel} string indent_${str_fn_name} (${styp} x, ${ast.int_type_name} indent_count) {' )
571+ g.auto_str_funcs.writeln ('\t string indents = builtin__string_repeat(_S(" "), indent_count);' )
572+ g.auto_str_funcs.writeln ('\t strings__Builder sb = strings__new_builder(64);' )
573+ g.auto_str_funcs.writeln ('\t strings__Builder_write_string(&sb, _S("chan "));' )
574+ g.auto_str_funcs.writeln ('\t strings__Builder_write_string(&sb, _S("${elem_type_name} "));' )
575+ g.auto_str_funcs.writeln ('\t strings__Builder_write_string(&sb, _S("{\\ n"));' )
576+ g.auto_str_funcs.writeln ('\t strings__Builder_write_string(&sb, indents);' )
577+ g.auto_str_funcs.writeln ('\t strings__Builder_write_string(&sb, _S(" cap: "));' )
578+ g.auto_str_funcs.writeln ('\t strings__Builder_write_string(&sb, builtin__int_str(x->cap));' )
579+ g.auto_str_funcs.writeln ('\t strings__Builder_write_string(&sb, _S(", closed: "));' )
580+ g.auto_str_funcs.writeln ('\t strings__Builder_write_string(&sb, x->closed != 0 ? _S("true") : _S("false"));' )
581+ g.auto_str_funcs.writeln ('\t strings__Builder_write_string(&sb, _S("\\ n"));' )
582+ g.auto_str_funcs.writeln ('\t strings__Builder_write_string(&sb, indents);' )
583+ g.auto_str_funcs.writeln ('\t strings__Builder_write_string(&sb, _S("}"));' )
584+ g.auto_str_funcs.writeln ('\t string res = strings__Builder_str(&sb);' )
585+ g.auto_str_funcs.writeln ('\t strings__Builder_free(&sb);' )
586+ g.auto_str_funcs.writeln ('\t builtin__string_free(&indents);' )
587+ g.auto_str_funcs.writeln ('\t return res;' )
588+ g.auto_str_funcs.writeln ('}' )
569589}
570590
571591fn (mut g Gen) gen_str_for_thread (info ast.Thread, styp string , str_fn_name string ) {
@@ -1265,7 +1285,7 @@ fn data_str(x StrIntpType) string {
12651285}
12661286
12671287fn should_use_indent_func (kind ast.Kind) bool {
1268- return kind in [.struct , .alias, .array, .array_fixed, .map , .sum_type, .interface ]
1288+ return kind in [.struct , .alias, .array, .array_fixed, .map , .sum_type, .interface , .chan ]
12691289}
12701290
12711291fn (mut g Gen) get_enum_type_idx_from_fn_name (fn_name string ) (string , int ) {
0 commit comments