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>
This commit is contained in:
Markus Armbruster 2019-09-27 15:46:24 +02:00
parent 6ba1ba7f0e
commit 64e04f7149
5 changed files with 6 additions and 8 deletions

View File

@ -724,11 +724,8 @@ def check_name_str(name, info, source,
global valid_name global valid_name
membername = name membername = name
if name.startswith('*'): if allow_optional and name.startswith('*'):
membername = name[1:] 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 # Enum members can start with a digit, because the generated C
# code always prefixes it with the enum name # code always prefixes it with the enum name
if enum_member and membername[0].isdigit(): 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: if not permit_upper and name.lower() != name:
raise QAPISemError( raise QAPISemError(
info, "%s uses uppercase in name '%s'" % (source, name)) info, "%s uses uppercase in name '%s'" % (source, name))
assert not membername.startswith('*')
def add_name(name, info, meta): def add_name(name, info, meta):

View File

@ -1,2 +1,2 @@
tests/qapi-schema/bad-ident.json: In struct '*oops': 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'

View File

@ -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: 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'

View File

@ -1,5 +1,5 @@
# discriminator '*switch' isn't a member of base, 'switch' is # 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' ] } { 'enum': 'Enum', 'data': [ 'one', 'two' ] }
{ 'struct': 'Base', { 'struct': 'Base',
'data': { '*switch': 'Enum' } } 'data': { '*switch': 'Enum' } }

View File

@ -1,2 +1,2 @@
tests/qapi-schema/union-optional-branch.json: In union 'Union': 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'