From 0e1f460ae88acb5fb470d40dfb1deda01599c95e Mon Sep 17 00:00:00 2001 From: Asumu Takikawa Date: Wed, 23 Jan 2013 14:38:17 -0500 Subject: [PATCH] Use new parameter/c argument for contract generation Closes PR 13446 original commit: 4b279eaf6a71017733888bc5df3a6b95bfe4d082 --- collects/tests/typed-racket/fail/pr13446.rkt | 12 ++++++++++++ collects/typed-racket/private/type-contract.rkt | 2 +- 2 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 collects/tests/typed-racket/fail/pr13446.rkt diff --git a/collects/tests/typed-racket/fail/pr13446.rkt b/collects/tests/typed-racket/fail/pr13446.rkt new file mode 100644 index 00000000..7cc64811 --- /dev/null +++ b/collects/tests/typed-racket/fail/pr13446.rkt @@ -0,0 +1,12 @@ +#; +(exn-pred #rx"blaming: top-level") +#lang racket/load + +(module a typed/racket + (provide p) + (: p (Parameterof String Index)) + (define p (make-parameter 0 string-length))) + +(require 'a) +(p 0) + diff --git a/collects/typed-racket/private/type-contract.rkt b/collects/typed-racket/private/type-contract.rkt index 9f087587..0cdd4435 100644 --- a/collects/typed-racket/private/type-contract.rkt +++ b/collects/typed-racket/private/type-contract.rkt @@ -422,7 +422,7 @@ ;; TODO Is this sound? [(Param: in out) (set-impersonator!) - #`(parameter/c #,(t->c out))] + #`(parameter/c #,(t->c in) #,(t->c out))] [(Hashtable: k v) (when (equal? kind flat-sym) (exit (fail))) #`(hash/c #,(t->c k #:kind chaperone-sym) #,(t->c v) #:immutable 'dont-care)]