From 11be5bf74e756505f9a99642f3b00ff6327415fc Mon Sep 17 00:00:00 2001 From: wlott <wlott> Date: Tue, 19 Mar 1991 18:51:08 +0000 Subject: [PATCH] Fixed %%typep of (satisfies (lambda (obj) ..)) to explicitly coerce the thing into a function instead of trying to funcall it. --- code/pred.lisp | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/code/pred.lisp b/code/pred.lisp index c6ec81d57..ce55cd871 100644 --- a/code/pred.lisp +++ b/code/pred.lisp @@ -7,11 +7,11 @@ ;;; Scott Fahlman or slisp-group@cs.cmu.edu. ;;; (ext:file-comment - "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/pred.lisp,v 1.16 1991/02/08 13:34:47 ram Exp $") + "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/pred.lisp,v 1.17 1991/03/19 18:51:08 wlott Exp $") ;;; ;;; ********************************************************************** ;;; -;;; $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/pred.lisp,v 1.16 1991/02/08 13:34:47 ram Exp $ +;;; $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/pred.lisp,v 1.17 1991/03/19 18:51:08 wlott Exp $ ;;; ;;; Predicate functions for CMU Common Lisp. ;;; @@ -296,7 +296,15 @@ (satisfies (unless (and (listp hairy-spec) (= (length hairy-spec) 2)) (error "Invalid type specifier: ~S" hairy-spec)) - (if (funcall (cadr hairy-spec) object) t))))) + (let ((fn (cadr hairy-spec))) + (if (funcall (typecase fn + (function fn) + (symbol (symbol-function fn)) + (t + (coerce fn 'function))) + object) + t + nil)))))) (function-type (error "Function types are not a legal argument to TYPEP:~% ~S" (type-specifier type))))) -- GitLab