~ 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