aboutsummaryrefslogtreecommitdiff
path: root/test/defer.tm
diff options
context:
space:
mode:
authorBruce Hill <bruce@bruce-hill.com>2025-09-21 18:16:32 -0400
committerBruce Hill <bruce@bruce-hill.com>2025-09-21 18:16:32 -0400
commit7e3e245f6809946ea06ef1998bcabb7e0902fbd7 (patch)
tree67c06d75ecff021cd70073f8a7da278cfe7f6410 /test/defer.tm
parent7198afcfec38f8f0cc82e093567e2b098a42970f (diff)
Deprecate `defer`
Diffstat (limited to 'test/defer.tm')
-rw-r--r--test/defer.tm79
1 files changed, 0 insertions, 79 deletions
diff --git a/test/defer.tm b/test/defer.tm
deleted file mode 100644
index 8f0cb3be..00000000
--- a/test/defer.tm
+++ /dev/null
@@ -1,79 +0,0 @@
-func main()
- x := 123
- nums : @[Int]
- do
- defer
- nums.insert(x)
- x = 999
-
- assert nums[] == [123]
- assert x == 999
-
- defer
- say("All done!")
-
- for word in ["first", "second", "third"]
- defer
- say("Got $word deferred")
-
- if word == "second"
- say("<skipped>")
- skip
- else if word == "third"
- say("<stopped>")
- stop
-
- for i in 3
- defer
- say("Inner loop deferred $i")
-
- if i == 2
- say("<skipped inner>")
- skip
- else if i == 3
- say("<stopped inner>")
- stop
-
- say("Made it through inner loop")
-
- say("Made it through the loop")
-
- >> thunk := func(return_early=no)
- say("Entering thunk")
- defer
- say("Deferred thunk cleanup")
-
- if return_early
- say("Returning early...")
- return
-
- say("Finished thunk")
-
- >> thunk(no)
- >> thunk(yes)
-
- >> defer_func(yes)
- >> defer_func(no)
-
- >> counter := make_counter()
- assert counter() == 1
- assert counter() == 2
- assert counter() == 3
-
-func defer_func(return_early=no)
- say("Entering defer_func")
- defer
- say("Deferred defer_func cleanup")
-
- if return_early
- say("Returning early...")
- return
-
- say("Finished defer_func")
-
-func make_counter(->func(->Int))
- i := 1
- return func()
- defer i += 1
- return i
-