0.pre7.139:
[sbcl.git] / src / code / fdefinition.lisp
index c7305fc..1864e5c 100644 (file)
@@ -97,8 +97,8 @@
   (definition nil :type function))
 
 ;;; Replace the definition of NAME with a function that binds NAME's
-;;; arguments a variable named argument-list, binds name's definition
-;;; to a variable named basic-definition, and evaluates BODY in that
+;;; arguments to a variable named ARG-LIST, binds name's definition
+;;; to a variable named BASIC-DEFINITION, and evaluates BODY in that
 ;;; context. TYPE is whatever you would like to associate with this
 ;;; encapsulation for identification in case you need multiple
 ;;; encapsulations of the same name.
     ;; an encapsulation that no longer exists.
     (let ((info (make-encapsulation-info type (fdefn-fun fdefn))))
       (setf (fdefn-fun fdefn)
-           (lambda (&rest argument-list)
-             (declare (special argument-list))
+           (lambda (&rest arg-list)
+             (declare (special arg-list))
              (let ((basic-definition (encapsulation-info-definition info)))
                (declare (special basic-definition))
                (eval body)))))))
   "Set NAME's global function definition."
   (declare (type function new-value) (optimize (safety 1)))
   (let ((fdefn (fdefinition-object name t)))
-    ;; *SETF-FDEFINITION-HOOK* won't be bound when initially running top-level
-    ;; forms in the kernel core startup.
+    ;; *SETF-FDEFINITION-HOOK* won't be bound when initially running
+    ;; top level forms in the kernel core startup.
     (when (boundp '*setf-fdefinition-hook*)
       (dolist (f *setf-fdefinition-hook*)
        (funcall f name new-value)))
   (let ((fdefn (fdefinition-object name nil)))
     (when fdefn
       (fdefn-makunbound fdefn)))
+  (sb!kernel:undefine-fun-name name)
   name)