X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=tests%2Feval.impure.lisp;h=6900d74089bd8f068a11966e1f1ff1f2d1183a1a;hb=9c9bc0e7d75e608b94f3c583d0221fdb83f108b7;hp=c5de28bcde4bdd855a5ba1a8deff3a17aa6e5202;hpb=0371580437ef7f3e39f0bfbb9e45264986408b19;p=sbcl.git diff --git a/tests/eval.impure.lisp b/tests/eval.impure.lisp index c5de28b..6900d74 100644 --- a/tests/eval.impure.lisp +++ b/tests/eval.impure.lisp @@ -226,4 +226,34 @@ (with-test (:name :toplevel-declare) (assert (raises-error? (eval '(declare (type pathname *scratch*)))))) +(with-test (:name (eval no-compiler-notes)) + (handler-bind ((sb-ext:compiler-note #'error)) + (let ((sb-ext:*evaluator-mode* :compile)) + (eval '(let ((x 42)) + (if nil x))) + (eval '(let ((* 13)) + (let ((x 42) + (y *)) + (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))) + +#+sb-eval +(with-test (:name :bug-524707) + (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)))))) + ;;; success