source locations for 'for' loops in stack traces
svn: r16545
This commit is contained in:
parent
f14f541ac4
commit
4edc044cb6
|
@ -746,20 +746,21 @@
|
|||
pre-guard
|
||||
post-guard
|
||||
[loop-arg ...]) ...) (reverse (syntax->list #'binds))])
|
||||
#'(let-values (outer-binding ... ...)
|
||||
#`(let-values (outer-binding ... ...)
|
||||
outer-check ...
|
||||
(let for-loop ([fold-var fold-init] ...
|
||||
loop-binding ... ...)
|
||||
(if (and pos-guard ...)
|
||||
(let-values (inner-binding ... ...)
|
||||
(if (and pre-guard ...)
|
||||
(let-values ([(fold-var ...)
|
||||
(for/foldX/derived [orig-stx nested? #f ()] ([fold-var fold-var] ...) rest expr1 . body)])
|
||||
(if (and post-guard ...)
|
||||
(for-loop fold-var ... loop-arg ... ...)
|
||||
(values* fold-var ...)))
|
||||
(values* fold-var ...)))
|
||||
(values* fold-var ...)))))]
|
||||
#,(syntax/loc #'orig-stx
|
||||
(let for-loop ([fold-var fold-init] ...
|
||||
loop-binding ... ...)
|
||||
(if (and pos-guard ...)
|
||||
(let-values (inner-binding ... ...)
|
||||
(if (and pre-guard ...)
|
||||
(let-values ([(fold-var ...)
|
||||
(for/foldX/derived [orig-stx nested? #f ()] ([fold-var fold-var] ...) rest expr1 . body)])
|
||||
(if (and post-guard ...)
|
||||
(for-loop fold-var ... loop-arg ... ...)
|
||||
(values* fold-var ...)))
|
||||
(values* fold-var ...)))
|
||||
(values* fold-var ...))))))]
|
||||
;; Bad body cases:
|
||||
[(_ [orig-stx . _] fold-bind ())
|
||||
(raise-syntax-error
|
||||
|
|
Loading…
Reference in New Issue
Block a user