From: Markus Armbruster <armbru@redhat.com>
To: qemu-devel@nongnu.org
Subject: [Qemu-devel] [PULL for-2.7 06/15] qapi: Hide tag_name data member of variants
Date: Tue, 19 Jul 2016 13:39:28 +0200 [thread overview]
Message-ID: <1468928377-20384-7-git-send-email-armbru@redhat.com> (raw)
In-Reply-To: <1468928377-20384-1-git-send-email-armbru@redhat.com>
From: Eric Blake <eblake@redhat.com>
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>
---
scripts/qapi.py | 8 ++++----
tests/qapi-schema/qapi-schema-test.out | 10 ++++++++++
tests/qapi-schema/test-qapi.py | 3 +--
3 files changed, 15 insertions(+), 6 deletions(-)
diff --git a/scripts/qapi.py b/scripts/qapi.py
index 68ee319..400c4ef 100644
--- a/scripts/qapi.py
+++ b/scripts/qapi.py
@@ -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
diff --git a/tests/qapi-schema/qapi-schema-test.out b/tests/qapi-schema/qapi-schema-test.out
index 19cd214..f34ecc7 100644
--- a/tests/qapi-schema/qapi-schema-test.out
+++ b/tests/qapi-schema/qapi-schema-test.out
@@ -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
diff --git a/tests/qapi-schema/test-qapi.py b/tests/qapi-schema/test-qapi.py
index 649677e..bedd145 100644
--- a/tests/qapi-schema/test-qapi.py
+++ b/tests/qapi-schema/test-qapi.py
@@ -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)
--
2.5.5
next prev parent reply other threads:[~2016-07-19 11:39 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-07-19 11:39 [Qemu-devel] [PULL for-2.7 00/15] QAPI patches for 2016-07-19 Markus Armbruster
2016-07-19 11:39 ` [Qemu-devel] [PULL for-2.7 01/15] qapi: change QmpOutputVisitor to QSLIST Markus Armbruster
2016-07-19 11:39 ` [Qemu-devel] [PULL for-2.7 02/15] qapi: change QmpInputVisitor " Markus Armbruster
2016-07-19 11:39 ` [Qemu-devel] [PULL for-2.7 03/15] net: use Netdev instead of NetClientOptions in client init Markus Armbruster
2016-07-19 11:39 ` [Qemu-devel] [PULL for-2.7 04/15] qapi: Require all branches of flat union enum to be covered Markus Armbruster
2016-07-19 11:39 ` [Qemu-devel] [PULL for-2.7 05/15] qapi: Special case c_name() for empty type Markus Armbruster
2016-07-19 11:39 ` Markus Armbruster [this message]
2016-07-19 11:39 ` [Qemu-devel] [PULL for-2.7 07/15] qapi: Add type.is_empty() helper Markus Armbruster
2016-07-19 11:39 ` [Qemu-devel] [PULL for-2.7 08/15] qapi: Drop useless gen_err_check() Markus Armbruster
2016-07-19 11:39 ` [Qemu-devel] [PULL for-2.7 09/15] qapi-event: Simplify visit of non-implicit data Markus Armbruster
2016-07-19 11:39 ` [Qemu-devel] [PULL for-2.7 10/15] qapi: Plumb in 'boxed' to qapi generator lower levels Markus Armbruster
2016-07-19 11:39 ` [Qemu-devel] [PULL for-2.7 11/15] qapi: Implement boxed types for commands/events Markus Armbruster
2016-07-19 11:39 ` [Qemu-devel] [PULL for-2.7 12/15] block: Simplify block_set_io_throttle Markus Armbruster
2016-07-19 11:39 ` [Qemu-devel] [PULL for-2.7 13/15] block: Simplify drive-mirror Markus Armbruster
2016-07-19 11:39 ` [Qemu-devel] [PULL for-2.7 14/15] qapi: Change Netdev into a flat union Markus Armbruster
2016-07-19 17:22 ` [Qemu-devel] [PATCH 14/15] fixup! " Eric Blake
2016-07-19 11:39 ` [Qemu-devel] [PULL for-2.7 15/15] net: Use correct type for bool flag Markus Armbruster
2016-07-19 16:56 ` [Qemu-devel] [PULL for-2.7 00/15] QAPI patches for 2016-07-19 Peter Maydell
2016-07-19 17:05 ` Eric Blake
2016-07-19 17:06 ` Peter Maydell
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1468928377-20384-7-git-send-email-armbru@redhat.com \
--to=armbru@redhat.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.