diff --git a/compiler/fn.v b/compiler/fn.v index 7d5cb054a4..4899a1f02e 100644 --- a/compiler/fn.v +++ b/compiler/fn.v @@ -690,8 +690,7 @@ fn (p mut Parser) fn_call_args(f *Fn) *Fn { } typ := p.bool_expression() // TODO temporary hack to allow println(777) - if i == 0 && f.name == 'println' && typ != 'string' - && typ != 'void' { + if i == 0 && f.name == 'println' && typ != 'string' && typ != 'void' { // If we dont check for void, then V will compile "println(procedure())" T := p.table.find_type(typ) if typ == 'u8' { @@ -706,7 +705,7 @@ fn (p mut Parser) fn_call_args(f *Fn) *Fn { else { // Make sure this type has a `str()` method if !T.has_method('str') { - if ((*T).fields.len > 0) { + if T.fields.len > 0 { mut index := p.cgen.cur_line.len - 1 for index > 0 && p.cgen.cur_line[index] != ` ` { index-- } name := p.cgen.cur_line.right(index + 1) @@ -714,7 +713,7 @@ fn (p mut Parser) fn_call_args(f *Fn) *Fn { p.error('`$typ` needs to have method `str() string` to be printable') } p.cgen.cur_line = p.cgen.cur_line.left(index) - p.create_type_string(*T, name) + p.create_type_string(T, name) p.cgen.cur_line.replace(typ, '') p.next() return p.fn_call_args(f) diff --git a/compiler/scanner.v b/compiler/scanner.v index 6941141cc0..d3a8a1dfa4 100644 --- a/compiler/scanner.v +++ b/compiler/scanner.v @@ -677,13 +677,13 @@ fn (s mut Scanner) get_opening_bracket() int { return pos } +// Foo { bar: 3, baz: 'hi' } => '{ bar: 3, baz: "hi" }' fn (s mut Scanner) create_type_string(T Type, name string) { line := s.line_nr inside_string := s.inside_string mut newtext := '\'{ ' start := s.get_opening_bracket() + 1 end := s.pos - for i, field in T.fields { if i != 0 { newtext += ', ' @@ -699,4 +699,4 @@ fn (s mut Scanner) create_type_string(T Type, name string) { fn (p mut Parser) create_type_string(T Type, name string) { p.scanner.create_type_string(T, name) -} \ No newline at end of file +}