Skip to content

Commit ffbf719

Browse files
luoliwoshangclaude
andcommitted
demo/defer: add FIXME for defer in loop with variable capture issue
When defer in loop captures variables, panic exit causes issues with preceding defer normal execution. Without variable capture, it works correctly. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
1 parent 934f152 commit ffbf719

1 file changed

Lines changed: 5 additions & 1 deletion

File tree

  • _demo/embed/targetsbuild/defer

_demo/embed/targetsbuild/defer/main.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,11 @@ func main() {
1616
defer c.Printf(c.Str("defer in else\n"))
1717
}
1818

19+
// FIXME(zzy): When defer in loop captures variables (e.g., defer c.Printf(c.Str("%d\n"), i)),
20+
// panic exit will cause issues with preceding defer normal execution.
21+
// Without variable capture, it works correctly.
1922
for i := 0; i < 3; i++ {
20-
defer c.Printf(c.Str("defer in loop %d\n"), i)
23+
defer c.Printf(c.Str("defer in loop\n"))
2124
}
25+
panic("panic occured")
2226
}

0 commit comments

Comments
 (0)