cgen: print bool and string correctly in struct

pull/4284/head
Daniel Däschle 2020-04-07 17:52:15 +02:00 committed by GitHub
parent 50d5e23694
commit 4aedef367c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 8 additions and 1 deletions

View File

@ -17,5 +17,8 @@ indent_size = 2
[*.md] [*.md]
trim_trailing_whitespace = false trim_trailing_whitespace = false
[*.txt]
insert_final_newline = false
[Makefile] [Makefile]
indent_style = tab indent_style = tab

View File

@ -2952,6 +2952,8 @@ fn (g mut Gen) gen_str_for_type(sym table.TypeSymbol, styp string) {
g.definitions.write('a.' + field.name) g.definitions.write('a.' + field.name)
if field.typ == table.string_type { if field.typ == table.string_type {
g.definitions.write('.len, a.${field.name}.str') g.definitions.write('.len, a.${field.name}.str')
} else if field.typ == table.bool_type {
g.definitions.write(' == true ? 4 : 5, a.${field.name} == true ? "true" : "false"')
} }
if i < info.fields.len - 1 { if i < info.fields.len - 1 {
g.definitions.write(', ') g.definitions.write(', ')
@ -2963,6 +2965,8 @@ fn (g mut Gen) gen_str_for_type(sym table.TypeSymbol, styp string) {
fn type_to_fmt(typ table.Type) string { fn type_to_fmt(typ table.Type) string {
n := int(typ) n := int(typ)
if n == table.string_type { if n == table.string_type {
return '\'%.*s\''
} else if n == table.bool_type {
return '%.*s' return '%.*s'
} }
return '%d' return '%d'

View File

@ -1,3 +1,3 @@
MyStruct { MyStruct {
s: 6 s: '6'
} }