Check number of type errors.
original commit: 97c5444b88b79c70c1e7625361e6c6ea48284621
This commit is contained in:
parent
d229e895b4
commit
02f34aa0fd
17
collects/tests/typed-scheme/fail/ann-map-funcs.ss
Normal file
17
collects/tests/typed-scheme/fail/ann-map-funcs.ss
Normal file
|
@ -0,0 +1,17 @@
|
|||
#;
|
||||
(exn-pred 3)
|
||||
#lang typed-scheme
|
||||
|
||||
(: map-with-funcs (All (b a ...) ((a ... a -> b) * -> (a ... a -> (Listof b)))))
|
||||
|
||||
(define (map-with-funcs . fs)
|
||||
(lambda as
|
||||
(map (lambda: ([f : (a ... a -> b)])
|
||||
(apply f as))
|
||||
fs)))
|
||||
|
||||
(ann (map-with-funcs + - * /) (Number Number * -> (Listof Integer)))
|
||||
|
||||
(ann (map-with-funcs + - * /) (Number * -> (Listof Number)))
|
||||
|
||||
(ann (map-with-funcs + - * /) (Integer * -> (Listof Number)))
|
|
@ -1,3 +1,5 @@
|
|||
#;
|
||||
(exn-pred 2)
|
||||
#lang typed-scheme
|
||||
|
||||
(plambda: (a ...) ([z : String] . [w : Number *])
|
||||
|
|
|
@ -20,10 +20,12 @@
|
|||
(lambda (val)
|
||||
(and (exn? val)
|
||||
(for/and ([e args])
|
||||
(if (procedure? e)
|
||||
(e val)
|
||||
(begin
|
||||
(regexp-match e (exn-message val)))))))
|
||||
(cond [(procedure? e) (e val)]
|
||||
[(number? e)
|
||||
(and (exn:fail:syntax? val)
|
||||
(= e (length (exn:fail:syntax-exprs val))))]
|
||||
[(or (string? e) (regexp? e) (bytes? e))
|
||||
(regexp-match e (exn-message val))]))))
|
||||
args))
|
||||
|
||||
(define (exn-pred p)
|
||||
|
|
|
@ -8,4 +8,4 @@
|
|||
(apply f as))
|
||||
fs)))
|
||||
|
||||
(ann (map-with-funcs + - * /) (Integer Integer * -> (Listof Number)))
|
||||
(ann (map-with-funcs + - * /) (Number Number * -> (Listof Number)))
|
||||
|
|
Loading…
Reference in New Issue
Block a user