File tree Expand file tree Collapse file tree 3 files changed +19
-7
lines changed
redex-test/redex/tests/syn-err-tests Expand file tree Collapse file tree 3 files changed +19
-7
lines changed Original file line number Diff line number Diff line change 1132
1132
(define mode (syntax->datum #'_mode ))
1133
1133
(cond
1134
1134
[(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 " ))]
1139
1138
[(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 " ))]
1143
1142
[else
1144
1143
(with-syntax* ([(binding ... ) (if mode (generate-temporaries mode) '() )]
1145
1144
[(input) (generate-temporaries (list #'input ))])
Original file line number Diff line number Diff line change @@ -224,6 +224,10 @@ see also rewrite-side-conditions.rkt for some restrictions/changes there
224
224
#t )
225
225
(judgment-form-id? #'jf-name ))
226
226
(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))
227
231
(when (and mode (memq 'O mode))
228
232
(raise-syntax-error 'term
229
233
"judgment forms with output mode (\"O\") positions disallowed "
Original file line number Diff line number Diff line change 6
6
([bound x]) ([bind x])
7
7
(... (term-let ([((bind ... ) ... ) '() ])
8
8
(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))))
You can’t perform that action at this time.
0 commit comments