diff options
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") |
