Prevent -let-internal name from leaking to users
Because -let-internal wasn't rename-out'd, users would see its name in syntax error messages. Adding #:context forces the error messages to be phrased in terms of the given form.
This commit is contained in:
parent
0a7ec21df9
commit
1e5bc30b95
|
@ -201,6 +201,7 @@ the typed racket language.
|
|||
(let ([mk (lambda (form)
|
||||
(lambda (stx)
|
||||
(syntax-parse stx
|
||||
#:context form
|
||||
[(_ (bs:optionally-annotated-binding ...) . body)
|
||||
(quasisyntax/loc stx (#,form (bs.binding ...) . body))])))])
|
||||
(values (mk #'let) (mk #'let*) (mk #'letrec))))
|
||||
|
|
4
typed-racket-test/fail/let-internal-nameleak.rkt
Normal file
4
typed-racket-test/fail/let-internal-nameleak.rkt
Normal file
|
@ -0,0 +1,4 @@
|
|||
#;
|
||||
(exn-pred exn:fail:syntax? #rx"let: expected identifier")
|
||||
#lang typed/racket
|
||||
(let ([() 5]) (void))
|
Loading…
Reference in New Issue
Block a user