adjust struct constructor expansion to transfer srcloc of use to expansion

This commit is contained in:
Matthew Flatt 2010-08-19 07:38:10 -06:00
parent 7abbff4749
commit 3ea28b0c72

View File

@ -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!)