diff --git a/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/typecheck/tc-if.rkt b/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/typecheck/tc-if.rkt index f0b6deef2a..97d4a2d857 100644 --- a/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/typecheck/tc-if.rkt +++ b/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/typecheck/tc-if.rkt @@ -25,7 +25,7 @@ ;; otherwise, this code is unreachable ;; and the resulting type should be the empty type [(check-unreachable-code?) - (tc-expr/check expr Univ) + (tc-expr expr) (ret (Un))] [else (ret (Un))])) (match (single-value tst) diff --git a/pkgs/typed-racket-pkgs/typed-racket-test/tests/typed-racket/fail/check-unreachable.rkt b/pkgs/typed-racket-pkgs/typed-racket-test/tests/typed-racket/fail/check-unreachable.rkt new file mode 100644 index 0000000000..511f2bd269 --- /dev/null +++ b/pkgs/typed-racket-pkgs/typed-racket-test/tests/typed-racket/fail/check-unreachable.rkt @@ -0,0 +1,17 @@ +#; +(exn-pred #rx"expected: Symbol.*given: String") +#lang racket/load + +;; This test makes sure that the check-unreachable-code mode +;; actually works. + +(require (for-syntax typed-racket/utils/tc-utils)) + +(begin-for-syntax + (check-unreachable-code? #t)) + +(require typed/racket) + +(if #t + "foo" + (symbol->string "foo"))