Raymond Toy pushed to branch master at cmucl / cmucl

Commits:

1 changed file:

Changes:

  • src/code/loop.lisp
    ... ... @@ -995,7 +995,10 @@ collected result will be returned as the value of the LOOP."
    995 995
       (if crocks
    
    996 996
           (let ((*ignores* ()))
    
    997 997
     	(declare (special *ignores*))
    
    998
    -	`((destructuring-bind ,(subst-gensyms-for-nil (car crocks))
    
    998
    +	;; Destructuring in loop doesn't require that the values be
    
    999
    +	;; available.  The missing elements are filled with NIL.  So,
    
    1000
    +	;; make everything &optional
    
    1001
    +	`((destructuring-bind (&optional ,@(subst-gensyms-for-nil (car crocks)))
    
    999 1002
     	      ,(cadr crocks)
    
    1000 1003
     	    (declare (ignore ,@*ignores*))
    
    1001 1004
     	    ,@(loop-build-destructuring-bindings (cddr crocks) forms))))