mirror of
https://github.com/vlang/v.git
synced 2023-08-10 21:13:21 +03:00
cgen: fix array.map(anon_fn)
This commit is contained in:
parent
895c7624e4
commit
d472a27489
@ -589,6 +589,13 @@ fn test_map() {
|
||||
assert strs == ['v', 'is', 'awesome']
|
||||
}
|
||||
|
||||
fn test_anon_fn_map() {
|
||||
add_num := fn (i int) int {
|
||||
return i + 1
|
||||
}
|
||||
assert [1,2,3].map(add_num) == [2,3,4]
|
||||
}
|
||||
|
||||
fn test_array_str() {
|
||||
numbers := [1, 2, 3]
|
||||
assert numbers == [1,2,3]
|
||||
|
@ -3175,7 +3175,15 @@ fn (mut g Gen) gen_map(node ast.CallExpr) {
|
||||
match node.args[0].expr {
|
||||
ast.Ident {
|
||||
if it.kind == .function {
|
||||
g.writeln('${it.name}(it)')
|
||||
g.write('${it.name}(it)')
|
||||
} else if it.kind == .variable {
|
||||
var_info := it.var_info()
|
||||
sym := g.table.get_type_symbol(var_info.typ)
|
||||
if sym.kind == .function {
|
||||
g.write('${it.name}(it)')
|
||||
} else {
|
||||
g.expr(node.args[0].expr)
|
||||
}
|
||||
} else {
|
||||
g.expr(node.args[0].expr)
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user