John Snow <js...@redhat.com> writes: > There are two related changes here: > > (1) We need to perform type narrowing for resolving the type of > tag_member during check(), and > > (2) tag_member is a delayed initialization field, but we can hide it > behind a property that raises an Exception if it's called too > early. This simplifies the typing in quite a few places and avoids > needing to assert that the "tag_member is not None" at a dozen > callsites, which can be confusing and suggest the wrong thing to a > drive-by contributor. > > Signed-off-by: John Snow <js...@redhat.com>
I explored another solution, and posted it in reply to v2. If we decide not to like it better, I guess we'll go with this one.