Skip to content

Commit 32a2744

Browse files
committed
repair b6b11cc
1 parent b6b11cc commit 32a2744

File tree

3 files changed

+19
-7
lines changed

3 files changed

+19
-7
lines changed

redex-lib/redex/private/judgment-form.rkt

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1132,14 +1132,13 @@
11321132
(define mode (syntax->datum #'_mode))
11331133
(cond
11341134
[(number? mode)
1135-
(raise-syntax-error
1136-
(syntax-e #'syn-err-name)
1137-
"modeless judgment forms cannot be used in term"
1138-
#'jdg-name)]
1135+
#'(λ (_)
1136+
(error 'syn-err-name
1137+
"modeless judgment forms cannot be used in term"))]
11391138
[(and mode (member 'O mode))
1140-
#'(λ (_)
1141-
(error 'syn-err-name
1142-
"judgment forms with output mode positions cannot be used in term"))]
1139+
#'(λ (_)
1140+
(error 'syn-err-name
1141+
"judgment forms with output mode positions cannot be used in term"))]
11431142
[else
11441143
(with-syntax* ([(binding ...) (if mode (generate-temporaries mode) '())]
11451144
[(input) (generate-temporaries (list #'input))])

redex-lib/redex/private/term.rkt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -224,6 +224,10 @@ see also rewrite-side-conditions.rkt for some restrictions/changes there
224224
#t)
225225
(judgment-form-id? #'jf-name))
226226
(let ([mode (judgment-form-mode (syntax-local-value #'jf-name))])
227+
(when (number? mode)
228+
(raise-syntax-error 'term
229+
"modeless judgment forms disallowed"
230+
arg-stx stx))
227231
(when (and mode (memq 'O mode))
228232
(raise-syntax-error 'term
229233
"judgment forms with output mode (\"O\") positions disallowed"

redex-test/redex/tests/syn-err-tests/term.rktd

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,12 @@
66
([bound x]) ([bind x])
77
(... (term-let ([((bind ...) ...) '()])
88
(term (bound ...)))))
9+
10+
(#rx"modeless judgment forms disallowed"
11+
([use-of-J (J 1 2)]) ()
12+
(let ()
13+
(define-language L)
14+
(define-judgment-form L
15+
[-----
16+
(J any any)])
17+
(term (λ (x) use-of-J))))

0 commit comments

Comments
 (0)