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
|
||||||
deinprogramm/signature/signature-german
|
deinprogramm/signature/signature-german
|
||||||
deinprogramm/signature/signature-syntax
|
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)
|
(require (for-syntax scheme/base)
|
||||||
(for-syntax deinprogramm/syntax-checkers)
|
(for-syntax deinprogramm/syntax-checkers)
|
||||||
|
|
|
@ -169,8 +169,14 @@
|
||||||
(syntax->list #'(?param ...)))))
|
(syntax->list #'(?param ...)))))
|
||||||
(with-syntax ((base-signature
|
(with-syntax ((base-signature
|
||||||
(stepper-syntax-property
|
(stepper-syntax-property
|
||||||
#'(define ?type-name
|
#`(define ?type-name
|
||||||
(signature ?type-name (predicate real-predicate)))
|
(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
|
'stepper-skip-completely
|
||||||
#t))
|
#t))
|
||||||
(constructor-signature
|
(constructor-signature
|
||||||
|
|
Loading…
Reference in New Issue
Block a user