diff --git a/collects/racket/contract/private/base.rkt b/collects/racket/contract/private/base.rkt index 4c96c959e9..7498efa647 100644 --- a/collects/racket/contract/private/base.rkt +++ b/collects/racket/contract/private/base.rkt @@ -51,7 +51,6 @@ improve method arity mismatch contract violation error messages? (if (and name (not (parameter? new-val)) ;; when PR 11221 is fixed, remove this line (procedure? new-val) - (not (proxy-of? new-val v)) ;; proxies/chaperones handle this fine (not (eq? name (object-name new-val)))) (let ([name (if (symbol? name) name diff --git a/collects/tests/racket/contract-test.rktl b/collects/tests/racket/contract-test.rktl index 4c0e672dba..81a0c97b80 100644 --- a/collects/tests/racket/contract-test.rktl +++ b/collects/tests/racket/contract-test.rktl @@ -9929,6 +9929,8 @@ so that propagation occurs. (test ctc value-contract (contract ctc (λ (x [y 3]) x) 'pos 'neg))) (let ([ctc (->i ([x number?]) ([y number?]) [_ number?])]) (test ctc value-contract (contract ctc (λ (x [y 3]) x) 'pos 'neg))) + ;; currently fails due to procedure-rename interacting badly with + ;; chaperoned/proxied procedures (let ([ctc (unconstrained-domain-> number?)]) (test ctc value-contract (contract ctc (λ (x) 3) 'pos 'neg))) (let ([ctc (case-> (-> number? number? number?) (-> number? number?))])