diff --git a/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/utils/any-wrap.rkt b/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/utils/any-wrap.rkt index 8c60bc5a..d1951185 100644 --- a/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/utils/any-wrap.rkt +++ b/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/utils/any-wrap.rkt @@ -99,10 +99,7 @@ ;; chaperones, or if i could tell if they were immutable. [(? struct?) (wrap-struct neg-party v)] [(? procedure?) - (if (procedure-arity-includes? v 0) - (chaperone-procedure v (case-lambda [() (values)] - [_ (fail neg-party v)])) - (chaperone-procedure v (lambda args (fail neg-party v))))] + (chaperone-procedure v (lambda args (fail neg-party v)))] [(? promise?) (chaperone-struct v diff --git a/pkgs/typed-racket-pkgs/typed-racket-test/tests/typed-racket/fail/pr14173.rkt b/pkgs/typed-racket-pkgs/typed-racket-test/tests/typed-racket/fail/pr14173.rkt new file mode 100644 index 00000000..6c69b9fd --- /dev/null +++ b/pkgs/typed-racket-pkgs/typed-racket-test/tests/typed-racket/fail/pr14173.rkt @@ -0,0 +1,13 @@ +#; +(exn-pred "use a higher-order value") +#lang racket + +(module t typed/racket #:no-optimize + (provide f g) + + (define f (ann (case-lambda [() (add1 "hello")] [(x) x]) (Number -> Number))) + (define g (ann f Any))) + +(require 't) +(f 1) +(g) \ No newline at end of file diff --git a/pkgs/typed-racket-pkgs/typed-racket-test/tests/typed-racket/unit-tests/typecheck-tests.rkt b/pkgs/typed-racket-pkgs/typed-racket-test/tests/typed-racket/unit-tests/typecheck-tests.rkt index 35346005..80b4f637 100644 --- a/pkgs/typed-racket-pkgs/typed-racket-test/tests/typed-racket/unit-tests/typecheck-tests.rkt +++ b/pkgs/typed-racket-pkgs/typed-racket-test/tests/typed-racket/unit-tests/typecheck-tests.rkt @@ -296,6 +296,7 @@ ;; Needed for constructing TR types in expected values (for-syntax (rep type-rep filter-rep object-rep) + (base-env base-structs) (rename-in (types abbrev union numeric-tower filter-ops utils resolve) [Un t:Un] [-> t:->]))) @@ -3177,12 +3178,11 @@ #:msg #rx"expected: Symbol.*given: Any"] [tc-err - (raise (λ ([x : Number]) (add1 x))) - #:ret (ret (Un))] + (raise (λ ([x : Number]) (add1 x)))] [tc-err - (exn:fail:syntax "" (current-continuation-marks) (list (datum->syntax #f add1))) - #:ret (ret -Exn)] + (raise (exn:fail:syntax "" (current-continuation-marks) + (list (datum->syntax #f add1))))] ;; PR 14218 [tc-e (ann (values "foo" "bar") (Values String String))