~ chicken-core (chicken-5) 540aa92e8c77af8a6f94d98c0ff39b36dffa0434
commit 540aa92e8c77af8a6f94d98c0ff39b36dffa0434
Author: felix <felix@call-with-current-continuation.org>
AuthorDate: Tue Apr 24 12:36:16 2012 +0200
Commit: Peter Bex <peter.bex@xs4all.nl>
CommitDate: Wed Apr 25 21:18:54 2012 +0200
prepend line-number in error message generated by assert only if literal string is given
Signed-off-by: Peter Bex <peter.bex@xs4all.nl>
diff --git a/chicken-syntax.scm b/chicken-syntax.scm
index 2ea70727..968aab25 100644
--- a/chicken-syntax.scm
+++ b/chicken-syntax.scm
@@ -172,16 +172,11 @@
(lambda (form r c)
(##sys#check-syntax 'assert form '#(_ 1))
(let* ((exp (cadr form))
- (ln (get-line-number form))
(msg-and-args (cddr form))
- (msg (if (null? msg-and-args)
- "assertion failed"
- (let ((msg-str (car msg-and-args)))
- (##sys#check-string msg-str 'assert)
- msg-str)))
- (msg (if ln
- (string-append "(" ln ") " msg)
- msg)))
+ (msg (optional msg-and-args "assertion failed")))
+ (when (string? msg)
+ (and-let* ((ln (get-line-number form)))
+ (set! msg (string-append "(" ln ") " msg))))
`(##core#if (##core#check ,exp)
(##core#undefined)
(##sys#error
Trap