cgen: fix anon fn with & prefix (fix #22628) (#22638)

This commit is contained in:
Felipe Pena 2024-10-24 03:47:11 -03:00 committed by GitHub
parent 93df2f65ec
commit a847edd6c8
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 24 additions and 0 deletions

View File

@ -593,6 +593,11 @@ fn (mut g Gen) closure_ctx(node ast.FnDecl) string {
} }
fn (mut g Gen) gen_anon_fn(mut node ast.AnonFn) { fn (mut g Gen) gen_anon_fn(mut node ast.AnonFn) {
is_amp := g.is_amp
g.is_amp = false
defer {
g.is_amp = is_amp
}
g.gen_anon_fn_decl(mut node) g.gen_anon_fn_decl(mut node)
fn_name := g.gen_closure_fn_name(node) fn_name := g.gen_closure_fn_name(node)
if !node.decl.scope.has_inherited_vars() { if !node.decl.scope.has_inherited_vars() {

View File

@ -0,0 +1,19 @@
module main
struct TestA {
aa int
}
fn test_main() {
func := &fn () int {
arr := []TestA{}
return arr.len
}
assert func() == 0
func2 := &fn () int {
arr := []TestA{}
return arr.len
}
assert func2() == 0
}