schemify: fix loop detection in nested lambda forms

This commit is contained in:
Matthew Flatt 2020-06-13 19:03:24 -06:00
parent 265c9eaa57
commit e397ad0cbb

View File

@ -439,10 +439,10 @@
[`(let . ,_) [`(let . ,_)
(find-let-loops v lifts loop-if-tail loops)] (find-let-loops v lifts loop-if-tail loops)]
[`(lambda ,args . ,body) [`(lambda ,args . ,body)
(find-loops body lifts #hasheq() loops)] (find-seq-loops body lifts #hasheq() loops)]
[`(case-lambda [,argss . ,bodys] ...) [`(case-lambda [,argss . ,bodys] ...)
(for/fold ([loops loops]) ([body (in-list bodys)]) (for/fold ([loops loops]) ([body (in-list bodys)])
(find-loops body lifts #hasheq() loops))] (find-seq-loops body lifts #hasheq() loops))]
[`(begin . ,vs) [`(begin . ,vs)
(find-seq-loops vs lifts loop-if-tail loops)] (find-seq-loops vs lifts loop-if-tail loops)]
[`(begin0 ,v . ,vs) [`(begin0 ,v . ,vs)