Changeset 11853


Ignore:
Timestamp:
Mar 28, 2009, 2:04:25 AM (11 years ago)
Author:
gz
Message:

Fix declarations generated by loop-for-on in the improper list case

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/working-0711/ccl/library/loop.lisp

    r11852 r11853  
    16361636    (let ((listvar var))
    16371637      (cond ((and var (symbolp var)) (loop-make-iteration-variable var list data-type))
    1638             (t (loop-make-variable (setq listvar (loop-gentemp)) list 'list)
     1638            (t (loop-make-variable (setq listvar (loop-gentemp)) list nil)
    16391639               (loop-make-iteration-variable var nil data-type)))
    1640       (multiple-value-bind (list-step step-function) (loop-list-step listvar)
     1640      (multiple-value-bind (list-step step-function) (loop-list-step `(the cons ,listvar))
    16411641        (declare (ignore step-function))
    16421642        ;;@@@@ The CLOE problem above has to do with bug in macroexpansion of multiple-value-bind.
     
    16551655                 `(() (,listvar ,(hide-variable-reference t listvar list-step)) ,other-endtest
    16561656                   () () () ,first-endtest ()))
    1657                 (t (let ((step `(,var ,listvar)) (pseudo `(,listvar ,list-step)))
     1657                (t (let ((step `(,var (the cons ,listvar))) (pseudo `(,listvar ,list-step)))
    16581658                     `(,other-endtest ,step () ,pseudo
    16591659                       ,@(and (not (eq first-endtest other-endtest))
Note: See TracChangeset for help on using the changeset viewer.