0.6.12.2:
[sbcl.git] / src / code / fdefinition.lisp
index 0b72f21..607b8bb 100644 (file)
   "Return the fdefn object for NAME. If it doesn't already exist and CREATE
    is non-NIL, create a new (unbound) one."
   (declare (values (or fdefn null)))
-  (unless (or (symbolp name)
-             (and (consp name)
-                  (eq (car name) 'setf)
-                  (let ((cdr (cdr name)))
-                    (and (consp cdr)
-                         (symbolp (car cdr))
-                         (null (cdr cdr))))))
+  (unless (legal-function-name-p name)
     (error 'simple-type-error
           :datum name
           :expected-type '(or symbol list)
 ;;;; definition encapsulation
 
 (defstruct (encapsulation-info (:constructor make-encapsulation-info
-                                            (type definition)))
+                                            (type definition))
+                              (:copier nil))
   ;; This is definition's encapsulation type. The encapsulated
   ;; definition is in the previous encapsulation-info element or
   ;; installed as the global definition of some function name.
 
 (defun fmakunbound (name)
   #!+sb-doc
-  "Make Name have no global function definition."
+  "Make NAME have no global function definition."
   (let ((fdefn (fdefinition-object name nil)))
     (when fdefn
       (fdefn-makunbound fdefn)))