diff --git a/collects/racket/private/class-internal.rkt b/collects/racket/private/class-internal.rkt index 4f9cd7147d..3b9460cb40 100644 --- a/collects/racket/private/class-internal.rkt +++ b/collects/racket/private/class-internal.rkt @@ -2574,9 +2574,10 @@ (for ([m (class/c-methods ctc)]) (unless (hash-ref method-ht m #f) (fail "no public method ~a" m))) - (for ([m (class/c-absents ctc)]) - (when (hash-ref method-ht m #f) - (fail "class already contains public method ~a" m))) + (unless (class/c-opaque? ctc) + (for ([m (class/c-absents ctc)]) + (when (hash-ref method-ht m #f) + (fail "class already contains public method ~a" m)))) (when (class/c-opaque? ctc) (for ([m (in-hash-keys method-ht)]) (unless (memq m (class/c-methods ctc)) @@ -2637,9 +2638,10 @@ (for ([f (class/c-fields ctc)]) (unless (hash-ref field-ht f #f) (fail "no public field ~a" f))) - (for ([f (class/c-absent-fields ctc)]) - (when (hash-ref field-ht f #f) - (fail "class already contains public field ~a" f))) + (unless (class/c-opaque? ctc) + (for ([f (class/c-absent-fields ctc)]) + (when (hash-ref field-ht f #f) + (fail "class already contains public field ~a" f)))) (when (class/c-opaque? ctc) (for ([f (in-hash-keys field-ht)]) (unless (memq f (class/c-fields ctc))