diff --git a/pkgs/racket-test-core/tests/racket/for.rktl b/pkgs/racket-test-core/tests/racket/for.rktl index 03228727dc..5ad2e5b8f7 100644 --- a/pkgs/racket-test-core/tests/racket/for.rktl +++ b/pkgs/racket-test-core/tests/racket/for.rktl @@ -549,6 +549,8 @@ ;; for/fold syntax checking (syntax-test #'(for/fold () bad 1) #rx".*bad sequence binding clauses.*") +(syntax-test #'(for/vector ()) #rx".*missing body.*") + ;; specific hash set iterators (err/rt-test (for/sum ([x (in-immutable-set '(1 2))]) x) exn:fail:contract? diff --git a/racket/collects/racket/private/for.rkt b/racket/collects/racket/private/for.rkt index 18a011627f..c7b1d76573 100644 --- a/racket/collects/racket/private/for.rkt +++ b/racket/collects/racket/private/for.rkt @@ -1534,10 +1534,14 @@ (cond [(null? exprs) (if (null? post-kw) - (raise-syntax-error #f - (format "missing body form after ~a clause" (syntax-e (cadr pre-kw))) - stx - (cadr pre-kw)) + (if (null? pre-kw) + (raise-syntax-error #f + "missing body" + stx) + (raise-syntax-error #f + (format "missing body form after ~a clause" (syntax-e (cadr pre-kw))) + stx + (cadr pre-kw))) (list (reverse pre-kw) (reverse post-kw)))] [(memq (syntax-e (car exprs)) '(#:break #:final)) (if (pair? (cdr exprs))