DMdA Contract bug fix: In yet another place, make sure that the

enforcer calls `contract-violation' in tail position.

svn: r18095
This commit is contained in:
Mike Sperber 2010-02-16 07:51:02 +00:00
parent 30e8c7d039
commit d64254f49f

View File

@ -228,7 +228,8 @@
((not (procedure? proc)) ((not (procedure? proc))
(contract-violation proc self #f #f)) (contract-violation proc self #f #f))
((not (procedure-arity-includes? proc arg-count)) ; #### variable arity ((not (procedure-arity-includes? proc arg-count)) ; #### variable arity
(contract-violation proc self "falsche Anzahl von Parametern" #f))) (contract-violation proc self "falsche Anzahl von Parametern" #f))
(else
(attach-name (attach-name
(object-name proc) (object-name proc)
(procedure-reduce-arity (procedure-reduce-arity
@ -263,7 +264,7 @@
(old-violation-proc obj contract message blame-syntax)) (old-violation-proc obj contract message blame-syntax))
(lambda () (lambda ()
(apply-contract return-contract retval))))))))))) (apply-contract return-contract retval)))))))))))
(procedure-arity proc))))) (procedure-arity proc)))))))
syntax syntax
(delay (delay
(apply lift->arbitrary arbitrary-procedure return-contract arg-contracts))))) (apply lift->arbitrary arbitrary-procedure return-contract arg-contracts)))))