use syntax/loc when needed
svn: r5059
This commit is contained in:
parent
d47247507f
commit
e6945544dc
|
@ -114,17 +114,19 @@
|
||||||
(cond [(syntax-keyword? #'name)
|
(cond [(syntax-keyword? #'name)
|
||||||
(raise-syntax-error #f "cannot redefine a keyword" stx #'name)]
|
(raise-syntax-error #f "cannot redefine a keyword" stx #'name)]
|
||||||
[top-level?
|
[top-level?
|
||||||
#'(begin (define-values (name) (void)) (set! name expr))]
|
(syntax/loc stx
|
||||||
|
(begin (define-values (name) (void)) (set! name expr)))]
|
||||||
[else
|
[else
|
||||||
#'(define-values (name) expr)])]
|
(syntax/loc stx (define-values (name) expr))])]
|
||||||
[(_ (values name ...) expr)
|
[(_ (values name ...) expr)
|
||||||
(cond [(ormap (lambda (id) (and (syntax-keyword? id) id))
|
(cond [(ormap (lambda (id) (and (syntax-keyword? id) id))
|
||||||
(syntax->list #'(name ...)))
|
(syntax->list #'(name ...)))
|
||||||
=> (lambda (id)
|
=> (lambda (id)
|
||||||
(raise-syntax-error #f "cannot redefine a keyword" stx id))]
|
(raise-syntax-error #f "cannot redefine a keyword" stx id))]
|
||||||
[top-level?
|
[top-level?
|
||||||
#'(begin (define name (void)) ... (set!-values (name ...) expr))]
|
(syntax/loc stx
|
||||||
[else #'(define-values (name ...) expr)])]
|
(begin (define name (void)) ... (set!-values (name ...) expr)))]
|
||||||
|
[else (syntax/loc stx (define-values (name ...) expr))])]
|
||||||
[(_ names body0 body ...) (pair? (syntax-e #'names))
|
[(_ names body0 body ...) (pair? (syntax-e #'names))
|
||||||
(let loop ([s #'names] [args '()])
|
(let loop ([s #'names] [args '()])
|
||||||
(syntax-case s ()
|
(syntax-case s ()
|
||||||
|
|
Loading…
Reference in New Issue
Block a user