Opaque class/c should treat field opaquely too.
This commit is contained in:
parent
3eb963f62d
commit
f1557bc4be
|
@ -2638,6 +2638,10 @@
|
||||||
(for ([f (class/c-absent-fields ctc)])
|
(for ([f (class/c-absent-fields ctc)])
|
||||||
(when (hash-ref field-ht f #f)
|
(when (hash-ref field-ht f #f)
|
||||||
(fail "class already contains public field ~a" 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))
|
||||||
|
(fail "field ~a not specified in contract" f))))
|
||||||
(for ([f (class/c-inherit-fields ctc)])
|
(for ([f (class/c-inherit-fields ctc)])
|
||||||
(unless (hash-ref field-ht f #f)
|
(unless (hash-ref field-ht f #f)
|
||||||
(fail "no public field ~a" f)))))
|
(fail "no public field ~a" f)))))
|
||||||
|
|
Loading…
Reference in New Issue
Block a user