parent
793d655770
commit
fdad73df32
|
@ -3400,6 +3400,26 @@
|
|||
(test gen current-pseudo-random-generator)
|
||||
(test gen impersonated-current-pseudo-random-generator)))
|
||||
|
||||
;; ----------------------------------------
|
||||
;; Test keyword-argument procedures and impersonator properties
|
||||
|
||||
(let ()
|
||||
(define (group-rows #:group x) 1)
|
||||
|
||||
(define-values (impersonator-prop:contracted
|
||||
has-impersonator-prop:contracted?
|
||||
get-impersonator-prop:contracted)
|
||||
(make-impersonator-property 'impersonator-prop:contracted))
|
||||
|
||||
(define group-rows*
|
||||
(chaperone-procedure group-rows
|
||||
(λ (#:group x) (list x))
|
||||
impersonator-prop:contracted 2))
|
||||
|
||||
(test #t procedure? group-rows*)
|
||||
(test #t has-impersonator-prop:contracted? group-rows*)
|
||||
(test 1 'apply (group-rows* #:group 10)))
|
||||
|
||||
;; ----------------------------------------
|
||||
|
||||
(report-errs)
|
||||
|
|
|
@ -610,18 +610,13 @@
|
|||
;; ----------------------------------------
|
||||
|
||||
(define (set-impersonator-applicables!)
|
||||
(struct-property-set! prop:procedure
|
||||
(record-type-descriptor props-procedure-impersonator)
|
||||
impersonate-apply)
|
||||
(struct-property-set! prop:procedure
|
||||
(record-type-descriptor props-procedure-chaperone)
|
||||
impersonate-apply)
|
||||
(struct-property-set! prop:procedure-arity
|
||||
(record-type-descriptor props-procedure-impersonator)
|
||||
3)
|
||||
(struct-property-set! prop:procedure-arity
|
||||
(record-type-descriptor props-procedure-chaperone)
|
||||
3)
|
||||
(let ([add (lambda (rtd)
|
||||
(struct-property-set! prop:procedure rtd impersonate-apply)
|
||||
(struct-property-set! prop:procedure-arity rtd 3))])
|
||||
(add (record-type-descriptor props-procedure-impersonator))
|
||||
(add (record-type-descriptor props-procedure-chaperone))
|
||||
(add (record-type-descriptor props-procedure~-impersonator))
|
||||
(add (record-type-descriptor props-procedure~-chaperone)))
|
||||
|
||||
(struct-property-set! prop:procedure
|
||||
(record-type-descriptor impersonator-property-accessor-procedure)
|
||||
|
|
Loading…
Reference in New Issue
Block a user