From e041e81238fc1177f83d42e081d7f31ad387d48b Mon Sep 17 00:00:00 2001 From: Felipe Pena Date: Sun, 2 Feb 2025 17:57:20 -0300 Subject: [PATCH] fix --- vlib/v/gen/c/cgen.v | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/vlib/v/gen/c/cgen.v b/vlib/v/gen/c/cgen.v index 464a87ba10a794..4b6d3fe686f06a 100644 --- a/vlib/v/gen/c/cgen.v +++ b/vlib/v/gen/c/cgen.v @@ -4012,10 +4012,11 @@ fn (mut g Gen) selector_expr(node ast.SelectorExpr) { mut sum_type_dot := '.' mut field_typ := ast.void_type mut is_option_unwrap := false + is_iface_or_sumtype := sym.kind in [.interface, .sum_type] if f := g.table.find_field_with_embeds(sym, node.field_name) { field_sym := g.table.sym(f.typ) field_typ = f.typ - if sym.kind in [.interface, .sum_type] { + if is_iface_or_sumtype { g.write('(*(') } is_option := field_typ.has_flag(.option) @@ -4036,7 +4037,7 @@ fn (mut g Gen) selector_expr(node ast.SelectorExpr) { for i, typ in field.smartcasts { if i == 0 && (is_option_unwrap || nested_unwrap) { deref := if g.inside_selector { - if sym.kind in [.interface, .sum_type] { + if is_iface_or_sumtype { '*'.repeat(field.smartcasts.last().nr_muls()) } else { '*'.repeat(field.smartcasts.last().nr_muls() + 1) @@ -4142,7 +4143,7 @@ fn (mut g Gen) selector_expr(node ast.SelectorExpr) { return } } else { - if sym.kind in [.interface, .sum_type] { + if is_iface_or_sumtype { g.write('(*(') } }