Fixed error reporting of missing :for clause

This commit is contained in:
Linus 2021-05-11 10:00:46 +02:00
parent a38170a25b
commit 6f0c6e636f

View file

@ -147,7 +147,7 @@
((eq? 'acc type) (valid-acc-clauses)))) ((eq? 'acc type) (valid-acc-clauses))))
(define (pred x) (free-identifier=? x binding)) (define (pred x) (free-identifier=? x binding))
(find pred searchee)) (find pred searchee))
(syntax-case stx (:acc) (syntax-case stx (:acc :for)
((_ accumulator :acc one two original-syntax . rest) ((_ accumulator :acc one two original-syntax . rest)
(if (clause-defined? 'acc #'accumulator) (if (clause-defined? 'acc #'accumulator)
#'(accumulator :acc one two original-syntax . rest) #'(accumulator :acc one two original-syntax . rest)
@ -155,9 +155,9 @@
"Unknown accumulator in loop: " "Unknown accumulator in loop: "
#'original-syntax #'original-syntax
#'accumulator))) #'accumulator)))
((_ iterator one two original-syntax . rest) ((_ iterator :for one two original-syntax . rest)
(if (clause-defined? 'for #'iterator) (if (clause-defined? 'for #'iterator)
#'(iterator one two original-syntax . rest) #'(iterator :for one two original-syntax . rest)
(syntax-violation (syntax->datum #'iterator) (syntax-violation (syntax->datum #'iterator)
"Unknown iterator in loop: " "Unknown iterator in loop: "
#'original-syntax #'original-syntax
@ -219,7 +219,6 @@
. body)))) . body))))
(define-syntax loop/list/parallel (define-syntax loop/list/parallel
(syntax-rules () (syntax-rules ()
((n (clauses ...) body ...) ((n (clauses ...) body ...)