Improve TR assertion error message

This commit is contained in:
Asumu Takikawa 2013-09-05 20:10:58 -04:00
parent dbe4594903
commit 3becf8492b

View File

@ -4,10 +4,12 @@
(define-syntax assert (define-syntax assert
(syntax-rules () (syntax-rules ()
((assert v) ((assert v)
(or v (error "Assertion failed"))) (or v (error (format "Assertion failed on ~v" v))))
((assert v pred) ((assert v pred)
(let ((val v)) (let ((val v))
(if (pred val) val (error "Assertion failed")))))) (if (pred val)
val
(error (format "Assertion ~a failed on ~v" pred val)))))))
(define (defined? v) (define (defined? v)
(not (equal? v (letrec ([x x]) x)))) (not (equal? v (letrec ([x x]) x))))