Skip to content

Commit 7568526

Browse files
authored
checker: fix fn var resolver (fix #24525) (#24542)
1 parent 7b8c9fb commit 7568526

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

vlib/v/checker/checker.v

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3991,7 +3991,14 @@ fn (mut c Checker) at_expr(mut node ast.AtExpr) ast.Type {
39913991
}
39923992

39933993
fn (mut c Checker) resolve_var_fn(func &ast.Fn, mut node ast.Ident, name string) ast.Type {
3994-
mut fn_type := ast.new_type(c.table.find_or_register_fn_type(func, false, true))
3994+
mut fn_type := c.table.find_or_register_fn_type(func, false, true)
3995+
if fn_type < 0 {
3996+
mut f := ast.Fn{
3997+
...func
3998+
}
3999+
f.name = ''
4000+
fn_type = c.table.find_or_register_fn_type(f, false, true)
4001+
}
39954002
if func.generic_names.len > 0 {
39964003
concrete_types := node.concrete_types.map(c.unwrap_generic(it))
39974004
if typ_ := c.table.convert_generic_type(fn_type, func.generic_names, concrete_types) {

0 commit comments

Comments
 (0)