From: Christophe R. <cr...@us...> - 2006-11-22 22:35:32
|
Update of /cvsroot/sbcl/sbcl/tests In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv28585/tests Modified Files: interface.impure.lisp Log Message: 0.9.18.68: Living dangerously... ... fix the (function-lambda-expression #'gf) problem; ... add test cases. Index: interface.impure.lisp =================================================================== RCS file: /cvsroot/sbcl/sbcl/tests/interface.impure.lisp,v retrieving revision 1.10 retrieving revision 1.11 diff -u -d -r1.10 -r1.11 --- interface.impure.lisp 30 Oct 2006 08:11:51 -0000 1.10 +++ interface.impure.lisp 22 Nov 2006 22:35:29 -0000 1.11 @@ -53,6 +53,30 @@ (disassemble 'disassemble-generic) (let ((fin (sb-mop:make-instance 'sb-mop:funcallable-standard-object))) (disassemble fin)) + +;;; while we're at it, much the same applies to +;;; FUNCTION-LAMBDA-EXPRESSION: +(defun fle-fun (x) x) +(function-lambda-expression #'fle-fun) + +(let ((x 1)) (defun fle-closure (y) (if y (setq x y) x))) +(function-lambda-expression #'fle-closure) + +#+sb-eval +(progn + ;; Nor should it fail on interpreted functions + (let ((sb-ext:*evaluator-mode* :interpret)) + (eval `(defun fle-eval (x) x)) + (function-lambda-expression #'fle-eval)) + + ;; fle-eval should still be an interpreted function. + (assert (sb-eval:interpreted-function-p #'fle-eval))) + +;; nor should it fail on generic functions or other funcallable instances +(defgeneric fle-generic (x)) +(function-lambda-expression #'fle-generic) +(let ((fin (sb-mop:make-instance 'sb-mop:funcallable-standard-object))) + (function-lambda-expression fin)) ;;; support for DESCRIBE tests (defstruct to-be-described a b) |