From be035ba8d5088a8d5edef328a0d8ea4c757d392a Mon Sep 17 00:00:00 2001 From: Asumu Takikawa Date: Mon, 11 Nov 2013 18:58:57 -0500 Subject: [PATCH] Always treat top-level redefinitions as annotated Closes PR 14144 original commit: 7c4eb845a02c77dee6a9f8a650a9261ab1a7b25b --- .../typed-racket-lib/typed-racket/typecheck/tc-toplevel.rkt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/typecheck/tc-toplevel.rkt b/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/typecheck/tc-toplevel.rkt index 8c0cc965..fbe30b75 100644 --- a/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/typecheck/tc-toplevel.rkt +++ b/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/typecheck/tc-toplevel.rkt @@ -168,7 +168,10 @@ ;; if this already had an annotation, we just construct the binding reps [(andmap (lambda (s) (lookup-type s (lambda () #f))) vars) (define top-level? (eq? (syntax-local-context) 'top-level)) - (for ([var (in-list vars)]) (finish-register-type var top-level?)) + (for ([var (in-list vars)]) + (when (dict-has-key? unann-defs var) + (free-id-table-remove! unann-defs var)) + (finish-register-type var top-level?)) (map (lambda (s) (make-def-binding s (lookup-type s))) vars)] ;; special case to infer types for top level defines [else