qapi: Document flaws in checking of names
We don't actually enforce our "other than downstream extensions [...], all names should begin with a letter" rule. Add a FIXME. We should reject names that differ only in '_' vs. '.' vs. '-', because they're liable to clash in generated C. Add a FIXME. Signed-off-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com>
This commit is contained in:
parent
ca56a822dd
commit
d90675fa4b
@ -341,6 +341,8 @@ def discriminator_find_enum_define(expr):
|
||||
|
||||
return find_enum(discriminator_type)
|
||||
|
||||
# FIXME should enforce "other than downstream extensions [...], all
|
||||
# names should begin with a letter".
|
||||
valid_name = re.compile('^[a-zA-Z_][a-zA-Z0-9_.-]*$')
|
||||
def check_name(expr_info, source, name, allow_optional = False,
|
||||
enum_member = False):
|
||||
@ -367,6 +369,8 @@ def check_name(expr_info, source, name, allow_optional = False,
|
||||
def add_name(name, info, meta, implicit = False):
|
||||
global all_names
|
||||
check_name(info, "'%s'" % meta, name)
|
||||
# FIXME should reject names that differ only in '_' vs. '.'
|
||||
# vs. '-', because they're liable to clash in generated C.
|
||||
if name in all_names:
|
||||
raise QAPIExprError(info,
|
||||
"%s '%s' is already defined"
|
||||
|
Loading…
Reference in New Issue
Block a user