313 |
(defun subtypep (type1 type2 &optional env &aux t1 t2 i1 i2 ntp1 ntp2 tem) |
(defun subtypep (type1 type2 &optional env &aux t1 t2 i1 i2 ntp1 ntp2 tem) |
314 |
(declare (ignore env)) |
(declare (ignore env)) |
315 |
(let* ((c1 (classp type1)) (c2 (classp type2)) |
(let* ((c1 (classp type1)) (c2 (classp type2)) |
316 |
(t1 (if c1 type1 (find-class type1 nil))) |
(t1 (if c1 type1 (when (symbolp type1) (find-class type1 nil)))) |
317 |
(t2 (if c2 type2 (find-class type2 nil)))) |
(t2 (if c2 type2 (when (symbolp type2) (find-class type2 nil))))) |
318 |
(when (and t1 t2) |
(when (and t1 t2) |
319 |
(return-from subtypep |
(return-from subtypep |
320 |
(if (member t2 (class-precedence-list t1)) |
(if (member t2 (class-precedence-list t1)) |