From 3ea28b0c72863fa6fd4ae9332a72e0167e0977b0 Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Thu, 19 Aug 2010 07:38:10 -0600 Subject: [PATCH] adjust struct constructor expansion to transfer srcloc of use to expansion --- collects/racket/private/define-struct.rkt | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/collects/racket/private/define-struct.rkt b/collects/racket/private/define-struct.rkt index 2010efe42f..74a87d7280 100644 --- a/collects/racket/private/define-struct.rkt +++ b/collects/racket/private/define-struct.rkt @@ -40,13 +40,15 @@ proc))))) (define-for-syntax (self-ctor-transformer orig stx) - (with-syntax ([orig orig]) - (syntax-case stx () - [(_ arg ...) (datum->syntax stx - (syntax-e (syntax (orig arg ...))) - stx - stx)] - [_ (syntax orig)]))) + (define (transfer-srcloc orig stx) + (datum->syntax orig (syntax-e orig) stx orig)) + (syntax-case stx () + [(self arg ...) (datum->syntax stx + (cons (transfer-srcloc orig #'self) + (syntax-e (syntax (arg ...)))) + stx + stx)] + [_ (transfer-srcloc orig stx)])) (define-values-for-syntax (make-self-ctor-struct-info) (letrec-values ([(struct: make- ? ref set!)