1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-02 02:10:19 +02:00

boot-9: case warnings use syntax-source

* module/ice-9/boot-9.scm (case): Use syntax-source instead of
source-properties.
This commit is contained in:
Andy Wingo 2025-05-09 14:19:09 +02:00
parent a35cb9dc46
commit 05dd829ad3

View file

@ -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