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
|
assert len(variants) > 0
|
||||||
for v in variants:
|
for v in variants:
|
||||||
assert isinstance(v, QAPISchemaObjectTypeVariant)
|
assert isinstance(v, QAPISchemaObjectTypeVariant)
|
||||||
self.tag_name = tag_name
|
self._tag_name = tag_name
|
||||||
self.tag_member = tag_member
|
self.tag_member = tag_member
|
||||||
self.variants = variants
|
self.variants = variants
|
||||||
|
|
||||||
|
@ -1103,8 +1103,8 @@ class QAPISchemaObjectTypeVariants(object):
|
||||||
|
|
||||||
def check(self, schema, seen):
|
def check(self, schema, seen):
|
||||||
if not self.tag_member: # flat union
|
if not self.tag_member: # flat union
|
||||||
self.tag_member = seen[c_name(self.tag_name)]
|
self.tag_member = seen[c_name(self._tag_name)]
|
||||||
assert self.tag_name == self.tag_member.name
|
assert self._tag_name == self.tag_member.name
|
||||||
assert isinstance(self.tag_member.type, QAPISchemaEnumType)
|
assert isinstance(self.tag_member.type, QAPISchemaEnumType)
|
||||||
for v in self.variants:
|
for v in self.variants:
|
||||||
v.check(schema)
|
v.check(schema)
|
||||||
|
@ -1134,7 +1134,7 @@ class QAPISchemaAlternateType(QAPISchemaType):
|
||||||
def __init__(self, name, info, variants):
|
def __init__(self, name, info, variants):
|
||||||
QAPISchemaType.__init__(self, name, info)
|
QAPISchemaType.__init__(self, name, info)
|
||||||
assert isinstance(variants, QAPISchemaObjectTypeVariants)
|
assert isinstance(variants, QAPISchemaObjectTypeVariants)
|
||||||
assert not variants.tag_name
|
assert variants.tag_member
|
||||||
variants.set_owner(name)
|
variants.set_owner(name)
|
||||||
variants.tag_member.set_owner(self.name)
|
variants.tag_member.set_owner(self.name)
|
||||||
self.variants = variants
|
self.variants = variants
|
||||||
|
|
|
@ -1,19 +1,25 @@
|
||||||
alternate AltIntNum
|
alternate AltIntNum
|
||||||
|
tag type
|
||||||
case i: int
|
case i: int
|
||||||
case n: number
|
case n: number
|
||||||
alternate AltNumInt
|
alternate AltNumInt
|
||||||
|
tag type
|
||||||
case n: number
|
case n: number
|
||||||
case i: int
|
case i: int
|
||||||
alternate AltNumStr
|
alternate AltNumStr
|
||||||
|
tag type
|
||||||
case n: number
|
case n: number
|
||||||
case s: str
|
case s: str
|
||||||
alternate AltStrBool
|
alternate AltStrBool
|
||||||
|
tag type
|
||||||
case s: str
|
case s: str
|
||||||
case b: bool
|
case b: bool
|
||||||
alternate AltStrInt
|
alternate AltStrInt
|
||||||
|
tag type
|
||||||
case s: str
|
case s: str
|
||||||
case i: int
|
case i: int
|
||||||
alternate AltStrNum
|
alternate AltStrNum
|
||||||
|
tag type
|
||||||
case s: str
|
case s: str
|
||||||
case n: number
|
case n: number
|
||||||
event EVENT_A None
|
event EVENT_A None
|
||||||
|
@ -50,6 +56,7 @@ object UserDefA
|
||||||
member boolean: bool optional=False
|
member boolean: bool optional=False
|
||||||
member a_b: int optional=True
|
member a_b: int optional=True
|
||||||
alternate UserDefAlternate
|
alternate UserDefAlternate
|
||||||
|
tag type
|
||||||
case udfu: UserDefFlatUnion
|
case udfu: UserDefFlatUnion
|
||||||
case s: str
|
case s: str
|
||||||
case i: int
|
case i: int
|
||||||
|
@ -72,6 +79,7 @@ object UserDefFlatUnion2
|
||||||
case value2: UserDefB
|
case value2: UserDefB
|
||||||
object UserDefNativeListUnion
|
object UserDefNativeListUnion
|
||||||
member type: UserDefNativeListUnionKind optional=False
|
member type: UserDefNativeListUnionKind optional=False
|
||||||
|
tag type
|
||||||
case integer: q_obj_intList-wrapper
|
case integer: q_obj_intList-wrapper
|
||||||
case s8: q_obj_int8List-wrapper
|
case s8: q_obj_int8List-wrapper
|
||||||
case s16: q_obj_int16List-wrapper
|
case s16: q_obj_int16List-wrapper
|
||||||
|
@ -117,6 +125,7 @@ object WrapAlternate
|
||||||
member alt: UserDefAlternate optional=False
|
member alt: UserDefAlternate optional=False
|
||||||
event __ORG.QEMU_X-EVENT __org.qemu_x-Struct
|
event __ORG.QEMU_X-EVENT __org.qemu_x-Struct
|
||||||
alternate __org.qemu_x-Alt
|
alternate __org.qemu_x-Alt
|
||||||
|
tag type
|
||||||
case __org.qemu_x-branch: str
|
case __org.qemu_x-branch: str
|
||||||
case b: __org.qemu_x-Base
|
case b: __org.qemu_x-Base
|
||||||
object __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
|
member array: __org.qemu_x-Union1List optional=False
|
||||||
object __org.qemu_x-Union1
|
object __org.qemu_x-Union1
|
||||||
member type: __org.qemu_x-Union1Kind optional=False
|
member type: __org.qemu_x-Union1Kind optional=False
|
||||||
|
tag type
|
||||||
case __org.qemu_x-branch: q_obj_str-wrapper
|
case __org.qemu_x-branch: q_obj_str-wrapper
|
||||||
enum __org.qemu_x-Union1Kind ['__org.qemu_x-branch']
|
enum __org.qemu_x-Union1Kind ['__org.qemu_x-branch']
|
||||||
object __org.qemu_x-Union2
|
object __org.qemu_x-Union2
|
||||||
|
|
|
@ -47,8 +47,7 @@ class QAPISchemaTestVisitor(QAPISchemaVisitor):
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def _print_variants(variants):
|
def _print_variants(variants):
|
||||||
if variants:
|
if variants:
|
||||||
if variants.tag_name:
|
print ' tag %s' % variants.tag_member.name
|
||||||
print ' tag %s' % variants.tag_name
|
|
||||||
for v in variants.variants:
|
for v in variants.variants:
|
||||||
print ' case %s: %s' % (v.name, v.type.name)
|
print ' case %s: %s' % (v.name, v.type.name)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue