From 29b1ac70dfdeadce16738caf74c9358d2697ef23 Mon Sep 17 00:00:00 2001 From: Eric Dobson Date: Thu, 26 Mar 2015 21:29:01 -0700 Subject: [PATCH] Make for raise better error message if binding clauses are bad. Closes PR 13272. --- pkgs/racket-test-core/tests/racket/for.rktl | 3 +++ racket/collects/racket/private/for.rkt | 3 +++ 2 files changed, 6 insertions(+) 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)]))