~ chicken-core (chicken-5) 51deb37e07819e04f480bf390857f97ab29bac98
commit 51deb37e07819e04f480bf390857f97ab29bac98
Author: megane <meganeka@gmail.com>
AuthorDate: Sat May 22 07:47:53 2021 +0300
Commit: Evan Hanson <evhan@foldling.org>
CommitDate: Fri Jul 30 13:13:07 2021 +1200
FFI: Make scrutinizer not allow #t where nullable value is expected
E.g. annotate (foreign-lambda* void ((blob x)) "return;") with
((or false blob) -> undefined)
instead of current
((or boolean blob) -> undefined)
Signed-off-by: Evan Hanson <evhan@foldling.org>
diff --git a/support.scm b/support.scm
index b56b7d00..19702271 100644
--- a/support.scm
+++ b/support.scm
@@ -1363,17 +1363,17 @@
((scheme-pointer nonnull-scheme-pointer) '*)
((blob)
(case mode
- ((arg) '(or boolean blob))
+ ((arg) '(or false blob))
(else 'blob)))
((nonnull-blob) 'blob)
((pointer-vector)
(case mode
- ((arg) '(or boolean pointer-vector))
+ ((arg) '(or false pointer-vector))
(else 'pointer-vector)))
((nonnull-pointer-vector) 'pointer-vector)
((u8vector u16vector s8vector s16vector u32vector s32vector u64vector s64vector f32vector f64vector)
(case mode
- ((arg) `(or boolean (struct ,ft)))
+ ((arg) `(or false (struct ,ft)))
(else `(struct ,ft))))
((nonnull-u8vector) '(struct u8vector))
((nonnull-s8vector) '(struct s8vector))
@@ -1389,10 +1389,10 @@
unsigned-long)
'integer)
((c-pointer)
- '(or boolean pointer locative))
+ '(or false pointer locative))
((nonnull-c-pointer) 'pointer)
((c-string c-string* unsigned-c-string unsigned-c-string*)
- '(or boolean string))
+ '(or false string))
((c-string-list c-string-list*)
'(list-of string))
((nonnull-c-string nonnull-c-string* nonnull-unsigned-c-string*) 'string)
@@ -1401,7 +1401,7 @@
(cond ((pair? t)
(case (car t)
((ref pointer function c-pointer)
- '(or boolean pointer locative))
+ '(or false pointer locative))
((const) (foreign-type->scrutiny-type (cadr t) mode))
((enum) 'integer)
((nonnull-pointer nonnull-c-pointer) 'pointer)
Trap