diff options
Diffstat (limited to 'tests/typ/compiler/for.typ')
| -rw-r--r-- | tests/typ/compiler/for.typ | 136 |
1 files changed, 0 insertions, 136 deletions
diff --git a/tests/typ/compiler/for.typ b/tests/typ/compiler/for.typ deleted file mode 100644 index 392dd676..00000000 --- a/tests/typ/compiler/for.typ +++ /dev/null @@ -1,136 +0,0 @@ -// Test for loops. -// Ref: false - ---- -// Ref: true - -// Empty array. -#for x in () [Nope] - -// Dictionary is traversed in insertion order. -// Should output `Name: Typst. Age: 2.`. -#for (k, v) in (Name: "Typst", Age: 2) [ - #k: #v. -] - -// Block body. -// Should output `[1st, 2nd, 3rd, 4th]`. -#{ - "[" - for v in (1, 2, 3, 4) { - if v > 1 [, ] - [#v] - if v == 1 [st] - if v == 2 [nd] - if v == 3 [rd] - if v >= 4 [th] - } - "]" -} - -// Content block body. -// Should output `2345`. -#for v in (1, 2, 3, 4, 5, 6, 7) [#if v >= 2 and v <= 5 { repr(v) }] - -// Map captured arguments. -#let f1(..args) = args.pos().map(repr) -#let f2(..args) = args.named().pairs().map(p => repr(p.first()) + ": " + repr(p.last())) -#let f(..args) = (f1(..args) + f2(..args)).join(", ") -#f(1, a: 2) - ---- -#let out = () - -// Values of array. -#for v in (1, 2, 3) { - out += (v,) -} - -// Indices and values of array. -#for (i, v) in ("1", "2", "3").enumerate() { - test(repr(i + 1), v) -} - -// Pairs of dictionary. -#for v in (a: 4, b: 5) { - out += (v,) -} - -// Keys and values of dictionary. -#for (k, v) in (a: 6, b: 7) { - out += (k,) - out += (v,) -} - -#test(out, (1, 2, 3, ("a", 4), ("b", 5), "a", 6, "b", 7)) - -// Grapheme clusters of string. -#let first = true -#let joined = for c in "abc👩👩👦👦" { - if not first { ", " } - first = false - c -} - -#test(joined, "a, b, c, 👩👩👦👦") - -// Return value. -#test(for v in "" [], none) -#test(type(for v in "1" []), content) - ---- -// Uniterable expression. -// Error: 11-15 cannot loop over boolean -#for v in true {} - ---- -// Keys and values of strings. -// Error: 6-12 cannot destructure values of string -#for (k, v) in "hi" { - dont-care -} - ---- -// Destructuring without parentheses. -// Error: 7-8 unexpected comma -// Hint: 7-8 destructuring patterns must be wrapped in parentheses -#for k, v in (a: 4, b: 5) { - dont-care -} - -// Error: 7-8 unexpected comma -// Hint: 7-8 destructuring patterns must be wrapped in parentheses -#for k, in () {} - ---- -// Error: 5 expected pattern -#for - -// Error: 5 expected pattern -#for// - -// Error: 6 expected pattern -#{for} - -// Error: 7 expected keyword `in` -#for v - -// Error: 10 expected expression -#for v in - -// Error: 15 expected block -#for v in iter - -// Error: 5 expected pattern -#for -v in iter {} - -// Error: 7-10 expected pattern, found string -// Error: 16 expected block -A#for "v" thing - -// Error: 6-9 expected pattern, found string -#for "v" in iter {} - -// Error: 7 expected keyword `in` -#for a + b in iter {} |
