File tree Expand file tree Collapse file tree 2 files changed +24
-1
lines changed Expand file tree Collapse file tree 2 files changed +24
-1
lines changed Original file line number Diff line number Diff line change 296
296
(apply wrap-proc mv struct:mvar props)))
297
297
298
298
(define (impersonate-mvar mv #:get [get-proc #f ] #:put [put-proc #f ] . props)
299
- (wrap-mvar impersonate-struct mv get-proc put-proc props ))
299
+ (wrap-mvar impersonate-struct mv props #: get get -proc #: put put -proc))
300
300
(define (chaperone-mvar mv #:get [get-proc #f ] #:put [put-proc #f ] . props)
301
301
(define ((make-checked-chaperone-proc proc) a)
302
302
(define b (proc a))
Original file line number Diff line number Diff line change 127
127
(check-exn (exn?-blaming 'pos ) (λ () (mvar-peek mv+c)))
128
128
(check-exn (exn?-blaming 'pos ) (λ () (mvar-take! mv+c)))
129
129
(check-equal? (mvar-empty? mv+c) #t ))
130
+
131
+ (test-case
132
+ "mvar/c impersonator contract "
133
+
134
+ (define coerce-to-bool/c
135
+ (make-contract
136
+ #:late-neg-projection
137
+ (λ (blame)
138
+ (λ (val neg-party)
139
+ (and val #t )))))
140
+
141
+ (define mv (contract (mvar/c coerce-to-bool/c boolean?)
142
+ (make-mvar)
143
+ 'pos
144
+ 'neg ))
145
+
146
+ (check-equal? (mvar-put! mv 'ok ) (void))
147
+ (check-equal? (mvar-peek mv) #t )
148
+ (check-equal? (mvar-take! mv) #t )
149
+
150
+ (check-equal? (mvar-put! mv #f ) (void))
151
+ (check-equal? (mvar-peek mv) #f )
152
+ (check-equal? (mvar-take! mv) #f ))
You can’t perform that action at this time.
0 commit comments