Add error checking to ensure blame-source produces a srcloc? as documented.
This commit is contained in:
parent
c8f79dacbb
commit
4ebf53e919
|
@ -49,7 +49,7 @@
|
||||||
(check-source-location! 'contract loc)
|
(check-source-location! 'contract loc)
|
||||||
(let ([new-val
|
(let ([new-val
|
||||||
(((contract-projection c)
|
(((contract-projection c)
|
||||||
(make-blame loc name (λ () (contract-name c)) pos neg #t))
|
(make-blame (build-source-location loc) name (λ () (contract-name c)) pos neg #t))
|
||||||
v)])
|
v)])
|
||||||
(if (and (not (parameter? new-val)) ;; when PR 11221 is fixed, remove this line
|
(if (and (not (parameter? new-val)) ;; when PR 11221 is fixed, remove this line
|
||||||
(procedure? new-val)
|
(procedure? new-val)
|
||||||
|
|
|
@ -45,7 +45,16 @@
|
||||||
|
|
||||||
(define -make-blame
|
(define -make-blame
|
||||||
(let ([make-blame
|
(let ([make-blame
|
||||||
(λ (source value build-name positive negative original?)
|
(lambda (source value build-name positive negative original?)
|
||||||
|
(unless (srcloc? source)
|
||||||
|
(raise-type-error 'make-blame "source location (srcloc?)" 0
|
||||||
|
source value build-name positive negative original?))
|
||||||
|
(unless (procedure? build-name)
|
||||||
|
(raise-type-error 'make-blame "procedure" 2
|
||||||
|
source value build-name positive negative original?))
|
||||||
|
(unless (procedure-arity-includes? build-name 0)
|
||||||
|
(raise-type-error 'make-blame "procedure of 0 arguments" 2
|
||||||
|
source value build-name positive negative original?))
|
||||||
(make-blame
|
(make-blame
|
||||||
source
|
source
|
||||||
value
|
value
|
||||||
|
|
Loading…
Reference in New Issue
Block a user