diff --git a/typed-racket-lib/typed-racket/typed-racket.rkt b/typed-racket-lib/typed-racket/typed-racket.rkt index f6c702d4..11c1ca4f 100644 --- a/typed-racket-lib/typed-racket/typed-racket.rkt +++ b/typed-racket-lib/typed-racket/typed-racket.rkt @@ -5,8 +5,6 @@ "standard-inits.rkt") ;; these need to be available to the generated code "typecheck/renamer.rkt" syntax/location - ;; this defines the inspector that structs will use - "utils/inspector.rkt" (for-syntax (submod "base-env/prims-contract.rkt" self-ctor)) (for-syntax "utils/struct-extraction.rkt") (for-syntax "typecheck/renamer.rkt") @@ -18,14 +16,6 @@ with-type (for-syntax do-standard-inits)) -;; This sets the inspector that typed racket structs will use, so that -;; any-wrap/c can inspect them. This allows any-wrap/c to wrap structs -;; that are defined in typed racket, and to fail on structs that it -;; can't wrap safely. -;; https://github.com/racket/typed-racket/issues/379 -;; https://github.com/racket/typed-racket/pull/385 -(current-inspector new-inspector) - (define-syntax-rule (drivers [name sym] ...) (begin (begin-for-syntax diff --git a/typed-racket-lib/typed-racket/utils/any-wrap.rkt b/typed-racket-lib/typed-racket/utils/any-wrap.rkt index 26761837..8681829a 100644 --- a/typed-racket-lib/typed-racket/utils/any-wrap.rkt +++ b/typed-racket-lib/typed-racket/utils/any-wrap.rkt @@ -12,8 +12,7 @@ (only-in racket/udp udp?) (only-in (combine-in racket/private/promise) promise? - prop:force promise-forcer) - (only-in "inspector.rkt" old-inspector)) + prop:force promise-forcer)) (define (base-val? e) (or (number? e) (string? e) (char? e) (symbol? e) @@ -74,7 +73,7 @@ v "Attempted to use a higher-order value passed as `Any` in untyped code: ~v" v)) - (define (wrap-struct neg-party s inspector) + (define (wrap-struct neg-party s [inspector (current-inspector)]) (define blame+neg-party (cons b neg-party)) (define (extract-functions struct-type) (define-values (sym init auto ref set! imms par skip?) @@ -172,8 +171,8 @@ (for/set ([i (in-set v)]) (any-wrap/traverse i neg-party))] ;; could do something with generic sets here if they had ;; chaperones, or if i could tell if they were immutable. - [(? (struct?/inspector old-inspector)) - (wrap-struct neg-party v old-inspector)] + [(? struct?) + (wrap-struct neg-party v)] [(? procedure?) (chaperone-procedure v (lambda args (fail neg-party v)))] [(? promise?) @@ -207,9 +206,7 @@ #:first-order (lambda (x) #t) #:late-neg-projection late-neg-projection)) -(define ((struct?/inspector inspector) v) - (parameterize ([current-inspector inspector]) - (struct? v))) +(define ((struct?/inspector inspector) v) (struct? v)) ;; Contract for "safe" struct predicate procedures. ;; We can trust that these obey the type (-> Any Boolean).