diff --git a/collects/typed-scheme/typecheck/signatures.rkt b/collects/typed-scheme/typecheck/signatures.rkt index 14103c35..3411232e 100644 --- a/collects/typed-scheme/typecheck/signatures.rkt +++ b/collects/typed-scheme/typecheck/signatures.rkt @@ -37,8 +37,7 @@ (define-signature tc-let^ ([cnt tc/let-values ((syntax? syntax? syntax? syntax?) ((or/c #f tc-results?)) . ->* . tc-results?)] - [cnt tc/letrec-values (syntax? syntax? syntax? syntax? . -> . tc-results?)] - [cnt tc/letrec-values/check (syntax? syntax? syntax? syntax? tc-results? . -> . tc-results?)])) + [cnt tc/letrec-values ((syntax? syntax? syntax? syntax?) ((or/c #f tc-results?)) . ->* . tc-results?)])) (define-signature tc-dots^ ([cnt tc/dots (syntax? . -> . (values Type/c symbol?))])) diff --git a/collects/typed-scheme/typecheck/tc-expr-unit.rkt b/collects/typed-scheme/typecheck/tc-expr-unit.rkt index 522caa3f..b1beaeb4 100644 --- a/collects/typed-scheme/typecheck/tc-expr-unit.rkt +++ b/collects/typed-scheme/typecheck/tc-expr-unit.rkt @@ -389,7 +389,7 @@ [(tc-results: ts) (tc-error/expr #:return (ret (Un)) "Expected ~a values, but got only 1" (length ts))])] [(letrec-values ([(name ...) expr] ...) . body) - (tc/letrec-values/check #'((name ...) ...) #'(expr ...) #'body form expected)] + (tc/letrec-values #'((name ...) ...) #'(expr ...) #'body form expected)] ;; other [_ (tc-error/expr #:return (ret expected) "cannot typecheck unknown form : ~a~n" (syntax->datum form))] )))) diff --git a/collects/typed-scheme/typecheck/tc-let-unit.rkt b/collects/typed-scheme/typecheck/tc-let-unit.rkt index 2f64af3a..012ef3ee 100644 --- a/collects/typed-scheme/typecheck/tc-let-unit.rkt +++ b/collects/typed-scheme/typecheck/tc-let-unit.rkt @@ -83,12 +83,6 @@ expected) (run (tc-exprs (syntax->list body))))))) -(define (tc/letrec-values/check namess exprs body form expected) - (tc/letrec-values/internal namess exprs body form expected)) - -(define (tc/letrec-values namess exprs body form) - (tc/letrec-values/internal namess exprs body form #f)) - (define (tc-expr/maybe-expected/t e name) (define expecteds (map (lambda (stx) (lookup-type stx (lambda () #f))) name)) @@ -102,7 +96,7 @@ (tc-expr e))) tcr) -(define (tc/letrec-values/internal namess exprs body form expected) +(define (tc/letrec-values namess exprs body form [expected #f]) (let* ([names (map syntax->list (syntax->list namess))] [orig-flat-names (apply append names)] [exprs (syntax->list exprs)]