From 94861becd012f99a6438a1f9075d43fde0c8cf62 Mon Sep 17 00:00:00 2001 From: Eric Dobson Date: Thu, 4 Apr 2013 08:29:15 -0700 Subject: [PATCH] Fix untested contract generation code. Closes PR 13449. --- .../tests/typed-racket/succeed/case-lambda-rest.rkt | 12 ++++++++++++ collects/typed-racket/private/type-contract.rkt | 2 +- 2 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 collects/tests/typed-racket/succeed/case-lambda-rest.rkt diff --git a/collects/tests/typed-racket/succeed/case-lambda-rest.rkt b/collects/tests/typed-racket/succeed/case-lambda-rest.rkt new file mode 100644 index 0000000000..1fe24b7dac --- /dev/null +++ b/collects/tests/typed-racket/succeed/case-lambda-rest.rkt @@ -0,0 +1,12 @@ +#lang racket/load + +(module a typed/racket + (provide foo) + (: foo + (case-> + (Number String * -> Number) + (Number String String * -> Number))) + (define (foo x . args) x)) + +(require 'a) +(foo 3 "x") diff --git a/collects/typed-racket/private/type-contract.rkt b/collects/typed-racket/private/type-contract.rkt index 29cd9b23bc..0477a1e575 100644 --- a/collects/typed-racket/private/type-contract.rkt +++ b/collects/typed-racket/private/type-contract.rkt @@ -190,7 +190,7 @@ (append (map t->c/neg (drop last-dom (length first-dom))) (append-map conv opt-kws)))] [rng* (process-rngs (map t->c rngs))] - [(rst-spec ...) (if rst #'(#:rest (listof #,(t->c/neg rest))) #'())]) + [(rst-spec ...) (if rst #`(#:rest (listof #,(t->c/neg rst))) #'())]) #'((dom* ...) (opt-dom* ...) rst-spec ... . ->* . rng*))])] [else (define ((f [case-> #f]) a)