[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v2 11/26] qapi: Report invalid '*' prefix like any other invalid
From: |
Markus Armbruster |
Subject: |
[PATCH v2 11/26] qapi: Report invalid '*' prefix like any other invalid name |
Date: |
Fri, 27 Sep 2019 15:46:24 +0200 |
The special "does not allow optional name" error is well meant, but
confusing in practice. Drop it.
Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
---
scripts/qapi/common.py | 6 ++----
tests/qapi-schema/bad-ident.err | 2 +-
tests/qapi-schema/flat-union-discriminator-bad-name.err | 2 +-
tests/qapi-schema/flat-union-discriminator-bad-name.json | 2 +-
tests/qapi-schema/union-optional-branch.err | 2 +-
5 files changed, 6 insertions(+), 8 deletions(-)
diff --git a/scripts/qapi/common.py b/scripts/qapi/common.py
index d0d997f31c..a4cf41f13e 100644
--- a/scripts/qapi/common.py
+++ b/scripts/qapi/common.py
@@ -724,11 +724,8 @@ def check_name_str(name, info, source,
global valid_name
membername = name
- if name.startswith('*'):
+ if allow_optional and name.startswith('*'):
membername = name[1:]
- if not allow_optional:
- raise QAPISemError(info, "%s does not allow optional name '%s'"
- % (source, name))
# Enum members can start with a digit, because the generated C
# code always prefixes it with the enum name
if enum_member and membername[0].isdigit():
@@ -741,6 +738,7 @@ def check_name_str(name, info, source,
if not permit_upper and name.lower() != name:
raise QAPISemError(
info, "%s uses uppercase in name '%s'" % (source, name))
+ assert not membername.startswith('*')
def add_name(name, info, meta):
diff --git a/tests/qapi-schema/bad-ident.err b/tests/qapi-schema/bad-ident.err
index 6878889854..ddc96bd3a9 100644
--- a/tests/qapi-schema/bad-ident.err
+++ b/tests/qapi-schema/bad-ident.err
@@ -1,2 +1,2 @@
tests/qapi-schema/bad-ident.json: In struct '*oops':
-tests/qapi-schema/bad-ident.json:2: 'struct' does not allow optional name
'*oops'
+tests/qapi-schema/bad-ident.json:2: 'struct' uses invalid name '*oops'
diff --git a/tests/qapi-schema/flat-union-discriminator-bad-name.err
b/tests/qapi-schema/flat-union-discriminator-bad-name.err
index f7f64c5c1a..44e41883b1 100644
--- a/tests/qapi-schema/flat-union-discriminator-bad-name.err
+++ b/tests/qapi-schema/flat-union-discriminator-bad-name.err
@@ -1,2 +1,2 @@
tests/qapi-schema/flat-union-discriminator-bad-name.json: In union 'MyUnion':
-tests/qapi-schema/flat-union-discriminator-bad-name.json:7: discriminator of
flat union 'MyUnion' does not allow optional name '*switch'
+tests/qapi-schema/flat-union-discriminator-bad-name.json:7: discriminator of
flat union 'MyUnion' uses invalid name '*switch'
diff --git a/tests/qapi-schema/flat-union-discriminator-bad-name.json
b/tests/qapi-schema/flat-union-discriminator-bad-name.json
index 66376084fc..ea84b75cac 100644
--- a/tests/qapi-schema/flat-union-discriminator-bad-name.json
+++ b/tests/qapi-schema/flat-union-discriminator-bad-name.json
@@ -1,5 +1,5 @@
# discriminator '*switch' isn't a member of base, 'switch' is
-# reports "does not allow optional name", which is good enough
+# reports "uses invalid name", which is good enough
{ 'enum': 'Enum', 'data': [ 'one', 'two' ] }
{ 'struct': 'Base',
'data': { '*switch': 'Enum' } }
diff --git a/tests/qapi-schema/union-optional-branch.err
b/tests/qapi-schema/union-optional-branch.err
index a5677f74bc..8e9b18d7c6 100644
--- a/tests/qapi-schema/union-optional-branch.err
+++ b/tests/qapi-schema/union-optional-branch.err
@@ -1,2 +1,2 @@
tests/qapi-schema/union-optional-branch.json: In union 'Union':
-tests/qapi-schema/union-optional-branch.json:2: member of union 'Union' does
not allow optional name '*a'
+tests/qapi-schema/union-optional-branch.json:2: member of union 'Union' uses
invalid name '*a'
--
2.21.0
- [PATCH v2 01/26] qapi: Tighten QAPISchemaFOO.check() assertions, (continued)
- [PATCH v2 01/26] qapi: Tighten QAPISchemaFOO.check() assertions, Markus Armbruster, 2019/09/27
- [PATCH v2 03/26] qapi: New QAPISourceInfo, replacing dict, Markus Armbruster, 2019/09/27
- [PATCH v2 10/26] qapi: Use check_name_str() where it suffices, Markus Armbruster, 2019/09/27
- [PATCH v2 02/26] qapi: Rename .owner to .defined_in, Markus Armbruster, 2019/09/27
- [PATCH v2 22/26] qapi: Improve reporting of invalid 'if' further, Markus Armbruster, 2019/09/27
- [PATCH v2 25/26] qapi: Improve reporting of redefinition, Markus Armbruster, 2019/09/27
- [PATCH v2 13/26] qapi: Make check_type()'s array case a bit more obvious, Markus Armbruster, 2019/09/27
- [PATCH v2 19/26] qapi: Improve reporting of invalid flags, Markus Armbruster, 2019/09/27
- [PATCH v2 07/26] qapi: Improve reporting of member name clashes, Markus Armbruster, 2019/09/27
- [PATCH v2 15/26] qapi: Inline check_name() into check_union(), Markus Armbruster, 2019/09/27
- [PATCH v2 11/26] qapi: Report invalid '*' prefix like any other invalid name,
Markus Armbruster <=
- [PATCH v2 17/26] qapi: Move context-free checking to the proper place, Markus Armbruster, 2019/09/27
- [PATCH v2 09/26] qapi: Improve reporting of invalid name errors, Markus Armbruster, 2019/09/27
- [PATCH v2 12/26] qapi: Move check for reserved names out of add_name(), Markus Armbruster, 2019/09/27
- [PATCH v2 21/26] qapi: Avoid redundant definition references in error messages, Markus Armbruster, 2019/09/27
- [PATCH v2 04/26] qapi: Prefix frontend errors with an "in definition" line, Markus Armbruster, 2019/09/27
- [PATCH v2 18/26] qapi: Improve reporting of invalid 'if' errors, Markus Armbruster, 2019/09/27
- [PATCH v2 08/26] qapi: Reorder check_FOO() parameters for consistency, Markus Armbruster, 2019/09/27
- [PATCH v2 05/26] qapi: Clean up member name case checking, Markus Armbruster, 2019/09/27
- [PATCH v2 16/26] qapi: Move context-sensitive checking to the proper place, Markus Armbruster, 2019/09/27