[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 07/25] qapi/schema.py: constrain tag_member type
From: |
John Snow |
Subject: |
[PATCH 07/25] qapi/schema.py: constrain tag_member type |
Date: |
Tue, 22 Sep 2020 18:44:43 -0400 |
Signed-off-by: John Snow <jsnow@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
- [PATCH 00/25] qapi: static typing conversion, pt6, John Snow, 2020/09/22
- [PATCH 01/25] qapi/schema: add Visitable mixin, John Snow, 2020/09/22
- [PATCH 03/25] qapi/schema.py: add assert in stub methods, John Snow, 2020/09/22
- [PATCH 02/25] qapi/schema.py: Move meta-type into class instances, John Snow, 2020/09/22
- [PATCH 04/25] qapi/schema.py: constrain QAPISchemaObjectType base type, John Snow, 2020/09/22
- [PATCH 06/25] qapi/schema.py: constrain QAPISchemaEvent arg_type type, John Snow, 2020/09/22
- [PATCH 05/25] qapi/schema.py: constrain QAPISchemaObjectTypeMember arg_type type, John Snow, 2020/09/22
- [PATCH 09/25] qapi/schema.py: remove superfluous assert, John Snow, 2020/09/22
- [PATCH 07/25] qapi/schema.py: constrain tag_member type,
John Snow <=
- [PATCH 14/25] qapi/schema.py: Assert variants of an object are also objects, John Snow, 2020/09/22
- [PATCH 10/25] qapi/schema.py: Add assertion to ifcond property, John Snow, 2020/09/22
- [PATCH 21/25] qapi/schema.py: disable pylint line limit, John Snow, 2020/09/22
- [PATCH 12/25] qapi/schema.py: remove 'and' from non-bool rvalue expressions, John Snow, 2020/09/22
- [PATCH 11/25] qapi/schema.py: Constrain type of QAPISchemaObjectType members field, John Snow, 2020/09/22
- [PATCH 08/25] qapi/schema.py: Allow alternate_type to assert, John Snow, 2020/09/22
- [PATCH 13/25] qapi/schema.py: Test type of self.ret_type instead of local temp, John Snow, 2020/09/22
- [PATCH 16/25] qapi/schema.py: enable checking, John Snow, 2020/09/22
- [PATCH 24/25] qapi/schema.py: Add module docstring, John Snow, 2020/09/22
- [PATCH 20/25] qapi/schema.py: Replace one-letter variable names, John Snow, 2020/09/22