X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Ftarget-package.lisp;h=88b3cbf69de71c6e8c75ac731688988ae48be46b;hb=69d60b456b07a0256f08df0d02484f361ce5737c;hp=b501208c2af06b8c17aa32ddac0f9cf4b26157a7;hpb=929fde778f2e5a422f9bcd8ad5f6dcf1dbfccf15;p=sbcl.git diff --git a/src/code/target-package.lisp b/src/code/target-package.lisp index b501208..88b3cbf 100644 --- a/src/code/target-package.lisp +++ b/src/code/target-package.lisp @@ -237,9 +237,11 @@ error if any of PACKAGES is not a valid package designator." #!+sb-package-locks (let* ((symbol (etypecase name (symbol name) - (list (if (eq 'setf (first name)) + (list (if (and (consp (cdr name)) + (eq 'setf (first name))) (second name) - ;; Skip (class-predicate foo), etc. + ;; Skip lists of length 1, single conses and + ;; (class-predicate foo), etc. ;; FIXME: MOP and package-lock ;; interaction needs to be thought about. (return-from @@ -649,8 +651,8 @@ error if any of PACKAGES is not a valid package designator." ;; We just simple-stringify the name and call INTERN*, where the real ;; logic is. (let ((name (if (simple-string-p name) - name - (coerce name 'simple-string))) + name + (coerce name 'simple-string))) (package (find-undeleted-package-or-lose package))) (declare (simple-string name)) (intern* name