diff --git a/pkgs/racket-pkgs/racket-test/tests/racket/contract/recursive-contract.rkt b/pkgs/racket-pkgs/racket-test/tests/racket/contract/recursive-contract.rkt index 437dcc087c..7cd12ca654 100644 --- a/pkgs/racket-pkgs/racket-test/tests/racket/contract/recursive-contract.rkt +++ b/pkgs/racket-pkgs/racket-test/tests/racket/contract/recursive-contract.rkt @@ -74,7 +74,7 @@ (letrec ([doll-ctc2 (or/c 'center (struct/c doll (recursive-contract doll-ctc2 #:flat)))]) (contract doll-ctc2 (doll 4) 'pos 'neg)))) - (test/spec-passed + (test/pos-blame 'recursive-contract12 '(let () (define c diff --git a/racket/collects/racket/contract/private/base.rkt b/racket/collects/racket/contract/private/base.rkt index 954eb82cf8..40427fd47f 100644 --- a/racket/collects/racket/contract/private/base.rkt +++ b/racket/collects/racket/contract/private/base.rkt @@ -144,7 +144,8 @@ => (λ (ht) (cond - [(hash-ref ht val #f) val] + [(hash-ref ht val #f) + (raise-blame-error blame val '(given: "a value with a cycle"))] [else (hash-set! ht val #t) ((orig-projection blame) val)]))] @@ -158,7 +159,7 @@ => (λ (ht) (cond - [(hash-ref ht val #f) #t] + [(hash-ref ht val #f) #f] [else (hash-set! ht val #t) (orig-first-order val)]))]