fix for `syntax-local-value/immediate'
The source locaiton on the second result was mangled. Closes PR 12477
This commit is contained in:
parent
f166934700
commit
3886b7702e
|
@ -1728,6 +1728,20 @@
|
|||
(test #\[ syntax-property (quasisyntax [x (unsyntax (syntax y))]) 'paren-shape)
|
||||
(test #\[ syntax-property (quasisyntax [x y]) 'paren-shape)
|
||||
|
||||
;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;; Check srcloc on result of `syntax-local-value/immediate':
|
||||
|
||||
(let ()
|
||||
(define-syntax (displayln-syntax-local-value/immediate stx)
|
||||
(syntax-case stx ()
|
||||
[(_ id)
|
||||
(let-values ([(x y)
|
||||
(syntax-local-value/immediate (datum->syntax #'id
|
||||
(syntax-e #'id)))])
|
||||
#`#,(syntax-source y))]))
|
||||
(define-syntax ++ (make-rename-transformer (datum->syntax #'here '+)))
|
||||
(test #f values (displayln-syntax-local-value/immediate ++)))
|
||||
|
||||
;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
(report-errs)
|
||||
|
|
|
@ -2042,8 +2042,7 @@ do_local_exp_time_value(const char *name, int argc, Scheme_Object *argv[], int r
|
|||
|
||||
v = SCHEME_PTR_VAL(v);
|
||||
if (scheme_is_rename_transformer(v)) {
|
||||
sym = scheme_rename_transformer_id(v);
|
||||
sym = scheme_transfer_srcloc(sym, v);
|
||||
sym = scheme_transfer_srcloc(scheme_rename_transformer_id(v), sym);
|
||||
renamed = 1;
|
||||
menv = NULL;
|
||||
SCHEME_USE_FUEL(1);
|
||||
|
|
Loading…
Reference in New Issue
Block a user