Skip to content

Commit 161d29a

Browse files
authored
cgen: minor cleanup in method_call() (#22351)
1 parent 6f97ced commit 161d29a

File tree

1 file changed

+10
-14
lines changed

1 file changed

+10
-14
lines changed

vlib/v/gen/c/fn.v

Lines changed: 10 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1572,22 +1572,20 @@ fn (mut g Gen) method_call(node ast.CallExpr) {
15721572
}
15731573
left_sym := g.table.sym(left_type)
15741574
final_left_sym := g.table.final_sym(left_type)
1575-
if left_sym.kind == .array || (final_left_sym.kind == .array
1576-
&& node.name in ['filter', 'map', 'sort', 'sorted', 'contains', 'any', 'all', 'insert', 'prepend']) {
1575+
if final_left_sym.kind == .array && !(left_sym.kind == .alias && left_sym.has_method(node.name)) {
15771576
if g.gen_array_method_call(node, left_type) {
15781577
return
15791578
}
1580-
} else if left_sym.kind == .array_fixed && node.name == 'wait' {
1581-
g.gen_fixed_array_wait(node)
1582-
return
15831579
}
1584-
1585-
if final_left_sym.kind == .map {
1580+
if final_left_sym.kind == .map && !(left_sym.kind == .alias && left_sym.has_method(node.name)) {
15861581
if g.gen_map_method_call(node, left_type, final_left_sym) {
15871582
return
15881583
}
15891584
}
1590-
1585+
if left_sym.kind == .array_fixed && node.name == 'wait' {
1586+
g.gen_fixed_array_wait(node)
1587+
return
1588+
}
15911589
if left_sym.kind in [.sum_type, .interface_] {
15921590
prefix_name := if left_sym.kind == .sum_type { 'sumtype' } else { 'interface' }
15931591
match node.name {
@@ -1627,12 +1625,10 @@ fn (mut g Gen) method_call(node ast.CallExpr) {
16271625
receiver_type_name = g.resolve_receiver_name(node, unwrapped_rec_type, final_left_sym,
16281626
left_sym, typ_sym)
16291627
if final_left_sym.kind == .array && !(left_sym.kind == .alias && left_sym.has_method(node.name))
1630-
&& node.name in ['clear', 'repeat', 'sort_with_compare', 'sorted_with_compare', 'free', 'push_many', 'trim', 'first', 'last', 'pop', 'clone', 'reverse', 'slice', 'pointers'] {
1631-
if node.name in ['last', 'first', 'pop'] {
1632-
return_type_str := g.typ(node.return_type)
1633-
cast_n++
1634-
g.write('(*(${return_type_str}*)')
1635-
}
1628+
&& node.name in ['last', 'first', 'pop'] {
1629+
return_type_str := g.typ(node.return_type)
1630+
cast_n++
1631+
g.write('(*(${return_type_str}*)')
16361632
}
16371633
mut name := util.no_dots('${receiver_type_name}_${node.name}')
16381634
mut array_depth := -1

0 commit comments

Comments
 (0)