Skip to content

Commit fe007f9

Browse files
authored
gen: fix type_name for sumtype/interface pointers (#8769)
1 parent 4213851 commit fe007f9

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

vlib/v/gen/c/fn.v

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -534,13 +534,15 @@ fn (mut g Gen) method_call(node ast.CallExpr) {
534534
if left_sym.kind == .sum_type && node.name == 'type_name' {
535535
g.write('tos3( /* $left_sym.name */ v_typeof_sumtype_${typ_sym.cname}( (')
536536
g.expr(node.left)
537-
g.write(').typ ))')
537+
dot := if node.left_type.is_ptr() { '->' } else { '.' }
538+
g.write(')${dot}typ ))')
538539
return
539540
}
540541
if left_sym.kind == .interface_ && node.name == 'type_name' {
541542
g.write('tos3( /* $left_sym.name */ v_typeof_interface_${typ_sym.cname}( (')
542543
g.expr(node.left)
543-
g.write(')._interface_idx ))')
544+
dot := if node.left_type.is_ptr() { '->' } else { '.' }
545+
g.write(')${dot}_interface_idx ))')
544546
return
545547
}
546548
if node.name == 'str' {

0 commit comments

Comments
 (0)