From 61cefef89c8120ffc46d9cc9095637d8337c924e Mon Sep 17 00:00:00 2001 From: Sam Tobin-Hochstadt Date: Mon, 7 Jul 2008 14:25:15 -0400 Subject: [PATCH] More info in internal errors. Fix substitution in nested ... case. --- collects/typed-scheme/private/tc-utils.ss | 6 ++++-- collects/typed-scheme/private/type-utils.ss | 3 ++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/collects/typed-scheme/private/tc-utils.ss b/collects/typed-scheme/private/tc-utils.ss index 5c1e806f7c..8652f5f690 100644 --- a/collects/typed-scheme/private/tc-utils.ss +++ b/collects/typed-scheme/private/tc-utils.ss @@ -106,8 +106,10 @@ (define-struct (exn:fail:tc exn:fail) ()) ;; raise an internal error - typechecker bug! -(define (int-err msg . args) - (raise (make-exn:fail:tc (string-append "Internal Typechecker Error: " (apply format msg args)) +(define (int-err msg . args) + (raise (make-exn:fail:tc (string-append "Internal Typechecker Error: " + (apply format msg args) + (format "\nwhile typechecking\n~a" (syntax->datum (current-orig-stx)))) (current-continuation-marks)))) (define-syntax (nyi stx) diff --git a/collects/typed-scheme/private/type-utils.ss b/collects/typed-scheme/private/type-utils.ss index e6ba3654f0..80d7a5ffd6 100644 --- a/collects/typed-scheme/private/type-utils.ss +++ b/collects/typed-scheme/private/type-utils.ss @@ -40,7 +40,8 @@ [#:arr dom rng rest drest thn-eff els-eff (begin (when (and (pair? drest) - (eq? name (cdr drest))) + (eq? name (cdr drest)) + (just-Dotted? name)) (int-err "substitute used on ... variable ~a in type ~a" name target)) (make-arr (map sb dom) (sb rng)