]> birchwood-abbey.net Git - mit-scheme.git/commitdiff
Eliminate superfluous compiler warnings for case-lambda expansion.
authorChris Hanson <org/chris-hanson/cph>
Tue, 6 Sep 2022 08:47:51 +0000 (01:47 -0700)
committerChris Hanson <org/chris-hanson/cph>
Tue, 6 Sep 2022 08:47:51 +0000 (01:47 -0700)
src/runtime/mit-macros.scm

index 5b2f4171845c00c81cca2b3fa6738185edafcd2c..29bdca07f30613098732febf64a696ace20265ec 100644 (file)
@@ -521,9 +521,11 @@ USA.
        (lambda (clauses)
         (if (pair? clauses)
             (receive (m bindings entries rest-case)
-                     (parse-case-lambda clauses)
+                (parse-case-lambda clauses)
               (let ((cases (assign-cases m entries)))
-                (generate-case-lambda bindings rest-case cases)))
+                (generate-case-lambda (remove-unused-bindings bindings cases)
+                                      rest-case
+                                      cases)))
             (case-lambda-no-choices)))))))
 
 (define (parse-case-lambda clauses)
@@ -568,6 +570,11 @@ USA.
          (if (not (vector-ref cases i))
              (vector-set! cases i name)))))
     (vector->list cases)))
+
+(define (remove-unused-bindings bindings cases)
+  (filter (lambda (binding)
+           (memq (car binding) cases))
+         bindings))
 \f
 (define (generate-case-lambda bindings rest-case cases)
   (let ((default (and rest-case (new-identifier 'default))))