table, vfmt: fix typ_to_string + some fixes to vfmt
parent
ebdfe9a9c5
commit
d94d436273
|
@ -448,7 +448,8 @@ fn (mut f Fmt) struct_decl(node ast.StructDecl) {
|
|||
f.write(strings.repeat(` `, max - field.name.len))
|
||||
f.write(f.type_to_str(field.typ))
|
||||
if field.has_default_expr {
|
||||
f.write(' = ${field.default_expr.str()}')
|
||||
f.write(' = ')
|
||||
f.expr(field.default_expr)
|
||||
}
|
||||
// f.write('// $field.pos.line_nr')
|
||||
if field.comment.text != '' && field.comment.pos.line_nr == field.pos.line_nr {
|
||||
|
@ -1053,7 +1054,7 @@ fn (mut f Fmt) struct_init(it ast.StructInit) {
|
|||
if it.fields.len == 0 {
|
||||
// `Foo{}` on one line if there are no fields
|
||||
f.write('$name{}')
|
||||
} else if it.fields.len == 0 {
|
||||
} else if it.is_short {
|
||||
// `Foo{1,2,3}` (short syntax )
|
||||
// if name != '' {
|
||||
f.write('$name{')
|
||||
|
|
|
@ -624,8 +624,12 @@ pub:
|
|||
|
||||
pub fn (table &Table) type_to_str(t Type) string {
|
||||
sym := table.get_type_symbol(t)
|
||||
mut res := sym.name
|
||||
if sym.kind == .multi_return {
|
||||
mut res := '('
|
||||
res = '('
|
||||
if t.flag_is(.optional) {
|
||||
res = '?' + res
|
||||
}
|
||||
mr_info := sym.info as MultiReturn
|
||||
for i, typ in mr_info.types {
|
||||
res += table.type_to_str(typ)
|
||||
|
@ -636,10 +640,9 @@ pub fn (table &Table) type_to_str(t Type) string {
|
|||
res += ')'
|
||||
return res
|
||||
}
|
||||
mut res := sym.name
|
||||
if sym.kind == .array {
|
||||
if sym.kind == .array || 'array_' in res {
|
||||
res = res.replace('array_', '[]')
|
||||
} else if sym.kind == .map {
|
||||
} else if sym.kind == .map || 'map_string_' in res {
|
||||
res = res.replace('map_string_', 'map[string]')
|
||||
}
|
||||
// mod.submod.submod2.Type => submod2.Type
|
||||
|
|
Loading…
Reference in New Issue