Signed-off-by: John Snow <js...@redhat.com> --- scripts/qapi/schema.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/scripts/qapi/schema.py b/scripts/qapi/schema.py index aaf20f776b..15ff441660 100644 --- a/scripts/qapi/schema.py +++ b/scripts/qapi/schema.py @@ -546,15 +546,18 @@ def set_defined_in(self, name): def check(self, schema, seen): if not self.tag_member: # flat union - self.tag_member = seen.get(c_name(self._tag_name)) + tag_member = seen.get(c_name(self._tag_name)) base = "'base'" # Pointing to the base type when not implicit would be # nice, but we don't know it here - if not self.tag_member or self._tag_name != self.tag_member.name: + if not tag_member or self._tag_name != tag_member.name: raise QAPISemError( self.info, "discriminator '%s' is not a member of %s" % (self._tag_name, base)) + + assert isinstance(tag_member, QAPISchemaObjectTypeMember) + self.tag_member = tag_member # Here we do: base_type = schema.lookup_type(self.tag_member.defined_in) assert base_type -- 2.26.2