~ chicken-core (master) 052d38368693dfd66631a33a6d03f0eac378d3ea


commit 052d38368693dfd66631a33a6d03f0eac378d3ea
Author:     felix <felix@call-with-current-continuation.org>
AuthorDate: Tue Aug 25 09:48:37 2026 +0200
Commit:     felix <felix@call-with-current-continuation.org>
CommitDate: Tue Aug 25 09:48:37 2026 +0200

    properly type-check argument to string-translate*

diff --git a/data-structures.scm b/data-structures.scm
index 8e4a744f..63fbc9a4 100644
--- a/data-structures.scm
+++ b/data-structures.scm
@@ -330,6 +330,12 @@
 (define (string-translate* str smap)
   (##sys#check-string str 'string-translate*)
   (##sys#check-list smap 'string-translate*)
+  (for-each 
+    (lambda (p) 
+      (##sys#check-pair p 'string-translate*)
+      (##sys#check-string (car p) 'string-translate*)
+      (##sys#check-string (cdr p) 'string-translate*))
+    smap)
   (let ((len (string-length str)))
     (define (collect i from total fs)
       (if (fx>= i len)
Trap