gen: struct str fixes (#6483)
parent
b999d01de7
commit
d782de5b00
|
@ -320,7 +320,10 @@ fn (mut g Gen) gen_str_for_struct(info table.Struct, styp, str_fn_name string) {
|
||||||
g.auto_str_funcs.writeln('\tfor (int i = 0; i < indent_count; ++i) {')
|
g.auto_str_funcs.writeln('\tfor (int i = 0; i < indent_count; ++i) {')
|
||||||
g.auto_str_funcs.writeln('\t\tindents = string_add(indents, tos_lit(" "));')
|
g.auto_str_funcs.writeln('\t\tindents = string_add(indents, tos_lit(" "));')
|
||||||
g.auto_str_funcs.writeln('\t}')
|
g.auto_str_funcs.writeln('\t}')
|
||||||
g.auto_str_funcs.writeln('\treturn _STR("$clean_struct_v_type_name {\\n"')
|
if info.fields.len == 0 {
|
||||||
|
g.auto_str_funcs.write('\treturn tos_lit("$clean_struct_v_type_name { }");')
|
||||||
|
} else {
|
||||||
|
g.auto_str_funcs.write('\treturn _STR("$clean_struct_v_type_name {\\n"')
|
||||||
for field in info.fields {
|
for field in info.fields {
|
||||||
mut fmt := g.type_to_fmt(field.typ)
|
mut fmt := g.type_to_fmt(field.typ)
|
||||||
if field.typ.is_ptr() {
|
if field.typ.is_ptr() {
|
||||||
|
@ -359,6 +362,7 @@ fn (mut g Gen) gen_str_for_struct(info table.Struct, styp, str_fn_name string) {
|
||||||
}
|
}
|
||||||
g.auto_str_funcs.writeln(',')
|
g.auto_str_funcs.writeln(',')
|
||||||
g.auto_str_funcs.writeln('\t\tindents);')
|
g.auto_str_funcs.writeln('\t\tindents);')
|
||||||
|
}
|
||||||
g.auto_str_funcs.writeln('}')
|
g.auto_str_funcs.writeln('}')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -177,8 +177,8 @@ struct Wrapper4 {
|
||||||
fn test_struct_with_struct_pointer() {
|
fn test_struct_with_struct_pointer() {
|
||||||
b := Foo{}
|
b := Foo{}
|
||||||
w := Wrapper4{&b}
|
w := Wrapper4{&b}
|
||||||
assert '$w' == 'Wrapper4 {\n foo: &Foo {\n }\n}'
|
assert '$w' == 'Wrapper4 {\n foo: &Foo { }\n}'
|
||||||
assert w.str() == 'Wrapper4 {\n foo: &Foo {\n }\n}'
|
assert w.str() == 'Wrapper4 {\n foo: &Foo { }\n}'
|
||||||
}
|
}
|
||||||
|
|
||||||
fn test_struct_with_nil() {
|
fn test_struct_with_nil() {
|
||||||
|
|
Loading…
Reference in New Issue