fix substruct contract blame setup

closes #2093
This commit is contained in:
Robby Findler 2018-05-22 08:42:41 -05:00
parent caade2f830
commit 1ee5786e2d
2 changed files with 20 additions and 1 deletions

View File

@ -1212,6 +1212,24 @@
(eval '(dynamic-require ''provide/contract65-m2 #f)))
"provide/contract65-m2")
(test/spec-failed
'provide/contract66
'(let ()
(eval '(module provide/contract66-m1 racket/base
(require racket/contract)
(provide f
(contract-out
(struct base ([f (-> number? boolean?)])
#:omit-constructor)))
(struct base (f) #:transparent)
(define (f x) ((base-f x) #f))))
(eval '(module provide/contract66-m2 racket/base
(require 'provide/contract66-m1)
(struct derived base () #:transparent)
(f (derived (λ (x) #f)))))
(eval '(dynamic-require ''provide/contract66-m2 #f)))
"provide/contract66-m1")
(contract-error-test
'contract-error-test8
#'(begin

View File

@ -1186,7 +1186,8 @@
[field-name (in-list field-names)])
((get/build-late-neg-projection ctc)
(blame-add-context blame
(format "the ~a field of" field-name)))))
(format "the ~a field of" field-name)
#:swap? #t))))
(chaperone-struct-type
struct-type
(λ (a b c d e f g h) (values a b c d e f g h))