From: Nikodemus S. <de...@us...> - 2010-10-12 14:43:03
|
Update of /cvsroot/sbcl/sbcl/tests In directory sfp-cvsdas-3.v30.ch3.sourceforge.com:/tmp/cvs-serv9388/tests Modified Files: compiler.impure.lisp Log Message: 1.0.43.49: (SETF FDEFINITION) and (SETF SYMBOL-FUNCTION) should clear derived ftype Fixes 659220. Just call CLEAR-INFO unless the type is declared. Index: compiler.impure.lisp =================================================================== RCS file: /cvsroot/sbcl/sbcl/tests/compiler.impure.lisp,v retrieving revision 1.120 retrieving revision 1.121 diff -u -d -r1.120 -r1.121 --- compiler.impure.lisp 9 Oct 2010 23:09:26 -0000 1.120 +++ compiler.impure.lisp 12 Oct 2010 14:42:54 -0000 1.121 @@ -2006,4 +2006,16 @@ (assert derived) (assert (equal '(integer 42 42) type)))) +(test-util:with-test (:name :clear-derived-types-on-set-fdefn) + (let ((*evaluator-mode* :compile) + (*derive-function-types* t)) + (eval `(progn + (defun clear-derived-types-on-set-fdefn-1 () + "foo") + (setf (symbol-function 'clear-derived-types-on-set-fdefn-1) + (constantly "foobar")) + (defun clear-derived-types-on-set-fdefn-2 () + (length (clear-derived-types-on-set-fdefn-1))))) + (assert (= 6 (clear-derived-types-on-set-fdefn-2))))) + ;;; success |