From 1bc88189d1fa629cf9cc98f386a8c9bab51286c7 Mon Sep 17 00:00:00 2001 From: Vincent St-Amour Date: Tue, 5 Feb 2013 18:11:52 -0500 Subject: [PATCH] Make TR-generated identifiers have the same name as original identifiers. Makes error messages nicer, and makes it easier to correlate with source code. original commit: 16a75761b052f49d0257afb19cc5282bae34558e --- .../typed-racket/typecheck/provide-handling.rkt | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/collects/typed-racket/typecheck/provide-handling.rkt b/collects/typed-racket/typecheck/provide-handling.rkt index e583ef32..c1594631 100644 --- a/collects/typed-racket/typecheck/provide-handling.rkt +++ b/collects/typed-racket/typecheck/provide-handling.rkt @@ -30,6 +30,11 @@ (cond [(s:member i vd (lambda (i j) (free-identifier=? i (binding-name j)))) => car] [else #f])) +(define new-id-introducer (make-syntax-introducer)) +(define cnt-id-introducer (make-syntax-introducer)) +(define error-id-introducer (make-syntax-introducer)) +(define untyped-id-introducer (make-syntax-introducer)) + ;; generate-contract-defs : dict[id -> def-binding] dict[id -> list[id]] id -> syntax ;; defs: defines in this module ;; provs: provides in this module @@ -46,7 +51,7 @@ (define mapping (make-free-id-table)) ;; mk : id [id] -> (values syntax id aliases) - (define (mk internal-id [new-id (generate-temporary internal-id)]) + (define (mk internal-id [new-id (new-id-introducer internal-id)]) (define (mk-untyped-syntax b defn-id internal-id) (match b [(def-struct-stx-binding _ (? struct-info? si)) @@ -87,7 +92,7 @@ [(def-binding _ (app (λ (ty) (type->contract ty (λ () #f) #:out #t)) (? values cnt))) (values (with-syntax* ([id internal-id] - [cnt-id (generate-temporary #'id)] + [cnt-id (cnt-id-introducer #'id)] [export-id new-id] [module-source pos-blame-id] [the-contract (generate-temporary 'generated-contract)]) @@ -113,7 +118,7 @@ [(def-binding id ty) (values (with-syntax* ([id internal-id] - [error-id (generate-temporary #'id)] + [error-id (error-id-introducer #'id)] [export-id new-id]) #'(begin (define-syntax (error-id stx) @@ -124,7 +129,7 @@ [(and b (def-stx-binding _)) (with-syntax* ([id internal-id] [export-id new-id] - [untyped-id (generate-temporary #'id)]) + [untyped-id (untyped-id-introducer #'id)]) (define-values (d aliases) (mk-untyped-syntax b #'untyped-id internal-id)) (define/with-syntax def d)