Changeset 16451


Ignore:
Timestamp:
Jul 8, 2015, 7:04:33 AM (4 years ago)
Author:
gb
Message:

try again to fix handling of supplied=p vars.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/lscan/source/compiler/nx0.lisp

    r16448 r16451  
    17341734          acode)))))
    17351735
     1736(defun nx-ensure-supplied-p (pending spvars)
     1737  (when (dolist (v spvars) (when v (return t)))
     1738    (do*  ((spvars spvars (cdr spvars)))
     1739          ((null spvars))
     1740      (unless (car spvars)
     1741        (setf (car spvars) (nx-new-temp-var pending)))))
     1742  spvars)
     1743             
     1744   
     1745           
    17361746(defun nx-parse-simple-lambda-list (pending ll &aux
    17371747                                              req
     
    17591769            (push (if spvar (nx-new-var pending spvar t)) optsuppliedp)))
    17601770        (if optvars
    1761           (setq opt (list (nreverse optvars) (nreverse optinits) (nreverse optsuppliedp)))
     1771          (setq opt (list (nreverse optvars) (nreverse optinits) (nx-ensure-supplied-p pending (nreverse optsuppliedp))))
    17621772          (nx1-whine :lambda ll))))
    17631773    (let ((temp (pop resttail)))
     
    17981808          kallowother
    17991809          (nreverse keysyms)
    1800           (nreverse keysupp)
     1810          (nx-ensure-supplied-p pending (nreverse keysupp))
    18011811          (nreverse keyinits)
    18021812          (apply #'vector (nreverse keykeys))))))
Note: See TracChangeset for help on using the changeset viewer.