From f7b59f78e9212c03e950729944e7a9eb9370f363 Mon Sep 17 00:00:00 2001 From: Sam Tobin-Hochstadt Date: Fri, 28 May 2010 12:26:30 -0400 Subject: [PATCH] Generalize ListDots to Listof in inference of loop var types. --- collects/tests/typed-scheme/succeed/apply-dots-list.rkt | 1 - collects/typed-scheme/types/convenience.rkt | 5 ++--- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/collects/tests/typed-scheme/succeed/apply-dots-list.rkt b/collects/tests/typed-scheme/succeed/apply-dots-list.rkt index 85af5196b7..ec5c25febd 100644 --- a/collects/tests/typed-scheme/succeed/apply-dots-list.rkt +++ b/collects/tests/typed-scheme/succeed/apply-dots-list.rkt @@ -1,4 +1,3 @@ - ;; Change the lang to scheme for untyped version #lang typed-scheme diff --git a/collects/typed-scheme/types/convenience.rkt b/collects/typed-scheme/types/convenience.rkt index af07460c43..d8e8821dd0 100644 --- a/collects/typed-scheme/types/convenience.rkt +++ b/collects/typed-scheme/types/convenience.rkt @@ -23,9 +23,7 @@ (apply Un (map tc-result-t args))) -;; if t is of the form (Pair t* (Pair t* ... (Listof t*))) -;; return t* -;; otherwise, return t +;; used to produce a more general type for loop variables ;; generalize : Type -> Type (define (generalize t) (let/ec exit @@ -45,6 +43,7 @@ t-new) t-new (exit t)))] + [(ListDots: t bound) (-lst (substitute Univ bound t))] [_ (exit t)]))))