1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
|
// Issue #3275: clearer errors for loops, https://github.com/typst/typst/issues/3275
// Ref: false
---
// Normal variable.
#for x in (1, 2) {}
#for x in (a: 1, b: 2) {}
#for x in "foo" {}
#for x in bytes("😊") {}
---
// Placeholder.
#for _ in (1, 2) {}
#for _ in (a: 1, b: 2) {}
#for _ in "foo" {}
#for _ in bytes("😊") {}
---
// Destructuring.
#for (a,b,c) in (("a", 1, bytes(())), ("b", 2, bytes(""))) {}
#for (a, ..) in (("a", 1, bytes(())), ("b", 2, bytes(""))) {}
#for (k, v) in (a: 1, b: 2, c: 3) {}
#for (.., v) in (a: 1, b: 2, c: 3) {}
---
// Error: 11-17 cannot loop over content
#for x in [1, 2] {}
---
// Error: 11-25 cannot loop over arguments
#for _ in arguments("a") {}
---
// Error: 16-21 cannot loop over integer
#for (x, y) in 12306 {}
---
// Error: 16-22 cannot loop over content
#for (x, y) in [1, 2] {}
---
// Error: 6-12 cannot destructure values of string
#for (x, y) in "foo" {}
---
// Error: 6-12 cannot destructure string
#for (x, y) in ("foo", "bar") {}
---
// Error: 6-12 cannot destructure values of bytes
#for (x, y) in bytes("😊") {}
---
// Error: 6-12 cannot destructure bytes
#for (x, y) in (bytes((1,2)), bytes((1,2))) {}
---
// Error: 6-12 cannot destructure integer
#for (x, y) in (1, 2) {}
---
// Error: 10-11 not enough elements to destructure
#for (x, y) in ((1,), (2,)) {}
---
// Error: 6-12 too many elements to destructure
#for (x, y) in ((1,2,3), (4,5,6)) {}
|