[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v8 06/22] qapi: add a dictionary form with 'name
From: |
Marc-André Lureau |
Subject: |
Re: [Qemu-devel] [PATCH v8 06/22] qapi: add a dictionary form with 'name' key for enum members |
Date: |
Thu, 13 Dec 2018 18:35:20 +0400 |
On Thu, Dec 13, 2018 at 6:32 PM Markus Armbruster <address@hidden> wrote:
>
> One little thing...
>
> Marc-André Lureau <address@hidden> writes:
>
> > Desugar the enum NAME form to { 'name': NAME }. This will allow to add
> > new enum members, such as 'if' in the following patch.
> >
> > Signed-off-by: Marc-André Lureau <address@hidden>
> > ---
> [...]
> > diff --git a/scripts/qapi/common.py b/scripts/qapi/common.py
> > index f205805751..bb928d2f7d 100644
> > --- a/scripts/qapi/common.py
> > +++ b/scripts/qapi/common.py
> [...]
> > @@ -847,19 +851,29 @@ def check_alternate(expr, info):
> > types_seen[qt] = key
> >
> >
> > +def normalize_enum(expr):
> > + if isinstance(expr['data'], list):
> > + expr['data'] = [m if isinstance(m, dict) else {'name': m}
> > + for m in expr['data']]
> > +
> > +
> > def check_enum(expr, info):
> > name = expr['enum']
> > - members = expr.get('data')
> > + members = expr['data']
> > prefix = expr.get('prefix')
> >
> > - if not isinstance(members, list):
> > - raise QAPISemError(info,
> > - "Enum '%s' requires an array for 'data'" % name)
> > if prefix is not None and not isinstance(prefix, str):
> > raise QAPISemError(info,
> > "Enum '%s' requires a string for 'prefix'" %
> > name)
> > +
> > + if not isinstance(members, list):
> > + raise QAPISemError(info,
> > + "Enum '%s' requires an array for 'data'" % name)
> > +
>
> The move of the "requires an array" check looks accidental. I'll back
> it out unless you tell me it's needed.
ack
>
> > for member in members:
> > - check_name(info, "Member of enum '%s'" % name, member,
> > + source = "dictionary member of enum '%s'" % name
> > + check_known_keys(info, source, member, ['name'], [])
> > + check_name(info, "Member of enum '%s'" % name, member['name'],
> > enum_member=True)
> >
> >
> [...]
- [Qemu-devel] [PATCH v8 00/22] qapi: add #if pre-processor conditions to generated code (part 2), Marc-André Lureau, 2018/12/13
- [Qemu-devel] [PATCH v8 01/22] qapi: Do not define enumeration value explicitly, Marc-André Lureau, 2018/12/13
- [Qemu-devel] [PATCH v8 02/22] qapi: change enum visitor and gen_enum* to take QAPISchemaMember, Marc-André Lureau, 2018/12/13
- [Qemu-devel] [PATCH v8 03/22] tests: print enum type members more like object type members, Marc-André Lureau, 2018/12/13
- [Qemu-devel] [PATCH v8 04/22] qapi: factor out checking for keys, Marc-André Lureau, 2018/12/13
- [Qemu-devel] [PATCH v8 05/22] qapi: improve reporting of unknown or missing keys, Marc-André Lureau, 2018/12/13
- [Qemu-devel] [PATCH v8 06/22] qapi: add a dictionary form with 'name' key for enum members, Marc-André Lureau, 2018/12/13
- [Qemu-devel] [PATCH v8 07/22] qapi: pass long form enum to make_enum_members, Marc-André Lureau, 2018/12/13
- [Qemu-devel] [PATCH v8 08/22] qapi: simplify make_enum_members(), Marc-André Lureau, 2018/12/13
- [Qemu-devel] [PATCH v8 09/22] qapi: add 'if' to enum members, Marc-André Lureau, 2018/12/13
- [Qemu-devel] [PATCH v8 10/22] qapi-events: add 'if' condition to implicit event enum, Marc-André Lureau, 2018/12/13
- [Qemu-devel] [PATCH v8 11/22] qapi: rename allow_dict to allow_implicit, Marc-André Lureau, 2018/12/13
- [Qemu-devel] [PATCH v8 13/22] qapi: add 'if' to implicit struct members, Marc-André Lureau, 2018/12/13
- [Qemu-devel] [PATCH v8 12/22] qapi: add a dictionary form for TYPE, Marc-André Lureau, 2018/12/13
- [Qemu-devel] [PATCH v8 14/22] qapi: add an error in case a discriminator is conditional, Marc-André Lureau, 2018/12/13