diff --git a/typed-racket-lib/typed-racket/base-env/base-structs.rkt b/typed-racket-lib/typed-racket/base-env/base-structs.rkt index 9511ae31..449b37cf 100644 --- a/typed-racket-lib/typed-racket/base-env/base-structs.rkt +++ b/typed-racket-lib/typed-racket/base-env/base-structs.rkt @@ -84,7 +84,10 @@ (define-hierarchy exn:fail:contract:continuation (#:kernel-maker k:exn:fail:contract:continuation) ()) (define-hierarchy exn:fail:contract:variable (#:kernel-maker k:exn:fail:contract:variable) ())) - (define-hierarchy exn:fail:syntax (#:kernel-maker k:exn:fail:syntax) ([exprs : (-lst Any-Syntax)])) + (define-hierarchy exn:fail:syntax (#:kernel-maker k:exn:fail:syntax) ([exprs : (-lst Any-Syntax)]) + (define-hierarchy exn:fail:syntax:unbound (#:kernel-maker k:exn:fail:syntax:unbound) ()) + (define-hierarchy exn:fail:syntax:missing-module (#:kernel-maker k:exn:fail:syntax:missing-module) + ([path : -Module-Path]))) (define-hierarchy exn:fail:read (#:kernel-maker k:exn:fail:read) ([srclocs : (-lst Univ)]) ;; cce: Univ here should be srcloc @@ -93,9 +96,15 @@ (define-hierarchy exn:fail:filesystem (#:kernel-maker k:exn:fail:filesystem) () (define-hierarchy exn:fail:filesystem:exists (#:kernel-maker k:exn:fail:filesystem:exists) ()) - (define-hierarchy exn:fail:filesystem:version (#:kernel-maker k:exn:fail:filesystem:version) ())) + (define-hierarchy exn:fail:filesystem:version (#:kernel-maker k:exn:fail:filesystem:version) ()) + (define-hierarchy exn:fail:filesystem:errno (#:kernel-maker k:exn:fail:filesystem:errno) + ([errno : (-pair -Integer (one-of/c 'posix 'windows 'gai))])) + (define-hierarchy exn:fail:filesystem:missing-module (#:kernel-maker k:exn:fail:filesystem:missing-module) + ([path : -Module-Path]))) - (define-hierarchy exn:fail:network (#:kernel-maker k:exn:fail:network) ()) + (define-hierarchy exn:fail:network (#:kernel-maker k:exn:fail:network) () + (define-hierarchy exn:fail:network:errno (#:kernel-maker k:exn:fail:network:errno) + ([errno : (-pair -Integer (one-of/c 'posix 'windows 'gai))]))) (define-hierarchy exn:fail:out-of-memory (#:kernel-maker k:exn:fail:out-of-memory) ()) diff --git a/typed-racket-test/unit-tests/typecheck-tests.rkt b/typed-racket-test/unit-tests/typecheck-tests.rkt index 70d30928..6b7b0bec 100644 --- a/typed-racket-test/unit-tests/typecheck-tests.rkt +++ b/typed-racket-test/unit-tests/typecheck-tests.rkt @@ -1993,13 +1993,18 @@ exn:fail:contract:continuation exn:fail:contract:variable exn:fail:syntax + exn:fail:syntax:unbound + exn:fail:syntax:missing-module exn:fail:read exn:fail:read:eof exn:fail:read:non-char exn:fail:filesystem exn:fail:filesystem:exists exn:fail:filesystem:version + exn:fail:filesystem:errno + exn:fail:filesystem:missing-module exn:fail:network + exn:fail:network:errno exn:fail:out-of-memory exn:fail:unsupported exn:fail:user