All of lore.kernel.org
 help / color / mirror / Atom feed
From: Markus Armbruster <armbru@redhat.com>
To: Eric Blake <eblake@redhat.com>
Cc: qemu-devel@nongnu.org, Michael Roth <mdroth@linux.vnet.ibm.com>
Subject: Re: [Qemu-devel] [PATCH v7 04/15] qapi: Hide tag_name data member of variants
Date: Tue, 14 Jun 2016 15:32:21 +0200	[thread overview]
Message-ID: <87lh27dhga.fsf@dusky.pond.sub.org> (raw)
In-Reply-To: <1463784024-17242-5-git-send-email-eblake@redhat.com> (Eric Blake's message of "Fri, 20 May 2016 16:40:13 -0600")

Eric Blake <eblake@redhat.com> writes:

> 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.  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>
>
> ---
> v7: no change
> v6: rebase to earlier changes
> ---
>  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 82d96e2..3554ab1 100644
> --- a/scripts/qapi.py
> +++ b/scripts/qapi.py
> @@ -1086,7 +1086,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
>
> @@ -1096,8 +1096,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)
> @@ -1127,7 +1127,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

The implicit "tag type" is now shown.  You can still recognize simple
unions by their -wrapper types.  Okay.

> diff --git a/tests/qapi-schema/test-qapi.py b/tests/qapi-schema/test-qapi.py
> index ccd1704..65ca19a 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)

  reply	other threads:[~2016-06-14 13:32 UTC|newest]

Thread overview: 56+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-05-20 22:40 [Qemu-devel] [PATCH v7 00/15] qapi netdev_add introspection (post-introspection cleanups subset F) Eric Blake
2016-05-20 22:40 ` [Qemu-devel] [PATCH v7 01/15] qapi: Consolidate object visitors Eric Blake
2016-06-14 12:35   ` Markus Armbruster
2016-06-16 14:46     ` Markus Armbruster
2016-06-16 17:20       ` Eric Blake
2016-06-17  7:39         ` Markus Armbruster
2016-05-20 22:40 ` [Qemu-devel] [PATCH v7 02/15] net: use Netdev instead of NetClientOptions in client init Eric Blake
2016-06-14 13:11   ` Markus Armbruster
2016-05-20 22:40 ` [Qemu-devel] [PATCH v7 03/15] qapi: Require all branches of flat union enum to be covered Eric Blake
2016-06-14 13:24   ` Markus Armbruster
2016-06-14 13:46     ` Eric Blake
2016-06-28  1:52       ` Eric Blake
2016-06-28  7:57         ` Markus Armbruster
2016-07-03  2:34       ` Eric Blake
2016-05-20 22:40 ` [Qemu-devel] [PATCH v7 04/15] qapi: Hide tag_name data member of variants Eric Blake
2016-06-14 13:32   ` Markus Armbruster [this message]
2016-05-20 22:40 ` [Qemu-devel] [PATCH v7 05/15] qapi: Add type.is_empty() helper Eric Blake
2016-06-14 14:01   ` Markus Armbruster
2016-05-20 22:40 ` [Qemu-devel] [PATCH v7 06/15] qapi: Plumb in 'box' to qapi generator lower levels Eric Blake
2016-06-14 14:39   ` Markus Armbruster
2016-05-20 22:40 ` [Qemu-devel] [PATCH v7 07/15] qapi: Implement boxed types for commands/events Eric Blake
2016-06-14 15:27   ` Markus Armbruster
2016-06-14 17:22     ` Eric Blake
2016-06-15  6:22       ` Markus Armbruster
2016-05-20 22:40 ` [Qemu-devel] [PATCH v7 08/15] block: Simplify block_set_io_throttle Eric Blake
2016-05-24 15:21   ` [Qemu-devel] [Qemu-block] " Alberto Garcia
2016-06-14 15:34   ` [Qemu-devel] " Markus Armbruster
2016-05-20 22:40 ` [Qemu-devel] [PATCH v7 09/15] block: Simplify drive-mirror Eric Blake
2016-06-14 15:42   ` Markus Armbruster
2016-05-20 22:40 ` [Qemu-devel] [PATCH v7 10/15] qapi-event: Reduce chance of collision with event data Eric Blake
2016-06-14 16:28   ` Markus Armbruster
2016-06-16 12:25     ` Markus Armbruster
2016-06-28  3:20       ` Eric Blake
2016-06-28  8:06         ` Markus Armbruster
2016-05-20 22:40 ` [Qemu-arm] [PATCH v7 11/15] qapi: Change Netdev into a flat union Eric Blake
2016-05-20 22:40   ` Eric Blake
2016-05-20 22:40   ` [Qemu-devel] " Eric Blake
2016-06-16 13:15   ` [Qemu-arm] " Markus Armbruster
2016-06-16 13:15     ` Markus Armbruster
2016-06-16 13:15     ` [Qemu-devel] " Markus Armbruster
2016-06-16 14:35     ` [Qemu-arm] " Eric Blake
2016-06-16 14:35       ` Eric Blake
2016-06-16 14:35       ` Eric Blake
2016-05-20 22:40 ` [Qemu-devel] [PATCH v7 12/15] net: Use correct type for bool flag Eric Blake
2016-05-20 22:40 ` [Qemu-devel] [PATCH v7 13/15] net: Complete qapi-fication of netdev_add Eric Blake
2016-06-16 13:40   ` Markus Armbruster
2016-07-02 22:58     ` Eric Blake
2016-07-04 13:46       ` Markus Armbruster
2016-05-20 22:40 ` [Qemu-devel] [PATCH v7 14/15] qapi: Allow anonymous branch types in flat union Eric Blake
2016-06-16 14:33   ` Markus Armbruster
2016-07-01 22:59     ` Eric Blake
2016-07-04 13:13       ` Markus Armbruster
2016-05-20 22:40 ` [Qemu-devel] [PATCH v7 15/15] schema: Drop pointless empty type CpuInfoOther Eric Blake
2016-05-20 22:59 ` [Qemu-devel] [PATCH v7 00/15] qapi netdev_add introspection (post-introspection cleanups subset F) Eric Blake
2016-06-16 14:57 ` Markus Armbruster
2016-06-28 18:14   ` Eric Blake

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=87lh27dhga.fsf@dusky.pond.sub.org \
    --to=armbru@redhat.com \
    --cc=eblake@redhat.com \
    --cc=mdroth@linux.vnet.ibm.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.