From 3b0de9c141edee84be57768a22b1ae3264fcc7f5 Mon Sep 17 00:00:00 2001 From: Stevie Strickland Date: Thu, 2 Sep 2010 16:28:10 -0400 Subject: [PATCH] Check struct predicate before checking fields. --- collects/typed-scheme/private/type-contract.rkt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/collects/typed-scheme/private/type-contract.rkt b/collects/typed-scheme/private/type-contract.rkt index 0ea776a735..2e7d7aba92 100644 --- a/collects/typed-scheme/private/type-contract.rkt +++ b/collects/typed-scheme/private/type-contract.rkt @@ -196,6 +196,8 @@ #:projection (lambda (blame) (lambda (val) + (unless (#,pred? val) + (raise-blame-error blame val "expected ~a value, got ~v" 'cnt-name val)) (maker fld-cnts ...))))]) rec))] [else #`(flat-named-contract '#,(syntax-e pred?) #,(cert pred?))])]