From a3e25231a6063adedf361c92697c7c89712151b2 Mon Sep 17 00:00:00 2001 From: Sam Tobin-Hochstadt Date: Fri, 6 Mar 2015 12:13:40 -0500 Subject: [PATCH] Look up unrenamed versions of type aliases as well. Fixes bug reported by Alexander Knauth. --- typed-racket-lib/typed-racket/env/type-alias-env.rkt | 8 +++++--- typed-racket-test/succeed/provide-alias-omit-define.rkt | 9 +++++++++ 2 files changed, 14 insertions(+), 3 deletions(-) create mode 100644 typed-racket-test/succeed/provide-alias-omit-define.rkt diff --git a/typed-racket-lib/typed-racket/env/type-alias-env.rkt b/typed-racket-lib/typed-racket/env/type-alias-env.rkt index 19e73b2f..5c151e2d 100644 --- a/typed-racket-lib/typed-racket/env/type-alias-env.rkt +++ b/typed-racket-lib/typed-racket/env/type-alias-env.rkt @@ -1,8 +1,9 @@ #lang racket/base (require "../utils/utils.rkt" - syntax/id-table racket/dict - (utils tc-utils) + syntax/id-table racket/dict + (utils tc-utils) + (typecheck renamer) racket/match) (provide register-type-alias @@ -33,7 +34,8 @@ (mapping-put! id (make-resolved ty))) (define (lookup-type-alias id parse-type [k (lambda () (tc-error "Unknown type alias: ~a" (syntax-e id)))]) - (match (free-id-table-ref the-mapping id #f) + (match (or (free-id-table-ref the-mapping id #f) + (free-id-table-ref the-mapping (un-rename id) #f)) [#f (k)] [(struct unresolved (stx #f)) (resolve-type-alias id parse-type)] diff --git a/typed-racket-test/succeed/provide-alias-omit-define.rkt b/typed-racket-test/succeed/provide-alias-omit-define.rkt new file mode 100644 index 00000000..a552b929 --- /dev/null +++ b/typed-racket-test/succeed/provide-alias-omit-define.rkt @@ -0,0 +1,9 @@ +#lang racket +(module m typed/racket + (provide x) + (define-type x 'x #:omit-define-syntaxes) + (define x : x 'x)) +(module n typed/racket + (require (submod ".." m)) + x ; works fine, outputs 'x + (define y : x x)) \ No newline at end of file