diff --git a/pkgs/racket-test-core/tests/racket/for.rktl b/pkgs/racket-test-core/tests/racket/for.rktl index 33dceb1ebf..98eec00217 100644 --- a/pkgs/racket-test-core/tests/racket/for.rktl +++ b/pkgs/racket-test-core/tests/racket/for.rktl @@ -442,4 +442,7 @@ (err/rt-test (begin (for/fold ([x 1] [y 2]) ([i (in-range 10)]) 1) 1) #rx".*expected number of values not received.*") (test 1 'one (begin (for/fold () () (values)) 1)) +;; for/fold syntax checking +(syntax-test #'(for/fold () bad 1) #rx".*bad sequence binding clauses.*") + (report-errs) diff --git a/racket/collects/racket/private/for.rkt b/racket/collects/racket/private/for.rkt index 15b4635001..c95664af1a 100644 --- a/racket/collects/racket/private/for.rkt +++ b/racket/collects/racket/private/for.rkt @@ -1325,6 +1325,9 @@ (if d (syntax-property r 'disappeared-use d) r)))] + [(_ [orig-stx . _] for-bind clauses . _) + (not (syntax->list #'clauses)) + (raise-syntax-error #f "bad sequence binding clauses" #'orig-stx #'clauses)] [(_ [orig-stx . _] . _) (raise-syntax-error #f "bad syntax" #'orig-stx)]))