Isn’t that a matter of putting more syntax/loc? I tried:
(-define-syntax let-syntaxes
(lambda (stx)
(syntax-case stx ()
[(_ ([(id ...) expr] ...) body1 body ...)
(with-syntax ([((tmp ...) ...)
(map
generate-temporaries
(syntax->list (syntax ((id ...) ...))))])
(with-syntax ([inner-body
(syntax/loc stx
(letrec-syntaxes+values
([(id ...)
(values
(make-rename-transformer (quote-syntax tmp))
...)] ...)
()
body1 body ...))])
(syntax/loc stx
(letrec-syntaxes+values ([(tmp ...) expr] ...) ()
inner-body))))])))
and the button now functions as you expect.
On Fri, Aug 13, 2021 at 7:45 PM Shu-Hung You <[email protected]>
wrote:
> Here are two syntax errors that behave differently in DrRacket:
>
> #lang racket
>
> (define-syntax (m-late stx)
> #'(let () (define x 0)))
> (define-syntax (m-early stx)
> #'(let-syntax () (define x 0)))
>
> ; (m-late)
> ; (m-early)
>
> DrRacket *correctly* highlights the source location of the errors in
> both cases. Additionally, for (m-early) I can click on the X button to
> jump to the error location.
>
> However, for (m-late) the X button brings me to internal Racket code.
> What's going on here?
>
> In case it helps, here are the error messages when I run the code in
> terminal:
>
> ;; m-late
> errstx.rkt:4:4: begin (possibly implicit): no expression after a
> sequence of internal definitions
> in: (begin (define x 0))
> location...:
> /Volumes/ramdisk/errstx.rkt:4:4
> /Volumes/ramdisk/errstx.rkt:4:12
>
> ;; m-early
> <collects>/racket/private/letstx-scheme.rkt:38:17: begin (possibly
> implicit): no expression after a sequence of internal definitions
> in: (begin (define x 0))
> location...:
> <collects>/racket/private/letstx-scheme.rkt:38:17
> /Volumes/ramdisk/errstx.rkt:6:19
>
> --
> You received this message because you are subscribed to the Google Groups
> "Racket Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/racket-users/CAMTzy%2BZtpWGdtkZkvzF4%3D25kpqUqGKsBcCDf4T%3DY3S2hV0v_GA%40mail.gmail.com
> .
>
--
You received this message because you are subscribed to the Google Groups
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/racket-users/CADcuegtjNL%2BT-kTqbNKx_AkyLstpiRkyKjLJTuTGtyYcpGdmQA%40mail.gmail.com.