diff options
Diffstat (limited to 'tests/typ/code/while.typ')
| -rw-r--r-- | tests/typ/code/while.typ | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/tests/typ/code/while.typ b/tests/typ/code/while.typ new file mode 100644 index 00000000..acf7951e --- /dev/null +++ b/tests/typ/code/while.typ @@ -0,0 +1,43 @@ +// Test while expressions. + +--- +// Should output `2 4 6 8 10`. +#let i = 0 +#while i < 10 [ + { i += 2 } + #i +] + +// Should output `Hi`. +#let iter = true +#while iter { + iter = false + "Hi." +} + +#while false { + dont-care +} + +--- +// Value of while loops. +// Ref: false +#test(type(while false {}), "template") +#test(type(while false []), "template") + +--- +// Condition must be boolean. +// Error: 8-14 expected boolean, found template +#while [nope] [nope] + +// Make sure that we don't complain twice. +// Error: 8-15 unknown variable +#while nothing {} + +// A single error stops iteration. +#let i = 0 +#test(error, while i < 10 { + i += 1 + if i < 5 [nope] else { error } +}) +#test(i, 5) |
