From 05f36015d563d4942f5aa0dcb6f4557e4c24f090 Mon Sep 17 00:00:00 2001 From: Jay McCarthy Date: Wed, 5 Nov 2008 22:31:55 +0000 Subject: [PATCH] Better contracts svn: r12317 --- collects/tests/web-server/servlet/helpers-test.ss | 4 ++-- collects/web-server/scribblings/servlet.scrbl | 2 +- collects/web-server/servlet/helpers.ss | 10 ++++++---- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/collects/tests/web-server/servlet/helpers-test.ss b/collects/tests/web-server/servlet/helpers-test.ss index 7d2b840fd8..3ac825be49 100644 --- a/collects/tests/web-server/servlet/helpers-test.ss +++ b/collects/tests/web-server/servlet/helpers-test.ss @@ -19,10 +19,10 @@ "with-errors-to-browser" (test-case "Basic" - (check-pred list? (with-errors-to-browser (lambda (x) x) (lambda () (error 'error "Hey!"))))) + (check-pred list? (let/ec esc (with-errors-to-browser esc (lambda () (error 'error "Hey!")))))) (test-case "Basic (succ)" - (check-true (with-errors-to-browser (lambda (x) x) (lambda () #t))))) + (check-true (let/ec esc (with-errors-to-browser esc (lambda () #t)))))) (test-suite "redirect-to" diff --git a/collects/web-server/scribblings/servlet.scrbl b/collects/web-server/scribblings/servlet.scrbl index a2cc88fa18..551c74d2d0 100644 --- a/collects/web-server/scribblings/servlet.scrbl +++ b/collects/web-server/scribblings/servlet.scrbl @@ -547,7 +547,7 @@ functions of interest for the servlet developer.} @defthing[see-other redirection-status?]{A @scheme[redirection-status?] for "see-other" redirections.} -@defproc[(with-errors-to-browser [send/finish-or-back (response? . -> . void?)] +@defproc[(with-errors-to-browser [send/finish-or-back (response? . -> . request?)] [thunk (-> any)]) any]{ Calls @scheme[thunk] with an exception handler that generates an HTML error page diff --git a/collects/web-server/servlet/helpers.ss b/collects/web-server/servlet/helpers.ss index 6977867aa7..d6e605b61a 100644 --- a/collects/web-server/servlet/helpers.ss +++ b/collects/web-server/servlet/helpers.ss @@ -32,9 +32,6 @@ (pre ,(exn->string exn)))))))]) (thunk))) -; XXX contract -(provide - with-errors-to-browser) (provide/contract [redirect-to (->* (string?) (redirection-status? #:headers (listof header?)) @@ -42,4 +39,9 @@ [redirection-status? (any/c . -> . boolean?)] [permanently redirection-status?] [temporarily redirection-status?] - [see-other redirection-status?]) + [see-other redirection-status?] + [with-errors-to-browser + ((response? . -> . request?) + (-> any) + . -> . + any)])