Fix exn-pred handling.
This commit is contained in:
parent
477cba1b0b
commit
41c9a2eaf1
|
@ -24,20 +24,22 @@
|
||||||
[(number? e)
|
[(number? e)
|
||||||
(and (exn:fail:syntax? val)
|
(and (exn:fail:syntax? val)
|
||||||
(= e (length (exn:fail:syntax-exprs val))))]
|
(= e (length (exn:fail:syntax-exprs val))))]
|
||||||
[(or (string? e) (regexp? e) (bytes? e))
|
[else
|
||||||
(regexp-match e (exn-message val))]))))
|
(regexp-match e (exn-message val))]))))
|
||||||
args))
|
args))
|
||||||
|
|
||||||
(define (exn-pred p)
|
(define (exn-pred p)
|
||||||
(let ([sexp (with-handlers
|
(let ([sexp (with-handlers
|
||||||
([exn:fail? (lambda _ #f)])
|
([exn:fail? (lambda _ #f)])
|
||||||
(with-input-from-file p
|
(call-with-input-file
|
||||||
(lambda ()
|
p
|
||||||
(read-line 'any) (read))))])
|
(lambda (prt)
|
||||||
|
(read-line prt 'any) (read prt))))])
|
||||||
(match sexp
|
(match sexp
|
||||||
[(list-rest 'exn-pred e)
|
[(list-rest 'exn-pred e)
|
||||||
(eval `(exn-matches . ,e) (namespace-anchor->namespace a))]
|
(eval `(exn-matches . ,e) (namespace-anchor->namespace a))]
|
||||||
[_ (exn-matches ".*typecheck.*" exn:fail:syntax?)])))
|
[_
|
||||||
|
(exn-matches ".*typecheck.*" exn:fail:syntax?)])))
|
||||||
|
|
||||||
(define (mk-tests dir loader test)
|
(define (mk-tests dir loader test)
|
||||||
(lambda ()
|
(lambda ()
|
||||||
|
|
Loading…
Reference in New Issue
Block a user