summaryrefslogtreecommitdiff
path: root/tests/typ/compiler/spread.typ
diff options
context:
space:
mode:
Diffstat (limited to 'tests/typ/compiler/spread.typ')
-rw-r--r--tests/typ/compiler/spread.typ133
1 files changed, 0 insertions, 133 deletions
diff --git a/tests/typ/compiler/spread.typ b/tests/typ/compiler/spread.typ
deleted file mode 100644
index db658453..00000000
--- a/tests/typ/compiler/spread.typ
+++ /dev/null
@@ -1,133 +0,0 @@
-// Test argument sinks and spreading.
-// Ref: false
-
----
-// Test standard argument overriding.
-#{
- let f(style: "normal", weight: "regular") = {
- "(style: " + style + ", weight: " + weight + ")"
- }
-
- let myf(..args) = f(weight: "bold", ..args)
- test(myf(), "(style: normal, weight: bold)")
- test(myf(weight: "black"), "(style: normal, weight: black)")
- test(myf(style: "italic"), "(style: italic, weight: bold)")
-}
-
----
-// Test multiple calls.
-#{
- let f(b, c: "!") = b + c
- let g(a, ..sink) = a + f(..sink)
- test(g("a", "b", c: "c"), "abc")
-}
-
----
-// Test doing things with arguments.
-#{
- let save(..args) = {
- test(type(args), arguments)
- test(repr(args), "(three: true, 1, 2)")
- }
-
- save(1, 2, three: true)
-}
-
----
-// Test spreading array and dictionary.
-#{
- let more = (3, -3, 6, 10)
- test(calc.min(1, 2, ..more), -3)
- test(calc.max(..more, 9), 10)
- test(calc.max(..more, 11), 11)
-}
-
-#{
- let more = (c: 3, d: 4)
- let tostr(..args) = repr(args)
- test(tostr(a: 1, ..more, b: 2), "(a: 1, c: 3, d: 4, b: 2)")
-}
-
----
-// None is spreadable.
-#let f() = none
-#f(..none)
-#f(..if false {})
-#f(..for x in () [])
-
----
-// unnamed spread
-#let f(.., a) = a
-#test(f(1, 2, 3), 3)
-
----
-// Error: 11-19 cannot spread string
-#calc.min(.."nope")
-
----
-// Error: 10-14 expected pattern, found boolean
-#let f(..true) = none
-
----
-// Error: 13-16 only one argument sink is allowed
-#let f(..a, ..b) = none
-
----
-// Test spreading into array and dictionary.
-#{
- let l = (1, 2, 3)
- let r = (5, 6, 7)
- test((..l, 4, ..r), range(1, 8))
- test((..none), ())
-}
-
-#{
- let x = (a: 1)
- let y = (b: 2)
- let z = (a: 3)
- test((:..x, ..y, ..z), (a: 3, b: 2))
- test((..(a: 1), b: 2), (a: 1, b: 2))
-}
-
----
-// Error: 9-17 cannot spread dictionary into array
-#(1, 2, ..(a: 1))
-
----
-// Error: 3-11 cannot spread array into dictionary
-#(..(1, 2), a: 1)
-
----
-// Spread at beginning.
-#{
- let f(..a, b) = (a, b)
- test(repr(f(1)), "((), 1)")
- test(repr(f(1, 2, 3)), "((1, 2), 3)")
- test(repr(f(1, 2, 3, 4, 5)), "((1, 2, 3, 4), 5)")
-}
-
----
-// Spread in the middle.
-#{
- let f(a, ..b, c) = (a, b, c)
- test(repr(f(1, 2)), "(1, (), 2)")
- test(repr(f(1, 2, 3, 4, 5)), "(1, (2, 3, 4), 5)")
-}
-
----
-// Unnamed sink should just ignore any extra arguments.
-#{
- let f(a, b: 5, ..) = (a, b)
- test(f(4), (4, 5))
- test(f(10, b: 11), (10, 11))
- test(f(13, 20, b: 12), (13, 12))
- test(f(15, b: 16, c: 13), (15, 16))
-}
-
----
-#{
- let f(..a, b, c, d) = none
-
- // Error: 3-10 missing argument: d
- f(1, 2)
-}