[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: |
Markus Armbruster |
Subject: |
Re: [Qemu-devel] [PATCH v8 06/22] qapi: add a dictionary form with 'name' key for enum members |
Date: |
Thu, 13 Dec 2018 15:32:21 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux) |
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.
> 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