gen: removes space on struct printing (#6535)
parent
c53ebd89b1
commit
2204bad7cf
|
@ -327,9 +327,9 @@ fn (mut g Gen) gen_str_for_struct(info table.Struct, styp, str_fn_name string) {
|
||||||
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}')
|
||||||
if info.fields.len == 0 {
|
if info.fields.len == 0 {
|
||||||
g.auto_str_funcs.write('\treturn tos_lit("$clean_struct_v_type_name { }");')
|
g.auto_str_funcs.write('\treturn tos_lit("$clean_struct_v_type_name{}");')
|
||||||
} else {
|
} else {
|
||||||
g.auto_str_funcs.write('\treturn _STR("$clean_struct_v_type_name {\\n"')
|
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() {
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
pub enum MyEnum {
|
enum MyEnum {
|
||||||
first = 20
|
first = 20
|
||||||
second
|
second
|
||||||
third
|
third
|
||||||
}
|
}
|
||||||
|
|
||||||
pub struct MyStruct {
|
struct MyStruct {
|
||||||
mut:
|
mut:
|
||||||
e MyEnum = .second
|
e MyEnum = .second
|
||||||
}
|
}
|
||||||
|
@ -31,5 +31,5 @@ fn test_generation_of_string_interpolation_method_for_pointer_to_struct_containi
|
||||||
t := &MyStruct{
|
t := &MyStruct{
|
||||||
e: .third
|
e: .third
|
||||||
}
|
}
|
||||||
assert 't: $t' == 't: &MyStruct {\n e: third\n}'
|
assert 't: $t' == 't: &MyStruct{\n e: third\n}'
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
Aaa {
|
Aaa{
|
||||||
test: false
|
test: false
|
||||||
b: Bbb {
|
b: Bbb{
|
||||||
pass: false
|
pass: false
|
||||||
name: ''
|
name: ''
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Bbb {
|
Bbb{
|
||||||
pass: false
|
pass: false
|
||||||
name: ''
|
name: ''
|
||||||
}
|
}
|
|
@ -31,9 +31,9 @@ fn test_interpolation_map_to_string() {
|
||||||
e['2'] = Test{true, 1, 'def'}
|
e['2'] = Test{true, 1, 'def'}
|
||||||
e['3'] = Test{false, 2, 'ghi'}
|
e['3'] = Test{false, 2, 'ghi'}
|
||||||
s := '$e'
|
s := '$e'
|
||||||
assert s.contains("{'1': Test {")
|
assert s.contains("{'1': Test{")
|
||||||
assert s.contains('a: true')
|
assert s.contains('a: true')
|
||||||
assert s.contains("y: 'abc'")
|
assert s.contains("y: 'abc'")
|
||||||
assert s.contains("}, '2': Test {")
|
assert s.contains("}, '2': Test{")
|
||||||
assert s.contains("y: 'def'")
|
assert s.contains("y: 'def'")
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
MyStruct {
|
MyStruct{
|
||||||
s: '6'
|
s: '6'
|
||||||
}
|
}
|
||||||
|
|
|
@ -146,8 +146,8 @@ struct Wrapper {
|
||||||
fn test_struct_with_string_pointer() {
|
fn test_struct_with_string_pointer() {
|
||||||
s := 'test'
|
s := 'test'
|
||||||
w := Wrapper{&s}
|
w := Wrapper{&s}
|
||||||
assert '$w' == 'Wrapper {\n foo: &\'test\'\n}'
|
assert '$w' == 'Wrapper{\n foo: &\'test\'\n}'
|
||||||
assert w.str() == 'Wrapper {\n foo: &\'test\'\n}'
|
assert w.str() == 'Wrapper{\n foo: &\'test\'\n}'
|
||||||
}
|
}
|
||||||
|
|
||||||
struct Wrapper2 {
|
struct Wrapper2 {
|
||||||
|
@ -156,8 +156,8 @@ struct Wrapper2 {
|
||||||
fn test_struct_with_int_pointer() {
|
fn test_struct_with_int_pointer() {
|
||||||
i := 5
|
i := 5
|
||||||
w := Wrapper2{&i}
|
w := Wrapper2{&i}
|
||||||
assert '$w' == 'Wrapper2 {\n foo: &5\n}'
|
assert '$w' == 'Wrapper2{\n foo: &5\n}'
|
||||||
assert w.str() == 'Wrapper2 {\n foo: &5\n}'
|
assert w.str() == 'Wrapper2{\n foo: &5\n}'
|
||||||
}
|
}
|
||||||
|
|
||||||
struct Wrapper3 {
|
struct Wrapper3 {
|
||||||
|
@ -166,8 +166,8 @@ struct Wrapper3 {
|
||||||
fn test_struct_with_bool_pointer() {
|
fn test_struct_with_bool_pointer() {
|
||||||
b := true
|
b := true
|
||||||
w := Wrapper3{&b}
|
w := Wrapper3{&b}
|
||||||
assert '$w' == 'Wrapper3 {\n foo: &true\n}'
|
assert '$w' == 'Wrapper3{\n foo: &true\n}'
|
||||||
assert w.str() == 'Wrapper3 {\n foo: &true\n}'
|
assert w.str() == 'Wrapper3{\n foo: &true\n}'
|
||||||
}
|
}
|
||||||
|
|
||||||
struct Foo {}
|
struct Foo {}
|
||||||
|
@ -177,14 +177,14 @@ 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}'
|
assert '$w' == 'Wrapper4{\n foo: &Foo{}\n}'
|
||||||
assert w.str() == 'Wrapper4 {\n foo: &Foo { }\n}'
|
assert w.str() == 'Wrapper4{\n foo: &Foo{}\n}'
|
||||||
}
|
}
|
||||||
|
|
||||||
fn test_struct_with_nil() {
|
fn test_struct_with_nil() {
|
||||||
w := Wrapper4{}
|
w := Wrapper4{}
|
||||||
assert '$w' == 'Wrapper4 {\n foo: &nil\n}'
|
assert '$w' == 'Wrapper4{\n foo: &nil\n}'
|
||||||
assert w.str() == 'Wrapper4 {\n foo: &nil\n}'
|
assert w.str() == 'Wrapper4{\n foo: &nil\n}'
|
||||||
}
|
}
|
||||||
|
|
||||||
struct Wrapper5 {
|
struct Wrapper5 {
|
||||||
|
@ -193,8 +193,8 @@ struct Wrapper5 {
|
||||||
fn test_struct_with_f32_pointer() {
|
fn test_struct_with_f32_pointer() {
|
||||||
i := f32(5.1)
|
i := f32(5.1)
|
||||||
w := Wrapper5{&i}
|
w := Wrapper5{&i}
|
||||||
assert '$w' == 'Wrapper5 {\n foo: &5.1\n}'
|
assert '$w' == 'Wrapper5{\n foo: &5.1\n}'
|
||||||
assert w.str() == 'Wrapper5 {\n foo: &5.1\n}'
|
assert w.str() == 'Wrapper5{\n foo: &5.1\n}'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -206,8 +206,8 @@ struct ArrayWithStruct {
|
||||||
}
|
}
|
||||||
fn test_array_with_struct() {
|
fn test_array_with_struct() {
|
||||||
a := ArrayWithStruct{[TestStruct{}]}
|
a := ArrayWithStruct{[TestStruct{}]}
|
||||||
assert a.str() == 'ArrayWithStruct {\n foo: [TestStruct {\n x: 0\n }]\n}'
|
assert a.str() == 'ArrayWithStruct{\n foo: [TestStruct{\n x: 0\n }]\n}'
|
||||||
assert '$a' == 'ArrayWithStruct {\n foo: [TestStruct {\n x: 0\n }]\n}'
|
assert '$a' == 'ArrayWithStruct{\n foo: [TestStruct{\n x: 0\n }]\n}'
|
||||||
}
|
}
|
||||||
|
|
||||||
struct MapWithStruct {
|
struct MapWithStruct {
|
||||||
|
@ -215,6 +215,6 @@ struct MapWithStruct {
|
||||||
}
|
}
|
||||||
fn test_map_with_struct() {
|
fn test_map_with_struct() {
|
||||||
a := MapWithStruct{{'test': TestStruct{}}}
|
a := MapWithStruct{{'test': TestStruct{}}}
|
||||||
assert a.str() == 'MapWithStruct {\n foo: {\'test\': TestStruct {\n x: 0\n }}\n}'
|
assert a.str() == 'MapWithStruct{\n foo: {\'test\': TestStruct{\n x: 0\n }}\n}'
|
||||||
assert '$a' == 'MapWithStruct {\n foo: {\'test\': TestStruct {\n x: 0\n }}\n}'
|
assert '$a' == 'MapWithStruct{\n foo: {\'test\': TestStruct{\n x: 0\n }}\n}'
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,11 +20,11 @@ fn test_array_of_structs_interpolation() {
|
||||||
Man{'Bilbo Baggins', 111, ['exploring', 'hiding']},
|
Man{'Bilbo Baggins', 111, ['exploring', 'hiding']},
|
||||||
]
|
]
|
||||||
s := '$people' // the compiler should generate code for both a) and b)
|
s := '$people' // the compiler should generate code for both a) and b)
|
||||||
assert s.contains('Man {')
|
assert s.contains('Man{')
|
||||||
assert s.contains("name: 'Superman'")
|
assert s.contains("name: 'Superman'")
|
||||||
assert s.contains('age: 30')
|
assert s.contains('age: 30')
|
||||||
assert s.contains("'being nice'")
|
assert s.contains("'being nice'")
|
||||||
assert s.contains('}, Man {')
|
assert s.contains('}, Man{')
|
||||||
assert s.contains("name: 'Bilbo Baggins'")
|
assert s.contains("name: 'Bilbo Baggins'")
|
||||||
assert s.contains('age: 111')
|
assert s.contains('age: 111')
|
||||||
assert s.contains("interests: ['exploring', 'hiding']")
|
assert s.contains("interests: ['exploring', 'hiding']")
|
||||||
|
|
|
@ -10,7 +10,7 @@ struct Man {
|
||||||
fn test_default_struct_string_interpolation() {
|
fn test_default_struct_string_interpolation() {
|
||||||
superman := Man{'Superman', 30, ['flying', 'fighting evil', 'being nice']}
|
superman := Man{'Superman', 30, ['flying', 'fighting evil', 'being nice']}
|
||||||
s := '$superman'
|
s := '$superman'
|
||||||
assert s.starts_with('Man {')
|
assert s.starts_with('Man{')
|
||||||
assert s.contains("name: 'Superman'")
|
assert s.contains("name: 'Superman'")
|
||||||
assert s.contains('age: 30')
|
assert s.contains('age: 30')
|
||||||
assert s.contains('interests: [')
|
assert s.contains('interests: [')
|
||||||
|
@ -29,7 +29,7 @@ fn test_fixed_array_struct_string_interpolation() {
|
||||||
x := 2.32
|
x := 2.32
|
||||||
ctx.vb = [1.1, x, 3.3, 4.4, 5.0, 6.0, 7.0, 8.9]!!
|
ctx.vb = [1.1, x, 3.3, 4.4, 5.0, 6.0, 7.0, 8.9]!!
|
||||||
s := '$ctx'
|
s := '$ctx'
|
||||||
assert s.starts_with('Context {')
|
assert s.starts_with('Context{')
|
||||||
assert s.contains('vb: [1.1, 2.32, 3.3, 4.4, 5, 6, 7, 8.9]')
|
assert s.contains('vb: [1.1, 2.32, 3.3, 4.4, 5, 6, 7, 8.9]')
|
||||||
assert s.ends_with('}')
|
assert s.ends_with('}')
|
||||||
}
|
}
|
||||||
|
@ -45,7 +45,7 @@ fn test_struct_map_field_string_interpolation() {
|
||||||
dict: {'a': int(1), 'b': 2}
|
dict: {'a': int(1), 'b': 2}
|
||||||
}
|
}
|
||||||
s := '$info'
|
s := '$info'
|
||||||
assert s.starts_with('Info {')
|
assert s.starts_with('Info{')
|
||||||
assert s.contains("name: 'test'")
|
assert s.contains("name: 'test'")
|
||||||
assert s.contains("dict: {'a': 1, 'b': 2}")
|
assert s.contains("dict: {'a': 1, 'b': 2}")
|
||||||
assert s.ends_with('}')
|
assert s.ends_with('}')
|
||||||
|
|
|
@ -16,11 +16,11 @@ fn test_vargs_string_interpolation() {
|
||||||
man := Man{'Me', 38, ['programming', 'reading', 'hiking']}
|
man := Man{'Me', 38, ['programming', 'reading', 'hiking']}
|
||||||
superman := Man{'Superman', 30, ['flying', 'fighting evil', 'being nice']}
|
superman := Man{'Superman', 30, ['flying', 'fighting evil', 'being nice']}
|
||||||
results := my_variadic_function(superman, man)
|
results := my_variadic_function(superman, man)
|
||||||
assert results.contains('Man {')
|
assert results.contains('Man{')
|
||||||
//
|
//
|
||||||
assert results.contains("name: 'Superman'")
|
assert results.contains("name: 'Superman'")
|
||||||
assert results.contains('age: 30')
|
assert results.contains('age: 30')
|
||||||
assert results.contains('}, Man {')
|
assert results.contains('}, Man{')
|
||||||
//
|
//
|
||||||
assert results.contains("interests: ['programming'")
|
assert results.contains("interests: ['programming'")
|
||||||
assert results.contains("name: 'Me'")
|
assert results.contains("name: 'Me'")
|
||||||
|
|
|
@ -20,8 +20,8 @@ fn test_string_st_str() {
|
||||||
|
|
||||||
fn test_struct_st_str() {
|
fn test_struct_st_str() {
|
||||||
a := ST(Abc{})
|
a := ST(Abc{})
|
||||||
assert '$a' == 'ST(Abc {\n foo: 0\n bar: false\n str: \'\'\n})'
|
assert '$a' == 'ST(Abc{\n foo: 0\n bar: false\n str: \'\'\n})'
|
||||||
assert a.str() == 'ST(Abc {\n foo: 0\n bar: false\n str: \'\'\n})'
|
assert a.str() == 'ST(Abc{\n foo: 0\n bar: false\n str: \'\'\n})'
|
||||||
}
|
}
|
||||||
|
|
||||||
fn test_bool_st_str() {
|
fn test_bool_st_str() {
|
||||||
|
@ -36,21 +36,21 @@ struct Container {
|
||||||
|
|
||||||
fn test_in_struct() {
|
fn test_in_struct() {
|
||||||
c := Container{ST(0)}
|
c := Container{ST(0)}
|
||||||
assert '$c' == 'Container {\n st: ST(0)\n}'
|
assert '$c' == 'Container{\n st: ST(0)\n}'
|
||||||
assert c.str() == 'Container {\n st: ST(0)\n}'
|
assert c.str() == 'Container{\n st: ST(0)\n}'
|
||||||
}
|
}
|
||||||
|
|
||||||
fn test_unknown_value() {
|
fn test_unknown_value() {
|
||||||
c := Container{}
|
c := Container{}
|
||||||
assert '$c' == 'Container {\n st: unknown sum type value\n}'
|
assert '$c' == 'Container{\n st: unknown sum type value\n}'
|
||||||
assert c.str() == 'Container {\n st: unknown sum type value\n}'
|
assert c.str() == 'Container{\n st: unknown sum type value\n}'
|
||||||
}
|
}
|
||||||
|
|
||||||
fn test_nested_in_struct() {
|
fn test_nested_in_struct() {
|
||||||
abc := Abc{}
|
abc := Abc{}
|
||||||
c := Container{ST(abc)}
|
c := Container{ST(abc)}
|
||||||
assert '$c' == 'Container {\n st: ST(Abc {\n foo: 0\n bar: false\n str: \'\'\n })\n}'
|
assert '$c' == 'Container{\n st: ST(Abc{\n foo: 0\n bar: false\n str: \'\'\n })\n}'
|
||||||
assert c.str() == 'Container {\n st: ST(Abc {\n foo: 0\n bar: false\n str: \'\'\n })\n}'
|
assert c.str() == 'Container{\n st: ST(Abc{\n foo: 0\n bar: false\n str: \'\'\n })\n}'
|
||||||
}
|
}
|
||||||
|
|
||||||
fn test_pointer() {
|
fn test_pointer() {
|
||||||
|
@ -72,6 +72,6 @@ struct HolaContainer {
|
||||||
|
|
||||||
fn test_custom_str_method() {
|
fn test_custom_str_method() {
|
||||||
h := HolaContainer{}
|
h := HolaContainer{}
|
||||||
assert h.str() == 'HolaContainer {\n h: Hola\n}'
|
assert h.str() == 'HolaContainer{\n h: Hola\n}'
|
||||||
assert '$h' == 'HolaContainer {\n h: Hola\n}'
|
assert '$h' == 'HolaContainer{\n h: Hola\n}'
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue