From d2431e07d54ee40bb31fd34d8c25bba0d10e154e Mon Sep 17 00:00:00 2001 From: Vincent St-Amour Date: Fri, 4 May 2012 17:06:34 -0400 Subject: [PATCH] Fix prims.rkt's type->contract to accept keyword arguments. Necessary when some prims are used at the top-level. original commit: 95c2115799587caa3ed64d4503a535436bde9116 --- collects/typed-racket/base-env/prims.rkt | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/collects/typed-racket/base-env/prims.rkt b/collects/typed-racket/base-env/prims.rkt index 5b4fb068..264af9d6 100644 --- a/collects/typed-racket/base-env/prims.rkt +++ b/collects/typed-racket/base-env/prims.rkt @@ -56,8 +56,12 @@ This file defines two sorts of primitives. All of them are provided into any mod ;; dynamically loaded b/c they're only used at the top-level, so we save a lot ;; of loading by not having them when we're in a module (define-for-syntax (parse-type stx) ((dynamic-require 'typed-racket/private/parse-type 'parse-type) stx)) -(define-for-syntax (type->contract stx) ((dynamic-require 'typed-racket/private/type-contract 'type->contract) stx)) - +(define-for-syntax type->contract + (make-keyword-procedure + (lambda (kws kw-args . rest) + (keyword-apply + (dynamic-require 'typed-racket/private/type-contract 'type->contract) + kws kw-args rest)))) (define-syntaxes (require/typed-legacy require/typed) (let ()