summaryrefslogtreecommitdiff
path: root/tests/functions/test_lambdas.zc
diff options
context:
space:
mode:
authorSteven <burnett@posteo.de>2026-01-25 04:37:25 +0000
committerSteven <burnett@posteo.de>2026-01-25 04:37:25 +0000
commit026e3322b0cd6b1c813b05c1b65bea192a0be041 (patch)
tree585161d419c5c553c604c60e6edb644663253650 /tests/functions/test_lambdas.zc
parent7813a12ed59274989ce954c931bf02ebea2a0104 (diff)
fix(parser_expr): lambda block syntax "fn"
Fixes #117
Diffstat (limited to 'tests/functions/test_lambdas.zc')
-rw-r--r--tests/functions/test_lambdas.zc31
1 files changed, 31 insertions, 0 deletions
diff --git a/tests/functions/test_lambdas.zc b/tests/functions/test_lambdas.zc
index 5f2c086..a0daaf1 100644
--- a/tests/functions/test_lambdas.zc
+++ b/tests/functions/test_lambdas.zc
@@ -60,6 +60,37 @@ test "test_complex_lambdas" {
println " -> Nested application: Failed";
exit(1);
}
+
+ // Lambda with "fn" syntax (eg. block lambda)
+ var factor = 2;
+ var full = fn(x: int) -> int { return x * factor };
+
+ if (full(3) == 6) {
+ println " -> Lambda fn syntax: Passed";
+ } else {
+ println " -> Lambda fn syntax: Failed";
+ exit(1);
+ }
+
+ // Lambda with "fn" syntax (eg. block lambda) + multiple params
+ var addition = fn(sum1: int, sum2: int) -> int { return sum1 + sum2 };
+
+ if (addition(100, 505) == 605) {
+ println " -> Lambda fn syntax: Passed";
+ } else {
+ println " -> Lambda fn syntax: Failed";
+ exit(1);
+ }
+
+ // Lambda with "fn" syntax (eg. block lambda) + named args
+ var substract = fn(arg1: int, arg2: int) -> int { return arg1 - arg2 };
+
+ if (substract(arg1: 500, arg2: 100) == 400) {
+ println " -> Lambda fn syntax: Passed";
+ } else {
+ println " -> Lambda fn syntax: Failed";
+ exit(1);
+ }
println "All complex lambda tests passed!";