~ chicken-core (chicken-5) cdaf6978004a1eb0f4bba5eb586a8cf8002ecea8
commit cdaf6978004a1eb0f4bba5eb586a8cf8002ecea8 Author: Peter Bex <peter@more-magic.net> AuthorDate: Sat May 27 15:56:29 2017 +0200 Commit: Evan Hanson <evhan@foldling.org> CommitDate: Tue May 30 11:07:35 2017 +1200 Improve type declarations for condition-manipulation procedures Condition kinds and properties do not have to be symbols: they can be any type of object. The only constraint according to SRFI-12 is that they must be comparable using eqv?, so all type declarations that assume they're symbols are wrong, strictly speaking. Signed-off-by: Evan Hanson <evhan@foldling.org> diff --git a/types.db b/types.db index 3f389748..004d531d 100644 --- a/types.db +++ b/types.db @@ -950,9 +950,9 @@ (chicken.condition#abort (procedure chicken.condition#abort (*) noreturn)) (chicken.condition#condition (#(procedure #:clean #:enforce) chicken.condition#condition (list #!rest list) (struct condition))) (chicken.condition#condition? (#(procedure #:pure #:predicate (struct condition)) chicken.condition#condition? (*) boolean)) -(chicken.condition#condition->list (#(procedure #:clean #:enforce) chicken.condition#condition->list ((struct condition)) (list-of (pair symbol *)))) -(chicken.condition#condition-predicate (#(procedure #:clean #:enforce) chicken.condition#condition-predicate (symbol) (procedure ((struct condition)) boolean))) -(chicken.condition#condition-property-accessor (#(procedure #:clean #:enforce) chicken.condition#condition-property-accessor (symbol symbol #!optional *) (procedure ((struct condition)) *))) +(chicken.condition#condition->list (#(procedure #:clean #:enforce) chicken.condition#condition->list ((struct condition)) (list-of pair))) +(chicken.condition#condition-predicate (#(procedure #:clean #:enforce) chicken.condition#condition-predicate (*) (procedure ((struct condition)) boolean))) +(chicken.condition#condition-property-accessor (#(procedure #:clean #:enforce) chicken.condition#condition-property-accessor (* * #!optional *) (procedure ((struct condition)) *))) (chicken.condition#current-exception-handler (#(procedure #:clean #:enforce) chicken.condition#current-exception-handler (#!optional (procedure (*) noreturn) boolean boolean) procedure) @@ -961,9 +961,9 @@ #(tmp1)))) (() ##sys#current-exception-handler)) (chicken.condition#get-call-chain (#(procedure #:clean #:enforce) chicken.condition#get-call-chain (#!optional fixnum (struct thread)) (list-of vector))) -(chicken.condition#get-condition-property (#(procedure #:clean #:enforce) chicken.condition#get-condition-property ((struct condition) symbol symbol #!optional *) *)) +(chicken.condition#get-condition-property (#(procedure #:clean #:enforce) chicken.condition#get-condition-property ((struct condition) * * #!optional *) *)) (chicken.condition#make-composite-condition (#(procedure #:clean #:enforce) chicken.condition#make-composite-condition (#!rest (struct condition)) (struct condition))) -(chicken.condition#make-property-condition (#(procedure #:clean #:enforce) chicken.condition#make-property-condition (symbol #!rest *) (struct condition))) +(chicken.condition#make-property-condition (#(procedure #:clean #:enforce) chicken.condition#make-property-condition (* #!rest *) (struct condition))) (chicken.condition#with-exception-handler (#(procedure #:enforce) chicken.condition#with-exception-handler ((procedure (*) . *) (procedure () . *)) . *)) (chicken.condition#signal (procedure chicken.condition#signal (*) . *))Trap