Skip to content

Commit 2144471

Browse files
authored
cgen: fix generic fn with anon fn in body (#12647)
1 parent 9887798 commit 2144471

File tree

2 files changed

+14
-1
lines changed

2 files changed

+14
-1
lines changed

vlib/v/gen/c/fn.v

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -217,7 +217,9 @@ fn (mut g Gen) gen_fn_decl(node &ast.FnDecl, skip bool) {
217217
}
218218
mut type_name := g.typ(node.return_type)
219219

220-
name = g.generic_fn_name(g.cur_concrete_types, name, true)
220+
if node.generic_names.len > 0 {
221+
name = g.generic_fn_name(g.cur_concrete_types, name, true)
222+
}
221223

222224
if g.pref.translated && node.attrs.contains('c') {
223225
// This fixes unknown symbols errors when building separate .c => .v files
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
fn foo<T>() string {
2+
x := fn () string {
3+
return 'ok'
4+
}
5+
return x()
6+
}
7+
8+
fn test_generic_fn_with_anon_fn() {
9+
ret := foo<int>()
10+
assert ret == 'ok'
11+
}

0 commit comments

Comments
 (0)