This reverts commit b4b2a21453
.
pull/12831/head
parent
b4b2a21453
commit
731015cd9b
|
@ -6807,20 +6807,11 @@ fn (mut g Gen) type_default(typ_ ast.Type) string {
|
||||||
|| field_sym.kind in [.array, .map, .string, .bool, .alias, .i8, .i16, .int, .i64, .byte, .u16, .u32, .u64, .char, .voidptr, .byteptr, .charptr, .struct_] {
|
|| field_sym.kind in [.array, .map, .string, .bool, .alias, .i8, .i16, .int, .i64, .byte, .u16, .u32, .u64, .char, .voidptr, .byteptr, .charptr, .struct_] {
|
||||||
field_name := c_name(field.name)
|
field_name := c_name(field.name)
|
||||||
if field.has_default_expr {
|
if field.has_default_expr {
|
||||||
mut expr_str := ''
|
expr_str := g.expr_string_with_cast(field.default_expr, field.default_expr_typ,
|
||||||
if g.table.get_type_symbol(field.typ).kind in [.sum_type, .interface_] {
|
field.typ)
|
||||||
expr_str = g.expr_string_with_cast(field.default_expr,
|
|
||||||
field.default_expr_typ, field.typ)
|
|
||||||
} else {
|
|
||||||
expr_str = g.expr_string(field.default_expr)
|
|
||||||
}
|
|
||||||
init_str += '.$field_name = $expr_str,'
|
init_str += '.$field_name = $expr_str,'
|
||||||
} else {
|
} else {
|
||||||
mut zero_str := g.type_default(field.typ)
|
init_str += '.$field_name = ${g.type_default(field.typ)},'
|
||||||
if zero_str == '{0}' {
|
|
||||||
zero_str = '{EMPTY_STRUCT_INITIALIZATION}'
|
|
||||||
}
|
|
||||||
init_str += '.$field_name = $zero_str,'
|
|
||||||
}
|
}
|
||||||
has_none_zero = true
|
has_none_zero = true
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,21 +0,0 @@
|
||||||
struct Bar {}
|
|
||||||
|
|
||||||
type Fnc = fn ()
|
|
||||||
|
|
||||||
struct Foo {
|
|
||||||
Bar
|
|
||||||
fnc_fn Fnc = voidptr(0)
|
|
||||||
}
|
|
||||||
|
|
||||||
struct App {
|
|
||||||
mut:
|
|
||||||
foo Foo
|
|
||||||
}
|
|
||||||
|
|
||||||
fn test_struct_init_with_complex_fields() {
|
|
||||||
mut app := App{}
|
|
||||||
println(app)
|
|
||||||
ret := '$app'
|
|
||||||
assert ret.contains('Bar: Bar{}')
|
|
||||||
assert ret.contains('fnc_fn: fn ()')
|
|
||||||
}
|
|
Loading…
Reference in New Issue