X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=tests%2Fcompiler.impure.lisp;h=fe4f6c3a0e022f166b026718afd44d79bcf268d6;hb=1c74f342b23aafaa8f514112c9bcca7526e07a58;hp=080d5c82e5ec1a632a3b532c8e762f9136efdc8a;hpb=46f4a60387df5259b0e355169dccd97f541a8c31;p=sbcl.git diff --git a/tests/compiler.impure.lisp b/tests/compiler.impure.lisp index 080d5c8..fe4f6c3 100644 --- a/tests/compiler.impure.lisp +++ b/tests/compiler.impure.lisp @@ -2403,4 +2403,30 @@ (compile nil `(lambda (x) (norm-1177703 (vec-1177703 x))))) +(declaim (inline call-1035721)) +(defun call-1035721 (function) + (lambda (x) + (funcall function x))) + +(declaim (inline identity-1035721)) +(defun identity-1035721 (x) + x) + +(test-util:with-test (:name :bug-1035721) + (compile nil `(lambda () + (list + (call-1035721 #'identity-1035721) + (lambda (x) + (identity-1035721 x)))))) + +(test-util:with-test (:name :expt-type-derivation-and-method-redefinition) + (defmethod expt-type-derivation ((x list) &optional (y 0.0)) + (declare (type float y)) + (expt 2 y)) + ;; the redefinition triggers a type lookup of the old + ;; fast-method-function's type, which had a bogus type specifier of + ;; the form (double-float 0) from EXPT type derivation + (defmethod expt-type-derivation ((x list) &optional (y 0.0)) + (declare (type float y)) + (expt 2 y))) ;;; success