diff options
author | Markus Armbruster <armbru@redhat.com> | 2019-09-27 15:46:24 +0200 |
---|---|---|
committer | Markus Armbruster <armbru@redhat.com> | 2019-09-28 17:17:19 +0200 |
commit | 64e04f7149dd7f0f32b8e7aa5a89a0c1e6d0b5d6 (patch) | |
tree | 19c760c4fffb0ea83aa1b20899a437e483be0857 | |
parent | 6ba1ba7f0e54f100af8d4e28e9bc9978c971c0e0 (diff) |
qapi: Report invalid '*' prefix like any other invalid name
The special "does not allow optional name" error is well meant, but
confusing in practice. Drop it.
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Message-Id: <20190927134639.4284-12-armbru@redhat.com>
-rw-r--r-- | scripts/qapi/common.py | 6 | ||||
-rw-r--r-- | tests/qapi-schema/bad-ident.err | 2 | ||||
-rw-r--r-- | tests/qapi-schema/flat-union-discriminator-bad-name.err | 2 | ||||
-rw-r--r-- | tests/qapi-schema/flat-union-discriminator-bad-name.json | 2 | ||||
-rw-r--r-- | 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' |