diff options
author | Markus Armbruster <armbru@redhat.com> | 2015-11-18 01:52:45 -0700 |
---|---|---|
committer | Timothy Pearson <tpearson@raptorengineering.com> | 2019-11-29 19:28:19 -0600 |
commit | 66ad59098e398d57c3824678bdf895b39bbe9631 (patch) | |
tree | 108193d8ebcf40bac2c7d3dc69640152b081028a /scripts/qapi.py | |
parent | 0690626dfe11ab15f4eb05d8b5743884d5fc64f8 (diff) | |
download | hqemu-66ad59098e398d57c3824678bdf895b39bbe9631.zip hqemu-66ad59098e398d57c3824678bdf895b39bbe9631.tar.gz |
qapi: Simplify QAPISchemaObjectTypeVariants.check()
Reduce the ugly flat union / simple union conditional by doing just
the essential work here, namely setting self.tag_member.
Move the rest to callers.
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Message-Id: <1446559499-26984-7-git-send-email-armbru@redhat.com>
[rebase to earlier changes that moved tag_member.check() of
alternate types, and tweak commit title and wording]
Signed-off-by: Eric Blake <eblake@redhat.com>
Message-Id: <1447836791-369-11-git-send-email-eblake@redhat.com>
Diffstat (limited to 'scripts/qapi.py')
-rw-r--r-- | scripts/qapi.py | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/scripts/qapi.py b/scripts/qapi.py index 2a73b2b..c6cb17b 100644 --- a/scripts/qapi.py +++ b/scripts/qapi.py @@ -988,9 +988,10 @@ class QAPISchemaObjectType(QAPISchemaType): for m in self.local_members: m.check(schema) m.check_clash(seen) + self.members = seen.values() if self.variants: self.variants.check(schema, seen) - self.members = seen.values() + assert self.variants.tag_member in self.members def is_implicit(self): # See QAPISchema._make_implicit_object_type() @@ -1050,10 +1051,8 @@ class QAPISchemaObjectTypeVariants(object): self.variants = variants def check(self, schema, seen): - if self.tag_name: # flat union + if not self.tag_member: # flat union self.tag_member = seen[self.tag_name] - if seen: - assert self.tag_member in seen.itervalues() assert isinstance(self.tag_member.type, QAPISchemaEnumType) for v in self.variants: v.check(schema, self.tag_member.type) |