Don't print the type at the REPL for Bottom

Closes PR 14829
This commit is contained in:
Asumu Takikawa 2014-11-12 17:08:41 -05:00
parent 1681126ed5
commit 7725262771
2 changed files with 29 additions and 6 deletions

View File

@ -122,10 +122,14 @@
[else (set! did-I-suggest-:print-type-already? #t) [else (set! did-I-suggest-:print-type-already? #t)
:print-type-message]))] :print-type-message]))]
[x (int-err "bad type result: ~a" x)])) [x (int-err "bad type result: ~a" x)]))
(if ty-str (if (and ty-str
#`(begin (display '#,ty-str) (not (null? (syntax-e #'(transformed-body ...)))))
#,(if (unbox include-extra-requires?) (with-syntax ([(transformed-body ... transformed-last)
extra-requires #'(transformed-body ...)])
#'(begin)) #`(begin #,(if (unbox include-extra-requires?)
#,(arm #'(begin transformed-body ...))) extra-requires
#'(begin))
#,(arm #'(begin transformed-body ...))
(begin0 #,(arm #'transformed-last)
(display '#,ty-str))))
(arm #'(begin transformed-body ...))))))])) (arm #'(begin transformed-body ...))))))]))

View File

@ -0,0 +1,19 @@
#lang racket/base
;; Test for PR 14829. Make sure the type is not printed
;; for expressions that return Bottom.
(require rackunit
racket/sandbox)
(define out (open-output-string))
(define tr-eval
(parameterize ([sandbox-output out])
(call-with-trusted-sandbox-configuration
(λ () (make-evaluator 'typed/racket)))))
(with-handlers ([exn? values])
(tr-eval '(error "foo")))
(check-equal? "" (get-output-string out))