aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorBruce Hill <bruce@bruce-hill.com>2024-10-09 00:47:42 -0400
committerBruce Hill <bruce@bruce-hill.com>2024-10-09 00:47:42 -0400
commita3dab7e72650d7b5b6070d33024914834a739b2b (patch)
tree9a6c5f45dda0b6f45eeaf07be032f6c1300c9810 /test
parent7c853f83c9ee0180a178767d549a3df446c63b8d (diff)
Add a test for mutating closed-over variables in a defer statement
Diffstat (limited to 'test')
-rw-r--r--test/defer.tm14
1 files changed, 14 insertions, 0 deletions
diff --git a/test/defer.tm b/test/defer.tm
index deccaa70..5d3c55b5 100644
--- a/test/defer.tm
+++ b/test/defer.tm
@@ -57,6 +57,14 @@ func main():
>> defer_func(yes)
>> defer_func(no)
+ >> counter := make_counter()
+ >> counter()
+ = 1
+ >> counter()
+ = 2
+ >> counter()
+ = 3
+
func defer_func(return_early=no):
say("Entering defer_func")
defer:
@@ -68,3 +76,9 @@ func defer_func(return_early=no):
say("Finished defer_func")
+func make_counter()->func()->Int:
+ i := 1
+ return func():
+ defer: i += 1
+ return i
+