X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fcompiler%2Fir1-translators.lisp;h=2cb22953c462f8a9f906feea54b4402fbe0d5f29;hb=b6aa15328871678a3475e82c150b251dffb49ba1;hp=8cecb52e2eb4692ae927b8e63fe83b9cab2b7640;hpb=0a82f2db352cc348d2107a882e50af222ff97ed3;p=sbcl.git diff --git a/src/compiler/ir1-translators.lisp b/src/compiler/ir1-translators.lisp index 8cecb52..2cb2295 100644 --- a/src/compiler/ir1-translators.lisp +++ b/src/compiler/ir1-translators.lisp @@ -423,7 +423,7 @@ (%funcall ,(if (csubtypep (continuation-type function) (specifier-type 'function)) 'function - '(%coerce-callable-to-function function)) + '(%coerce-callable-to-fun function)) ,@arg-names)))) (def-ir1-translator %funcall ((function &rest args) start cont) @@ -441,9 +441,9 @@ `(%funcall ,function ,@args) (values nil t))) -(deftransform %coerce-callable-to-function ((thing) (function) * - :when :both - :important t) +(deftransform %coerce-callable-to-fun ((thing) (function) * + :when :both + :important t) "optimize away possible call to FDEFINITION at runtime" 'thing) @@ -554,7 +554,8 @@ (when (or (atom def) (< (length def) 2)) (compiler-error "The ~S definition spec ~S is malformed." context def)) - (let ((name (check-fun-name (first def)))) + (let ((name (first def))) + (check-fun-name name) (names name) (multiple-value-bind (forms decls) (sb!sys:parse-body (cddr def)) (defs `(lambda ,(second def) @@ -884,7 +885,7 @@ (ir1-convert start fun-cont (if (and (consp fun) (eq (car fun) 'function)) fun - `(%coerce-callable-to-function ,fun))) + `(%coerce-callable-to-fun ,fun))) (setf (continuation-dest fun-cont) node) (assert-continuation-type fun-cont (specifier-type '(or function symbol)))