mirror of https://github.com/xemu-project/xemu.git
qapi: Hide tag_name data member of variants
Clean up the only remaining external use of the tag_name field of QAPISchemaObjectTypeVariants, by explicitly listing the generated 'type' tag for all variants in the testsuite (you can still tell simple unions by the -wrapper types). Then we can mark the tag_name field as private by adding a leading underscore to prevent any further use. Signed-off-by: Eric Blake <eblake@redhat.com> Message-Id: <1468468228-27827-5-git-send-email-eblake@redhat.com> Reviewed-by: Markus Armbruster <armbru@redhat.com> Signed-off-by: Markus Armbruster <armbru@redhat.com>
This commit is contained in:
parent
cd50a25645
commit
da9cb19385
|
@ -1093,7 +1093,7 @@ class QAPISchemaObjectTypeVariants(object):
|
|||
assert len(variants) > 0
|
||||
for v in variants:
|
||||
assert isinstance(v, QAPISchemaObjectTypeVariant)
|
||||
self.tag_name = tag_name
|
||||
self._tag_name = tag_name
|
||||
self.tag_member = tag_member
|
||||
self.variants = variants
|
||||
|
||||
|
@ -1103,8 +1103,8 @@ class QAPISchemaObjectTypeVariants(object):
|
|||
|
||||
def check(self, schema, seen):
|
||||
if not self.tag_member: # flat union
|
||||
self.tag_member = seen[c_name(self.tag_name)]
|
||||
assert self.tag_name == self.tag_member.name
|
||||
self.tag_member = seen[c_name(self._tag_name)]
|
||||
assert self._tag_name == self.tag_member.name
|
||||
assert isinstance(self.tag_member.type, QAPISchemaEnumType)
|
||||
for v in self.variants:
|
||||
v.check(schema)
|
||||
|
@ -1134,7 +1134,7 @@ class QAPISchemaAlternateType(QAPISchemaType):
|
|||
def __init__(self, name, info, variants):
|
||||
QAPISchemaType.__init__(self, name, info)
|
||||
assert isinstance(variants, QAPISchemaObjectTypeVariants)
|
||||
assert not variants.tag_name
|
||||
assert variants.tag_member
|
||||
variants.set_owner(name)
|
||||
variants.tag_member.set_owner(self.name)
|
||||
self.variants = variants
|
||||
|
|
|
@ -1,19 +1,25 @@
|
|||
alternate AltIntNum
|
||||
tag type
|
||||
case i: int
|
||||
case n: number
|
||||
alternate AltNumInt
|
||||
tag type
|
||||
case n: number
|
||||
case i: int
|
||||
alternate AltNumStr
|
||||
tag type
|
||||
case n: number
|
||||
case s: str
|
||||
alternate AltStrBool
|
||||
tag type
|
||||
case s: str
|
||||
case b: bool
|
||||
alternate AltStrInt
|
||||
tag type
|
||||
case s: str
|
||||
case i: int
|
||||
alternate AltStrNum
|
||||
tag type
|
||||
case s: str
|
||||
case n: number
|
||||
event EVENT_A None
|
||||
|
@ -50,6 +56,7 @@ object UserDefA
|
|||
member boolean: bool optional=False
|
||||
member a_b: int optional=True
|
||||
alternate UserDefAlternate
|
||||
tag type
|
||||
case udfu: UserDefFlatUnion
|
||||
case s: str
|
||||
case i: int
|
||||
|
@ -72,6 +79,7 @@ object UserDefFlatUnion2
|
|||
case value2: UserDefB
|
||||
object UserDefNativeListUnion
|
||||
member type: UserDefNativeListUnionKind optional=False
|
||||
tag type
|
||||
case integer: q_obj_intList-wrapper
|
||||
case s8: q_obj_int8List-wrapper
|
||||
case s16: q_obj_int16List-wrapper
|
||||
|
@ -117,6 +125,7 @@ object WrapAlternate
|
|||
member alt: UserDefAlternate optional=False
|
||||
event __ORG.QEMU_X-EVENT __org.qemu_x-Struct
|
||||
alternate __org.qemu_x-Alt
|
||||
tag type
|
||||
case __org.qemu_x-branch: str
|
||||
case b: __org.qemu_x-Base
|
||||
object __org.qemu_x-Base
|
||||
|
@ -130,6 +139,7 @@ object __org.qemu_x-Struct2
|
|||
member array: __org.qemu_x-Union1List optional=False
|
||||
object __org.qemu_x-Union1
|
||||
member type: __org.qemu_x-Union1Kind optional=False
|
||||
tag type
|
||||
case __org.qemu_x-branch: q_obj_str-wrapper
|
||||
enum __org.qemu_x-Union1Kind ['__org.qemu_x-branch']
|
||||
object __org.qemu_x-Union2
|
||||
|
|
|
@ -47,8 +47,7 @@ class QAPISchemaTestVisitor(QAPISchemaVisitor):
|
|||
@staticmethod
|
||||
def _print_variants(variants):
|
||||
if variants:
|
||||
if variants.tag_name:
|
||||
print ' tag %s' % variants.tag_name
|
||||
print ' tag %s' % variants.tag_member.name
|
||||
for v in variants.variants:
|
||||
print ' case %s: %s' % (v.name, v.type.name)
|
||||
|
||||
|
|
Loading…
Reference in New Issue