0.8.20.19:
[sbcl.git] / src / pcl / boot.lisp
index 4e3aa52..638f6a9 100644 (file)
@@ -612,9 +612,16 @@ bootstrapping.
         '(ignorable))
        (t
         ;; Otherwise, we can usually make Python very happy.
-        (let ((type (info :type :kind specializer)))
-          (ecase type
+        (let ((kind (info :type :kind specializer)))
+          (ecase kind
             ((:primitive) `(type ,specializer ,parameter))
+            ((:defined) 
+             ;; some BUILT-IN-CLASSes (e.g. REAL) are also :DEFINED
+             ;; types.  Nothing else should be.
+             (let ((class (find-class specializer nil)))
+               (aver class)
+               (aver (typep class 'built-in-class)))
+             `(type ,specializer ,parameter))
             ((:instance nil)
              (let ((class (find-class specializer nil)))
                (cond
@@ -1259,7 +1266,7 @@ bootstrapping.
                   ((eq (car form) 'next-method-p)
                    (setq next-method-p-p t)
                    form)
-                  ((eq (car form) 'setq)
+                  ((memq (car form) '(setq multiple-value-setq))
                    ;; FIXME: this is possibly a little strong as
                    ;; conditions go.  Ideally we would want to detect
                    ;; which, if any, of the method parameters are