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.

Reply via email to