X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=tests%2Feval.impure.lisp;h=6afd64cd55d5624ca67db101725a1db44e57686c;hb=97dd06859cae90c8ef9021dafe1beebb78b1547f;hp=2e6d502990b1c4b5b8eceb4ba721c7be4f1ab12f;hpb=b3fc19fd2ee925f1a16e301012094b58c2cfd68a;p=sbcl.git diff --git a/tests/eval.impure.lisp b/tests/eval.impure.lisp index 2e6d502..6afd64c 100644 --- a/tests/eval.impure.lisp +++ b/tests/eval.impure.lisp @@ -237,4 +237,29 @@ (declare (optimize speed)) (+ x y))))))) +(with-test (:name :bug-238) + (let ((sb-ext:*evaluator-mode* :compile)) + (handler-bind ((sb-ext:compiler-note #'error)) + (eval '(defclass bug-238 () ())) + (eval '(defmethod bug-238 ((x bug-238) (bug-238 bug-238)) + (call-next-method))) + (eval '(handler-case + (with-input-from-string (*query-io* " no") + (yes-or-no-p)) + (simple-type-error () 'error))) + t))) + +(with-test (:name :bug-524707 :skipped-on '(not :sb-eval)) + (let ((*evaluator-mode* :interpret) + (lambda-form '(lambda (x) (declare (fixnum x)) (1+ x)))) + (let ((fun (eval lambda-form))) + (assert (equal lambda-form (function-lambda-expression fun)))))) + +(with-test (:name (eval :source-context-in-compiler)) + (let ((noise (with-output-to-string (*error-output*) + (let ((*evaluator-mode* :compile)) + (eval `(defun source-context-test (x) y)))))) + (with-input-from-string (s noise) + (assert (equal "; in: DEFUN SOURCE-CONTEXT-TEST" (read-line s)))))) + ;;; success