Subject: bug#26073: workaround

From: Stefan Monnier <[email-masked]>
Date: Thu, 08 Feb 2018 21:43:01 -0500

> The examples given still fail on current master.
>
> (require 'generator)
> (setq lexical-binding t) ; for easier *scratch* evaluation
> (iter-do (y (funcall (iter-lambda (x)
>                        (dolist (it x)
>                          (let ((y (mapcar (lambda (it) (- it)) it)))
>                            (iter-yield y))))
>                      '((1 2) ( 3 4))))
>   (print y)) ;=> Lisp error: (wrong-type-argument number-or-marker-p (1 2))
>
> (iter-next (funcall (iter-lambda ()
>                       (let ((it 1))
>                         (iter-yield (funcall (lambda (it) (- it)) (1+ it)))))))  ;=> -1

Duh, the code failed to handle vars introduced by `lambda' (and
`condition-case').  I installed a patch which fixes the above example
(and hopefully the rest, but given my past track record on this you'd
be foolish to believe it).

        Stefan