From cbfd9884a94b55486f9b07296f23a01b34d080bd Mon Sep 17 00:00:00 2001 From: Laurenz Date: Fri, 27 Oct 2023 13:24:37 +0200 Subject: Fix argument parsing bug Things like `luma(1, key: "val")` didn't produce an error before because `args.finish()?` wasn't called. This changes `args: Args` to `args: &mut Args` to make it impossible for that to happen. --- tests/typ/compiler/array.typ | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'tests/typ/compiler/array.typ') diff --git a/tests/typ/compiler/array.typ b/tests/typ/compiler/array.typ index 4191d6ff..2ce47158 100644 --- a/tests/typ/compiler/array.typ +++ b/tests/typ/compiler/array.typ @@ -248,6 +248,10 @@ #test((2, 1, 3, -10, -5, 8, 6, -7, 2).sorted(key: x => x), (-10, -7, -5, 1, 2, 2, 3, 6, 8)) #test((2, 1, 3, -10, -5, 8, 6, -7, 2).sorted(key: x => x * x), (1, 2, 2, 3, -5, 6, -7, 8, -10)) +--- +// Error: 12-18 unexpected argument +#().sorted(x => x) + --- // Test the `zip` method. #test(().zip(()), ()) @@ -262,7 +266,7 @@ #test((1,).zip((2,), (3,)), ((1, 2, 3),)) #test((1, 2, 3).zip(), ((1,), (2,), (3,))) #test(array.zip(()), ()) -#test(array.zip(("a", "b")), (("a",), ("b",))) + --- // Test the `enumerate` method. @@ -289,6 +293,14 @@ #test(("Hello", "World", "Hi", "There").dedup(key: x => x.len()), ("Hello", "Hi")) #test(("Hello", "World", "Hi", "There").dedup(key: x => x.at(0)), ("Hello", "World", "There")) +--- +// Error: 9-26 unexpected argument: val +#().zip(val: "applicable") + +--- +// Error: 13-30 unexpected argument: val +#().zip((), val: "applicable") + --- // Error: 32-37 cannot divide by zero #(1, 2, 0, 3).sorted(key: x => 5 / x) -- cgit v1.2.3