From 3e53a3ea42479be76fafbb8a6e3f0fa3f79a17bb Mon Sep 17 00:00:00 2001 From: Robby Findler Date: Thu, 7 Jan 2016 12:57:46 -0600 Subject: [PATCH] make impersonator vector contracts use impersonate-vector, not chaperone-vector closes #1198 --- pkgs/racket-test/tests/racket/contract/vector.rkt | 15 +++++++++++++-- .../collects/racket/contract/private/vector.rkt | 2 +- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/pkgs/racket-test/tests/racket/contract/vector.rkt b/pkgs/racket-test/tests/racket/contract/vector.rkt index cc61440459..5d169532fe 100644 --- a/pkgs/racket-test/tests/racket/contract/vector.rkt +++ b/pkgs/racket-test/tests/racket/contract/vector.rkt @@ -1,7 +1,8 @@ #lang racket/base (require "test-util.rkt") (parameterize ([current-contract-namespace - (make-basic-contract-namespace)]) + (make-basic-contract-namespace + 'racket/contract/combinator)]) (test/spec-passed 'vectorof1 @@ -137,4 +138,14 @@ '(let ([x (vector-immutable 1 2 3)]) (eq? (contract (vectorof integer?) x 'pos 'neg) x)) - '#true)) + '#true) + + (test/spec-passed/result + 'vector/c-impersonator + '(vector-ref (contract (vectorof (make-contract #:late-neg-projection (λ (b) (λ (x n) (+ x 1))))) + (vector 0) + 'pos 'neg) + 0) + 1) + + ) diff --git a/racket/collects/racket/contract/private/vector.rkt b/racket/collects/racket/contract/private/vector.rkt index 9cc5eb8442..f0bcf66865 100644 --- a/racket/collects/racket/contract/private/vector.rkt +++ b/racket/collects/racket/contract/private/vector.rkt @@ -218,7 +218,7 @@ #:name vectorof-name #:first-order vectorof-first-order #:stronger vectorof-stronger - #:late-neg-projection (vectorof-late-neg-ho-projection chaperone-vector))) + #:late-neg-projection (vectorof-late-neg-ho-projection impersonate-vector))) (define-syntax (wrap-vectorof stx) (syntax-case stx ()