
When identifiers provided by typed modules were used in certain submodules of the form (module* n #f ...) or were used by modules implemented in a language defined by TR, the wrong redirection was used in the expansion. The reason was because TR's identifier redirection decided whether it was in a typed or untyped context at module visit time, but that's too early in the cases above. (because TR's #%module-begin may not have begun expanding yet) The fix uses a rename-transformer that delays the decision to use the typed or untyped identifier until expansion time. Closes GH issue #163 and #181 Closes PR 15118
10 lines
149 B
Racket
10 lines
149 B
Racket
#lang racket
|
|
|
|
(module m typed/racket/base
|
|
(define x 1)
|
|
(provide x))
|
|
|
|
(module n typed/racket/base
|
|
(require (submod ".." m))
|
|
(module* a #f x))
|