mirror of
https://github.com/typst/typst
synced 2025-05-14 04:56:26 +08:00
129 lines
2.0 KiB
Typst
129 lines
2.0 KiB
Typst
// Test invalid operations.
|
|
// Ref: false
|
|
|
|
---
|
|
// Error: 4 expected expression
|
|
#(-)
|
|
|
|
---
|
|
// Error: 10 expected expression
|
|
#test({1+}, 1)
|
|
|
|
---
|
|
// Error: 10 expected expression
|
|
#test({2*}, 2)
|
|
|
|
---
|
|
// Error: 3-13 cannot apply '+' to content
|
|
#(+([] + []))
|
|
|
|
---
|
|
// Error: 3-6 cannot apply '-' to string
|
|
#(-"")
|
|
|
|
---
|
|
// Error: 3-9 cannot apply 'not' to array
|
|
#(not ())
|
|
|
|
---
|
|
// Error: 3-19 cannot apply '<=' to relative length and ratio
|
|
#(30% + 1pt <= 40%)
|
|
|
|
---
|
|
// Error: 3-14 cannot apply '<=' to length and length
|
|
#(1em <= 10pt)
|
|
|
|
---
|
|
// Error: 3-12 cannot divide by zero
|
|
#(1.2 / 0.0)
|
|
|
|
---
|
|
// Error: 3-8 cannot divide by zero
|
|
#(1 / 0)
|
|
|
|
---
|
|
// Error: 3-15 cannot divide by zero
|
|
#(15deg / 0deg)
|
|
|
|
---
|
|
// Special messages for +, -, * and /.
|
|
// Error: 3-10 cannot add integer and string
|
|
#(1 + "2", 40% - 1)
|
|
|
|
---
|
|
// Error: 15-23 cannot add integer and string
|
|
#{ let x = 1; x += "2" }
|
|
|
|
---
|
|
// Error: 4-13 cannot divide ratio by length
|
|
#( 10% / 5pt )
|
|
|
|
---
|
|
// Error: 3-12 cannot divide these two lengths
|
|
#(1em / 5pt)
|
|
|
|
---
|
|
// Error: 3-19 cannot divide relative length by ratio
|
|
#((10% + 1pt) / 5%)
|
|
|
|
---
|
|
// Error: 3-28 cannot divide these two relative lengths
|
|
#((10% + 1pt) / (20% + 1pt))
|
|
|
|
---
|
|
// Error: 13-20 cannot subtract integer from ratio
|
|
#((1234567, 40% - 1))
|
|
|
|
---
|
|
// Error: 3-11 cannot multiply integer with boolean
|
|
#(2 * true)
|
|
|
|
---
|
|
// Error: 3-11 cannot divide integer by length
|
|
#(3 / 12pt)
|
|
|
|
---
|
|
// Error: 3-10 cannot repeat this string -1 times
|
|
#(-1 * "")
|
|
|
|
---
|
|
#{
|
|
let x = 2
|
|
for _ in range(61) {
|
|
(x) *= 2
|
|
}
|
|
// Error: 3-17 cannot repeat this string 4611686018427387904 times
|
|
x * "abcdefgh"
|
|
}
|
|
|
|
---
|
|
// Error: 4-5 unknown variable
|
|
#((x) = "")
|
|
|
|
---
|
|
// Error: 3-8 cannot mutate a temporary value
|
|
#(1 + 2 += 3)
|
|
|
|
---
|
|
// Error: 2:3-2:8 cannot apply 'not' to string
|
|
#let x = "Hey"
|
|
#(not x = "a")
|
|
|
|
---
|
|
// Error: 7-8 unknown variable
|
|
#(1 + x += 3)
|
|
|
|
---
|
|
// Error: 3-4 unknown variable
|
|
#(z = 1)
|
|
|
|
---
|
|
// Error: 3-7 cannot mutate a constant
|
|
#(rect = "hi")
|
|
|
|
---
|
|
// Works if we define rect beforehand
|
|
// (since then it doesn't resolve to the standard library version anymore).
|
|
#let rect = ""
|
|
#(rect = "hi")
|