Make disabling the custom printer work.
This commit is contained in:
parent
124707921f
commit
5f0717d278
|
@ -67,9 +67,7 @@
|
||||||
[(id ...) exids]
|
[(id ...) exids]
|
||||||
[(ty ...) extys])
|
[(ty ...) extys])
|
||||||
(local-expand #'(let () (begin (: id ty) ... body ... (values id ...))) ctx null))))
|
(local-expand #'(let () (begin (: id ty) ... body ... (values id ...))) ctx null))))
|
||||||
(parameterize (;; disable fancy printing?
|
(parameterize (;; a cheat to avoid units
|
||||||
[custom-printer #t]
|
|
||||||
;; a cheat to avoid units
|
|
||||||
[infer-param infer]
|
[infer-param infer]
|
||||||
;; do we report multiple errors
|
;; do we report multiple errors
|
||||||
[delay-errors? #t]
|
[delay-errors? #t]
|
||||||
|
|
|
@ -39,9 +39,7 @@
|
||||||
(with-handlers
|
(with-handlers
|
||||||
(#;[(λ (e) (and (exn:fail? e) (not (exn:fail:syntax? e)) (not (exn:fail:filesystem? e))))
|
(#;[(λ (e) (and (exn:fail? e) (not (exn:fail:syntax? e)) (not (exn:fail:filesystem? e))))
|
||||||
(λ (e) (tc-error "Internal Typed Racket Error : ~a" e))])
|
(λ (e) (tc-error "Internal Typed Racket Error : ~a" e))])
|
||||||
(parameterize (;; enable fancy printing?
|
(parameterize (;; a cheat to avoid units
|
||||||
[custom-printer #t]
|
|
||||||
;; a cheat to avoid units
|
|
||||||
[infer-param infer]
|
[infer-param infer]
|
||||||
;; do we report multiple errors
|
;; do we report multiple errors
|
||||||
[delay-errors? #t]
|
[delay-errors? #t]
|
||||||
|
|
|
@ -7,6 +7,7 @@ at least theoretically.
|
||||||
|
|
||||||
(require (for-syntax racket/base syntax/parse racket/string)
|
(require (for-syntax racket/base syntax/parse racket/string)
|
||||||
racket/require-syntax racket/provide-syntax
|
racket/require-syntax racket/provide-syntax
|
||||||
|
racket/generic
|
||||||
racket/struct-info "timing.rkt")
|
racket/struct-info "timing.rkt")
|
||||||
|
|
||||||
;; to move to unstable
|
;; to move to unstable
|
||||||
|
@ -20,7 +21,7 @@ at least theoretically.
|
||||||
;; logging
|
;; logging
|
||||||
printf/log show-input?
|
printf/log show-input?
|
||||||
;; struct printing
|
;; struct printing
|
||||||
custom-printer print-multi-line-case-> define-struct/printer
|
print-multi-line-case-> define-struct/printer
|
||||||
;; provide macros
|
;; provide macros
|
||||||
rep utils typecheck infer env private types)
|
rep utils typecheck infer env private types)
|
||||||
|
|
||||||
|
@ -109,7 +110,7 @@ at least theoretically.
|
||||||
#'(void)))
|
#'(void)))
|
||||||
|
|
||||||
;; custom printing
|
;; custom printing
|
||||||
(define custom-printer (make-parameter #t))
|
(define-for-syntax custom-printer #t)
|
||||||
(define print-multi-line-case-> (make-parameter #f))
|
(define print-multi-line-case-> (make-parameter #f))
|
||||||
|
|
||||||
(define-syntax (define-struct/printer stx)
|
(define-syntax (define-struct/printer stx)
|
||||||
|
@ -117,15 +118,13 @@ at least theoretically.
|
||||||
[(form name (flds ...) printer:expr)
|
[(form name (flds ...) printer:expr)
|
||||||
#`(define-struct name (flds ...)
|
#`(define-struct name (flds ...)
|
||||||
#:property prop:custom-print-quotable 'never
|
#:property prop:custom-print-quotable 'never
|
||||||
#:property prop:custom-write
|
;; Eta expansion so that printer is not evaluated
|
||||||
(lambda (v port write?)
|
;; until needed.
|
||||||
(if (custom-printer)
|
#,@(if custom-printer
|
||||||
(printer v port write?)
|
#'(#:methods gen:custom-write
|
||||||
;; ok to make this case slow, it never runs in real code
|
[(define (write-proc v port write?)
|
||||||
((if write?
|
(printer v port write?))])
|
||||||
(dynamic-require 'racket/pretty 'pretty-write)
|
#'())
|
||||||
(dynamic-require 'racket/pretty 'pretty-print))
|
|
||||||
v port)))
|
|
||||||
#:transparent)]))
|
#:transparent)]))
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user