diff options
| author | Bruce Hill <bruce@bruce-hill.com> | 2024-07-04 18:00:01 -0400 |
|---|---|---|
| committer | Bruce Hill <bruce@bruce-hill.com> | 2024-07-04 18:00:01 -0400 |
| commit | 6a105fbd801f10bd6c8cee32fd6d45a279f33e1b (patch) | |
| tree | dc03ec9eec0ac65b40d6cb6053d55475dc132fb2 /test | |
| parent | 78960b1461a8fb184de4ffddf2d2ec4df729fb05 (diff) | |
Add 'defer'
Diffstat (limited to 'test')
| -rw-r--r-- | test/defer.tm | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/test/defer.tm b/test/defer.tm new file mode 100644 index 00000000..fcc14f16 --- /dev/null +++ b/test/defer.tm @@ -0,0 +1,41 @@ +func main(): + x := 123 + nums := @[:Int] + do: + defer: + nums:insert(x) + x = 999 + + >> nums + = @[123] + >> 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") |
