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
|
pre-guard
|
||||||
post-guard
|
post-guard
|
||||||
[loop-arg ...]) ...) (reverse (syntax->list #'binds))])
|
[loop-arg ...]) ...) (reverse (syntax->list #'binds))])
|
||||||
#'(let-values (outer-binding ... ...)
|
#`(let-values (outer-binding ... ...)
|
||||||
outer-check ...
|
outer-check ...
|
||||||
(let for-loop ([fold-var fold-init] ...
|
#,(syntax/loc #'orig-stx
|
||||||
loop-binding ... ...)
|
(let for-loop ([fold-var fold-init] ...
|
||||||
(if (and pos-guard ...)
|
loop-binding ... ...)
|
||||||
(let-values (inner-binding ... ...)
|
(if (and pos-guard ...)
|
||||||
(if (and pre-guard ...)
|
(let-values (inner-binding ... ...)
|
||||||
(let-values ([(fold-var ...)
|
(if (and pre-guard ...)
|
||||||
(for/foldX/derived [orig-stx nested? #f ()] ([fold-var fold-var] ...) rest expr1 . body)])
|
(let-values ([(fold-var ...)
|
||||||
(if (and post-guard ...)
|
(for/foldX/derived [orig-stx nested? #f ()] ([fold-var fold-var] ...) rest expr1 . body)])
|
||||||
(for-loop fold-var ... loop-arg ... ...)
|
(if (and post-guard ...)
|
||||||
(values* fold-var ...)))
|
(for-loop fold-var ... loop-arg ... ...)
|
||||||
(values* fold-var ...)))
|
(values* fold-var ...)))
|
||||||
(values* fold-var ...)))))]
|
(values* fold-var ...)))
|
||||||
|
(values* fold-var ...))))))]
|
||||||
;; Bad body cases:
|
;; Bad body cases:
|
||||||
[(_ [orig-stx . _] fold-bind ())
|
[(_ [orig-stx . _] fold-bind ())
|
||||||
(raise-syntax-error
|
(raise-syntax-error
|
||||||
|
|
Loading…
Reference in New Issue
Block a user