~ 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