In the DMdA languages, create arbitrary for record signature without fields.
This way, you don't have to use define-record-procedures-parametric for records like this: (define-record-procedures empty make-empty empty? ())
This commit is contained in:
parent
c080940d02
commit
7fac9193fa
|
@ -13,7 +13,7 @@
|
|||
deinprogramm/signature/signature
|
||||
deinprogramm/signature/signature-german
|
||||
deinprogramm/signature/signature-syntax
|
||||
(only-in deinprogramm/quickcheck/quickcheck arbitrary-record))
|
||||
(only-in deinprogramm/quickcheck/quickcheck arbitrary-record arbitrary-one-of))
|
||||
|
||||
(require (for-syntax scheme/base)
|
||||
(for-syntax deinprogramm/syntax-checkers)
|
||||
|
|
|
@ -169,8 +169,14 @@
|
|||
(syntax->list #'(?param ...)))))
|
||||
(with-syntax ((base-signature
|
||||
(stepper-syntax-property
|
||||
#'(define ?type-name
|
||||
(signature ?type-name (predicate real-predicate)))
|
||||
#`(define ?type-name
|
||||
(let ((sig (signature ?type-name (predicate real-predicate))))
|
||||
#,(if (null? (syntax->list #'(?field-spec ...)))
|
||||
#'(set-signature-arbitrary-promise!
|
||||
sig
|
||||
(delay (arbitrary-one-of equal? (?constructor))))
|
||||
#'(begin))
|
||||
sig))
|
||||
'stepper-skip-completely
|
||||
#t))
|
||||
(constructor-signature
|
||||
|
|
Loading…
Reference in New Issue
Block a user