diff options
-rw-r--r-- | src/clj/clojure/boot.clj | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/clj/clojure/boot.clj b/src/clj/clojure/boot.clj index 68cb448d..30c8d68f 100644 --- a/src/clj/clojure/boot.clj +++ b/src/clj/clojure/boot.clj @@ -2274,9 +2274,11 @@ (when-first ~b ~gxs (if ~f ~(if rses - `(let [iterys# ~(emit rses)] - (lazy-cat (iterys# ~ys) - (~giter (rest ~gxs)))) + `(let [iterys# ~(emit rses) + fs# (iterys# ~ys)] + (if fs# + (lazy-cat fs# (~giter (rest ~gxs))) + (recur (rest ~gxs)))) `(lazy-cons ~expr (~giter (rest ~gxs)))) ~(if (= w :when) `(recur (rest ~gxs)) |