From 05dd829ad3d5f1ff828b3da648dc542847219c23 Mon Sep 17 00:00:00 2001 From: Andy Wingo Date: Fri, 9 May 2025 14:19:09 +0200 Subject: [PATCH] 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