Skip to content

Commit fb259b6

Browse files
committed
improve error message for a particular malformed redex-check
1 parent c21e7f3 commit fb259b6

File tree

1 file changed

+13
-9
lines changed

1 file changed

+13
-9
lines changed

redex-lib/redex/private/generate-term.rkt

+13-9
Original file line numberDiff line numberDiff line change
@@ -116,16 +116,20 @@
116116
(define bad-kws (set-intersect used-kws satisfying-disallowed-kws))
117117
(syntax-case stx (=)
118118
[(form lang #:satisfying (mf-id . args) = res property . kw-args)
119-
(unless (set-empty? bad-kws)
120-
(raise-syntax-error 'redex-check (format "~s cannot be used with #:satisfying" (car (set->list bad-kws))) stx))
121-
(redex-check/mf stx #'form #'lang #'mf-id #'args #'res #'property #'kw-args)]
119+
(begin
120+
(unless (set-empty? bad-kws)
121+
(raise-syntax-error 'redex-check (format "~s cannot be used with #:satisfying" (car (set->list bad-kws))) stx))
122+
(redex-check/mf stx #'form #'lang #'mf-id #'args #'res #'property #'kw-args))]
122123
[(form lang #:satisfying (jform-id . pats) property . kw-args)
123-
(unless (set-empty? bad-kws)
124-
(raise-syntax-error 'redex-check (format "~s cannot be used with #:satisfying" (car (set->list bad-kws))) stx))
125-
(syntax-property
126-
(redex-check/jf stx #'form #'lang #'jform-id #'pats #'property #'kw-args)
127-
'disappeared-use
128-
(syntax-local-introduce #'jform-id))]
124+
(begin
125+
(unless (set-empty? bad-kws)
126+
(raise-syntax-error 'redex-check (format "~s cannot be used with #:satisfying" (car (set->list bad-kws))) stx))
127+
(when (keyword? (syntax-e #'property))
128+
(raise-syntax-error 'redex-check "expected a property" stx #'property))
129+
(syntax-property
130+
(redex-check/jf stx #'form #'lang #'jform-id #'pats #'property #'kw-args)
131+
'disappeared-use
132+
(syntax-local-introduce #'jform-id)))]
129133
[(form lang #:satisfying . rest)
130134
(raise-syntax-error 'redex-check "#:satisfying expected judgment form or metafunction syntax followed by a property" stx #'rest)]
131135
[(form lang pat #:enum biggest-e property . kw-args)

0 commit comments

Comments
 (0)