diff options
author | Markus Armbruster <armbru@redhat.com> | 2015-07-31 11:33:52 +0200 |
---|---|---|
committer | Markus Armbruster <armbru@redhat.com> | 2015-09-04 15:47:14 +0200 |
commit | d90675fa4bc256238b3dd3a7fdd5f9029eca00b8 (patch) | |
tree | 196a1cc4824971119d50ed96953e377de5285d46 | |
parent | ca56a822dd538017715345cbbe1f8829e0cc2742 (diff) | |
download | hqemu-d90675fa4bc256238b3dd3a7fdd5f9029eca00b8.zip hqemu-d90675fa4bc256238b3dd3a7fdd5f9029eca00b8.tar.gz |
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>
-rw-r--r-- | scripts/qapi.py | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/scripts/qapi.py b/scripts/qapi.py index e7c814d..4879982 100644 --- a/scripts/qapi.py +++ b/scripts/qapi.py @@ -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" |