Fix is_arity_list
This commit is contained in:
parent
17665d33a2
commit
25013320be
|
@ -287,7 +287,7 @@ space. Use @racket[raise-arguments-error], instead.}
|
|||
(listof
|
||||
(or/c exact-nonnegative-integer?
|
||||
arity-at-least?)))]
|
||||
[arg-v any/c #f] ...)
|
||||
[arg-v any/c] ...)
|
||||
any]{
|
||||
|
||||
Creates an @racket[exn:fail:contract:arity] value and @racket[raise]s
|
||||
|
|
|
@ -2061,6 +2061,29 @@
|
|||
(err/rt-test (list->vector 'hello))
|
||||
(err/rt-test (list->vector '(#\h . #\e)))
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;; errors
|
||||
|
||||
(err/rt-test (raise-arity-error 'f 5) exn:fail:contract:arity?)
|
||||
(err/rt-test (raise-arity-error 'f (make-arity-at-least 5)) exn:fail:contract:arity?)
|
||||
(err/rt-test (raise-arity-error 'f (list 1 (make-arity-at-least 5))) exn:fail:contract:arity?)
|
||||
(err/rt-test (raise-arity-error + 5) exn:fail:contract:arity?)
|
||||
(err/rt-test (raise-arity-error + (make-arity-at-least 5)) exn:fail:contract:arity?)
|
||||
(err/rt-test (raise-arity-error + (list 1 (make-arity-at-least 5))) exn:fail:contract:arity?)
|
||||
|
||||
(define (exn:fail:contract:arity?/#f e) (not (exn:fail:contract:arity? e)))
|
||||
|
||||
(err/rt-test (raise-arity-error 'f -5) exn:fail:contract:arity?/#f)
|
||||
(err/rt-test (raise-arity-error 'f -5) exn:fail:contract?)
|
||||
(err/rt-test (raise-arity-error 'f (list 1 'x)) exn:fail:contract:arity?/#f)
|
||||
(err/rt-test (raise-arity-error 'f (list 1 'x)) exn:fail:contract?)
|
||||
(err/rt-test (raise-arity-error 1 1) exn:fail:contract:arity?/#f)
|
||||
(err/rt-test (raise-arity-error 1 1) exn:fail:contract?)
|
||||
|
||||
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;; continuations
|
||||
|
||||
(test-cont)
|
||||
|
||||
|
|
|
@ -3009,7 +3009,7 @@ static int is_arity_list(Scheme_Object *l)
|
|||
while (!SCHEME_NULLP(l)) {
|
||||
a = SCHEME_CAR(l);
|
||||
if (!scheme_nonneg_exact_p(a)
|
||||
&& !scheme_nonneg_exact_p(a))
|
||||
&& !is_arity_at_least(a))
|
||||
return 0;
|
||||
l = SCHEME_CDR(l);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user