wingo pushed a commit to branch wip-whippet
in repository guile.

commit 05dd829ad3d5f1ff828b3da648dc542847219c23
Author: Andy Wingo <wi...@pobox.com>
AuthorDate: Fri May 9 14:19:09 2025 +0200

    boot-9: case warnings use syntax-source
    
    * module/ice-9/boot-9.scm (case): Use syntax-source instead of
    source-properties.
---
 module/ice-9/boot-9.scm | 17 +++++++++--------
 1 file changed, 9 insertions(+), 8 deletions(-)

diff --git a/module/ice-9/boot-9.scm b/module/ice-9/boot-9.scm
index 5a8415059..d0cc20420 100644
--- a/module/ice-9/boot-9.scm
+++ b/module/ice-9/boot-9.scm
@@ -548,23 +548,24 @@ If returning early, return the return value of F."
                             (let ((seen
                                    (fold
                                     (lambda (datum seen)
+                                      (define raw (syntax->datum datum))
                                       (define (warn-datum type)
                                         ((@ (system base message)
                                             warning)
                                          type
-                                         (append (source-properties datum)
-                                                 (source-properties
-                                                  (syntax->datum #'test)))
-                                         datum
+                                         (or (syntax-source datum)
+                                             (syntax-source #'test)
+                                             '())
+                                         raw
                                          (syntax->datum clause)
                                          (syntax->datum whole-expr)))
-                                      (when (memv datum seen)
+                                      (when (memv raw seen)
                                         (warn-datum 'duplicate-case-datum))
-                                      (when (or (pair? datum) (array? datum))
+                                      (when (or (pair? raw) (array? raw))
                                         (warn-datum 'bad-case-datum))
-                                      (cons datum seen))
+                                      (cons raw seen))
                                     seen
-                                    (map syntax->datum #'(datums ...)))))
+                                    #'(datums ...))))
                               (values (lambda (tail)
                                         #`((if (memv key '(datums ...))
                                                clause-expr

Reply via email to