checker: fix fn var resolver (fix #24525) (#24542)

This commit is contained in:
Felipe Pena 2025-05-29 04:48:37 -03:00 committed by GitHub
parent 7b8c9fb715
commit 7568526b14
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -3991,7 +3991,14 @@ fn (mut c Checker) at_expr(mut node ast.AtExpr) ast.Type {
}
fn (mut c Checker) resolve_var_fn(func &ast.Fn, mut node ast.Ident, name string) ast.Type {
mut fn_type := ast.new_type(c.table.find_or_register_fn_type(func, false, true))
mut fn_type := c.table.find_or_register_fn_type(func, false, true)
if fn_type < 0 {
mut f := ast.Fn{
...func
}
f.name = ''
fn_type = c.table.find_or_register_fn_type(f, false, true)
}
if func.generic_names.len > 0 {
concrete_types := node.concrete_types.map(c.unwrap_generic(it))
if typ_ := c.table.convert_generic_type(fn_type, func.generic_names, concrete_types) {