print specify immutable members
This commit is contained in:
@@ -82,12 +82,17 @@ fn (mut g Generator) gen_class_print_func(stmt ClassDecl) {
|
|||||||
g.out.writeln('for(int i=0; i<indent + 1; i++) printf(" ");')
|
g.out.writeln('for(int i=0; i<indent + 1; i++) printf(" ");')
|
||||||
g.out.write_string('printf("${member.name}: ");')
|
g.out.write_string('printf("${member.name}: ");')
|
||||||
|
|
||||||
|
|
||||||
if member.type != 'string' && g.symbols.lookup_class(member.type) != none {
|
if member.type != 'string' && g.symbols.lookup_class(member.type) != none {
|
||||||
inner_struct_name := mangle_struct(member.type)
|
inner_struct_name := mangle_struct(member.type)
|
||||||
g.out.writeln('print_${inner_struct_name}(s.${member.name}, indent + 1);')
|
g.out.writeln('print_${inner_struct_name}(s.${member.name}, indent + 1);')
|
||||||
} else {
|
} else {
|
||||||
format := get_type_format(member.type)
|
format := get_type_format(member.type)
|
||||||
g.out.write_string('printf("%${format}\\n", s.${member.name}')
|
g.out.write_string('printf("%${format}')
|
||||||
|
if member.is_immutable {
|
||||||
|
g.out.write_string(' (immutable) ')
|
||||||
|
}
|
||||||
|
g.out.write_string('\\n", s.${member.name}')
|
||||||
if member.type == 'string' {
|
if member.type == 'string' {
|
||||||
g.out.write_string('.string')
|
g.out.write_string('.string')
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user