diff --git a/collects/tests/typed-scheme/succeed/at-exp.rkt b/collects/tests/typed-scheme/succeed/at-exp.rkt new file mode 100644 index 00000000..1226a809 --- /dev/null +++ b/collects/tests/typed-scheme/succeed/at-exp.rkt @@ -0,0 +1,9 @@ + +#lang at-exp typed/racket + +(define contents + (lambda args args)) + +(define doc @contents{x y}) + +@contents{x y} \ No newline at end of file diff --git a/collects/tests/typed-scheme/succeed/typed-scheme-no-check-arrow.rkt b/collects/tests/typed-scheme/succeed/typed-scheme-no-check-arrow.rkt new file mode 100644 index 00000000..bfa511c1 --- /dev/null +++ b/collects/tests/typed-scheme/succeed/typed-scheme-no-check-arrow.rkt @@ -0,0 +1,3 @@ +#lang typed-scheme/no-check +(: foo : Void -> Void) +(define (foo x) x) \ No newline at end of file diff --git a/collects/typed-scheme/env/type-env-structs.rkt b/collects/typed-scheme/env/type-env-structs.rkt index 1d9047b9..ccedb246 100644 --- a/collects/typed-scheme/env/type-env-structs.rkt +++ b/collects/typed-scheme/env/type-env-structs.rkt @@ -20,8 +20,16 @@ ;; eq? has the type of equal?, and l is an alist (with conses!) ;; props is a list of known propositions -(r:d-s/c env ([l (and/c (not/c dict-mutable?) dict?)]) #:transparent) -(r:d-s/c (prop-env env) ([props (listof Filter/c)]) #:transparent) +(r:d-s/c env ([l (and/c (not/c dict-mutable?) dict?)]) + #:transparent + #:property prop:custom-write + (lambda (e prt mode) + (fprintf prt "(env ~a)" (dict-map (env-l e) list)))) +(r:d-s/c (prop-env env) ([props (listof Filter/c)]) + #:transparent + #:property prop:custom-write + (lambda (e prt mode) + (fprintf prt "(env ~a ~a)" (dict-map (env-l e) list) (prop-env-props e)))) (define (mk-env orig dict) (match orig diff --git a/collects/typed-scheme/language-info.rkt b/collects/typed-scheme/language-info.rkt index ebecb8e2..89f207ac 100644 --- a/collects/typed-scheme/language-info.rkt +++ b/collects/typed-scheme/language-info.rkt @@ -14,5 +14,5 @@ (require (for-syntax typed-scheme/utils/tc-utils scheme/base)) (begin-for-syntax (set-box! typed-context? #t))) (current-namespace)) - (current-readtable readtable)) + (current-readtable (readtable))) diff --git a/collects/typed-scheme/no-check.rkt b/collects/typed-scheme/no-check.rkt index ed542f85..fb1ac85d 100644 --- a/collects/typed-scheme/no-check.rkt +++ b/collects/typed-scheme/no-check.rkt @@ -3,10 +3,11 @@ (require (except-in "private/prims.rkt" require/typed require/opaque-type require-typed-struct) + "private/base-types-extra.rkt" (for-syntax scheme/base syntax/parse syntax/struct)) (provide (all-from-out scheme/base) (all-defined-out) - (all-from-out "private/prims.rkt")) + (all-from-out "private/prims.rkt" "private/base-types-extra.rkt")) (define-syntax (require/typed stx) diff --git a/collects/typed-scheme/typed-reader.rkt b/collects/typed-scheme/typed-reader.rkt index 3313c542..2d4e2efa 100644 --- a/collects/typed-scheme/typed-reader.rkt +++ b/collects/typed-scheme/typed-reader.rkt @@ -72,15 +72,15 @@ (let-values ([(l c p) (port-next-location port)]) (list src line col pos (and pos (- p pos)))))])) -(define readtable - (make-readtable #f #\{ 'dispatch-macro parse-id-type)) +(define (readtable) + (make-readtable (current-readtable) #\{ 'dispatch-macro parse-id-type)) (define (*read inp) - (parameterize ([current-readtable readtable]) + (parameterize ([current-readtable (readtable)]) (read inp))) (define (*read-syntax src port) - (parameterize ([current-readtable readtable]) + (parameterize ([current-readtable (readtable)]) (read-syntax src port))) (provide readtable (rename-out [*read read] [*read-syntax read-syntax]))