The type system can't quite express this constraint natively: members can envelop any type -- but tag_members may only ever envelop an enumerated type.
For now, shrug and add an assertion. Note: These assertions don't appear to be useful yet because schema.py is not yet typed. Once it is, these assertions will matter. Signed-off-by: John Snow <js...@redhat.com> --- scripts/qapi/doc.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/scripts/qapi/doc.py b/scripts/qapi/doc.py index 2914e93b1c..b96d9046d3 100644 --- a/scripts/qapi/doc.py +++ b/scripts/qapi/doc.py @@ -13,6 +13,7 @@ QAPISchema, QAPISchemaEntity, QAPISchemaEnumMember, + QAPISchemaEnumType, QAPISchemaFeature, QAPISchemaMember, QAPISchemaObjectType, @@ -193,6 +194,7 @@ def texi_members(doc: QAPIDoc, desc = texi_format(section.text) elif variants and variants.tag_member == section.member: assert isinstance(section.member, QAPISchemaObjectTypeMember) + assert isinstance(section.member.type, QAPISchemaEnumType) if not section.member.type.doc_type(): values = section.member.type.member_names() members_text = ', '.join(['@t{"%s"}' % v for v in values]) -- 2.26.2