~ 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