X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fcheckgen.lisp;h=e727624f4c2a193f80a5dcd3eadb359c17a39619;hb=5dc28680e9cb2d598da02aed512aa49ea81fdade;hp=bef3289d96e69da9ec48652e6856bbe8e3326f8a;hpb=a530bbe337109d898d5b4a001fc8f1afa3b5dc39;p=sbcl.git diff --git a/src/compiler/checkgen.lisp b/src/compiler/checkgen.lisp index bef3289..e727624 100644 --- a/src/compiler/checkgen.lisp +++ b/src/compiler/checkgen.lisp @@ -13,9 +13,6 @@ ;;;; files for more information. (in-package "SB!C") - -(file-comment - "$Header$") ;;;; cost estimation @@ -280,12 +277,8 @@ ;;; We can always use Multiple-Value-Bind, since the macro is clever about ;;; binding a single variable. (defun make-type-check-form (types) - (collect ((temps)) - (dotimes (i (length types)) - (temps (gensym))) - - `(multiple-value-bind ,(temps) - 'dummy + (let ((temps (make-gensym-list (length types)))) + `(multiple-value-bind ,temps 'dummy ,@(mapcar #'(lambda (temp type) (let* ((spec (let ((*unparse-function-type-simplify* t)) @@ -295,8 +288,9 @@ (%type-check-error ,temp ',(type-specifier (third type)))))) - (temps) types) - (values ,@(temps))))) + temps + types) + (values ,@temps)))) ;;; Splice in explicit type check code immediately before the node which is ;;; Cont's Dest. This code receives the value(s) that were being passed to