cgen: fix generic fn with anon fn in body (#12647)
parent
988779846f
commit
2144471ce1
|
@ -217,7 +217,9 @@ fn (mut g Gen) gen_fn_decl(node &ast.FnDecl, skip bool) {
|
||||||
}
|
}
|
||||||
mut type_name := g.typ(node.return_type)
|
mut type_name := g.typ(node.return_type)
|
||||||
|
|
||||||
name = g.generic_fn_name(g.cur_concrete_types, name, true)
|
if node.generic_names.len > 0 {
|
||||||
|
name = g.generic_fn_name(g.cur_concrete_types, name, true)
|
||||||
|
}
|
||||||
|
|
||||||
if g.pref.translated && node.attrs.contains('c') {
|
if g.pref.translated && node.attrs.contains('c') {
|
||||||
// This fixes unknown symbols errors when building separate .c => .v files
|
// This fixes unknown symbols errors when building separate .c => .v files
|
||||||
|
|
|
@ -0,0 +1,11 @@
|
||||||
|
fn foo<T>() string {
|
||||||
|
x := fn () string {
|
||||||
|
return 'ok'
|
||||||
|
}
|
||||||
|
return x()
|
||||||
|
}
|
||||||
|
|
||||||
|
fn test_generic_fn_with_anon_fn() {
|
||||||
|
ret := foo<int>()
|
||||||
|
assert ret == 'ok'
|
||||||
|
}
|
Loading…
Reference in New Issue