From ece68f93e3e3ae68a7e3ca14bc061a5c8db12f86 Mon Sep 17 00:00:00 2001 From: Asumu Takikawa Date: Wed, 23 May 2012 15:18:27 -0400 Subject: [PATCH] TR: Fix type-checking of hash literals. original commit: abf9223203d373840adb4bba0495dac7aa422517 --- collects/tests/typed-racket/succeed/hash-literal.rkt | 4 ++++ collects/typed-racket/typecheck/tc-expr-unit.rkt | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) create mode 100644 collects/tests/typed-racket/succeed/hash-literal.rkt diff --git a/collects/tests/typed-racket/succeed/hash-literal.rkt b/collects/tests/typed-racket/succeed/hash-literal.rkt new file mode 100644 index 00000000..1c24f8e0 --- /dev/null +++ b/collects/tests/typed-racket/succeed/hash-literal.rkt @@ -0,0 +1,4 @@ +#lang typed/racket + +(define: x : (HashTable String String) #hash()) +(ann #hash() (HashTable String String)) diff --git a/collects/typed-racket/typecheck/tc-expr-unit.rkt b/collects/typed-racket/typecheck/tc-expr-unit.rkt index d7e37944..50940566 100644 --- a/collects/typed-racket/typecheck/tc-expr-unit.rkt +++ b/collects/typed-racket/typecheck/tc-expr-unit.rkt @@ -111,7 +111,7 @@ (let* ([h (syntax-e #'i)] [ks (hash-map h (lambda (x y) (tc-literal x k)))] [vs (hash-map h (lambda (x y) (tc-literal y v)))]) - (make-Hashtable (generalize (check-below (apply Un ks)) k) (generalize (check-below (apply Un vs)))))] + (make-Hashtable (generalize (check-below (apply Un ks) k)) (generalize (check-below (apply Un vs) v))))] [_ (let* ([h (syntax-e #'i)] [ks (hash-map h (lambda (x y) (tc-literal x)))] [vs (hash-map h (lambda (x y) (tc-literal y)))])