diff --git a/racket/collects/xml/private/structures.rkt b/racket/collects/xml/private/structures.rkt index c276c40d0b..9fc8985447 100644 --- a/racket/collects/xml/private/structures.rkt +++ b/racket/collects/xml/private/structures.rkt @@ -43,13 +43,14 @@ (define permissive/c (make-contract #:name 'permissive/c - #:projection + #:late-neg-projection (lambda (blame) - (lambda (v) + (lambda (v neg-party) (if (permissive-xexprs) v (raise-blame-error - blame v "not in permissive mode")))) + blame #:missing-party neg-party + v "not in permissive mode")))) #:first-order (lambda (v) #t))) diff --git a/racket/collects/xml/private/xexpr-core.rkt b/racket/collects/xml/private/xexpr-core.rkt index c2211213ed..66c883f1b2 100644 --- a/racket/collects/xml/private/xexpr-core.rkt +++ b/racket/collects/xml/private/xexpr-core.rkt @@ -42,14 +42,14 @@ (define xexpr/c (make-flat-contract - #:name 'xexpr? - #:projection + #:name 'xexpr/c + #:late-neg-projection (lambda (blame) - (lambda (val) + (lambda (val neg-party) (with-handlers ([exn:invalid-xexpr? (lambda (exn) (raise-blame-error - blame + blame #:missing-party neg-party val "Not an Xexpr. ~a\n\nContext:\n~a" (exn-message exn)