~ chicken-core (chicken-5) d5e8cff27f69568e6a49cd15a48bbd7435508093


commit d5e8cff27f69568e6a49cd15a48bbd7435508093
Author:     felix <felix@call-with-current-continuation.org>
AuthorDate: Thu Mar 26 10:17:23 2020 +0100
Commit:     Evan Hanson <evhan@foldling.org>
CommitDate: Fri Mar 27 19:26:05 2020 +1300

    Hand-expand use of "and" in specialization rules for "irregex-match?"
    
    Signed-off-by: Evan Hanson <evhan@foldling.org>

diff --git a/types.db b/types.db
index 5f018e44..43f0a741 100644
--- a/types.db
+++ b/types.db
@@ -1638,9 +1638,9 @@
 
 ;; A silly procedure, but at least we can "inline" it like this
 (chicken.irregex#irregex-match? (#(procedure #:clean #:enforce) chicken.irregex#irregex-match? (* string #!optional fixnum fixnum) boolean)
-                ((* string) (and (chicken.irregex#irregex-match #(1) #(2)) '#t))
-                ((* string fixnum) (and (chicken.irregex#irregex-match #(1) #(2) #(3)) '#t))
-                ((* string fixnum fixnum) (and (chicken.irregex#irregex-match #(1) #(2) #(3) #(4)) '#t)))
+                ((* string) (if (chicken.irregex#irregex-match #(1) #(2)) '#t '#f))
+                ((* string fixnum) (if (chicken.irregex#irregex-match #(1) #(2) #(3)) '#t '#f))
+                ((* string fixnum fixnum) (if (chicken.irregex#irregex-match #(1) #(2) #(3) #(4)) '#t '#f)))
 ;; These two return #f or a match object
 (chicken.irregex#irregex-match (#(procedure #:clean #:enforce) chicken.irregex#irregex-match (* string #!optional fixnum fixnum)
                 (or false (struct regexp-match))))
Trap