From db366558e7bb14d08b391c30e9d4073e622dc1fa Mon Sep 17 00:00:00 2001 From: primo-ppcg Date: Wed, 13 Sep 2023 15:21:46 +0700 Subject: [PATCH] add `:unless` loop modifier --- src/boot/boot.janet | 1 + test/suite-boot.janet | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/src/boot/boot.janet b/src/boot/boot.janet index 88598f66..4a38030b 100644 --- a/src/boot/boot.janet +++ b/src/boot/boot.janet @@ -473,6 +473,7 @@ :repeat (with-syms [iter] ~(do (var ,iter ,verb) (while (> ,iter 0) ,rest (-- ,iter)))) :when ~(when ,verb ,rest) + :unless ~(unless ,verb ,rest) (error (string "unexpected loop modifier " binding)))))) # 3 term expression diff --git a/test/suite-boot.janet b/test/suite-boot.janet index 61bc6c6b..911a0c92 100644 --- a/test/suite-boot.janet +++ b/test/suite-boot.janet @@ -186,6 +186,11 @@ (assert (= txs [[-1 -1] [-1 0] [-1 1] [0 -1] [0 1] [1 -1] [1 0] [1 1]]) "nested seq") +# :unless modifier +(assert (deep= (seq [i :range [0 10] :unless (odd? i)] i) + @[0 2 4 6 8]) + ":unless modifier") + # 515891b03 (assert (deep= (tabseq [i :in (range 3)] i (* 3 i)) @{0 0 1 3 2 6}))