adjust struct constructor expansion to transfer srcloc of use to expansion
This commit is contained in:
parent
7abbff4749
commit
3ea28b0c72
|
@ -40,13 +40,15 @@
|
||||||
proc)))))
|
proc)))))
|
||||||
|
|
||||||
(define-for-syntax (self-ctor-transformer orig stx)
|
(define-for-syntax (self-ctor-transformer orig stx)
|
||||||
(with-syntax ([orig orig])
|
(define (transfer-srcloc orig stx)
|
||||||
|
(datum->syntax orig (syntax-e orig) stx orig))
|
||||||
(syntax-case stx ()
|
(syntax-case stx ()
|
||||||
[(_ arg ...) (datum->syntax stx
|
[(self arg ...) (datum->syntax stx
|
||||||
(syntax-e (syntax (orig arg ...)))
|
(cons (transfer-srcloc orig #'self)
|
||||||
|
(syntax-e (syntax (arg ...))))
|
||||||
stx
|
stx
|
||||||
stx)]
|
stx)]
|
||||||
[_ (syntax orig)])))
|
[_ (transfer-srcloc orig stx)]))
|
||||||
|
|
||||||
(define-values-for-syntax (make-self-ctor-struct-info)
|
(define-values-for-syntax (make-self-ctor-struct-info)
|
||||||
(letrec-values ([(struct: make- ? ref set!)
|
(letrec-values ([(struct: make- ? ref set!)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user