mirror of
https://github.com/yuzu-emu/unicorn.git
synced 2025-01-10 20:35:36 +00:00
qapi: Reserve '*List' type names for list types
Type names ending in 'List' can clash with qapi list types in generated C. We don't currently use such names. It is easier to outlaw them now than to worry about how to resolve such a clash in the future. For precedence, see commit 4dc2e69, which did the same for names ending in 'Kind' versus implicit enum types for qapi unions. Update the testsuite to match. Backports commit 255960dd374d4497d6ea537305f1b0d8a3433789 from qemu
This commit is contained in:
parent
017baefb66
commit
b9f93dd0e8
|
@ -391,10 +391,10 @@ def add_name(name, info, meta, implicit=False):
|
|||
raise QAPIExprError(info,
|
||||
"%s '%s' is already defined"
|
||||
% (all_names[name], name))
|
||||
if not implicit and name.endswith('Kind'):
|
||||
if not implicit and (name.endswith('Kind') or name.endswith('List')):
|
||||
raise QAPIExprError(info,
|
||||
"%s '%s' should not end in 'Kind'"
|
||||
% (meta, name))
|
||||
"%s '%s' should not end in '%s'"
|
||||
% (meta, name, name[-4:]))
|
||||
all_names[name] = meta
|
||||
|
||||
|
||||
|
@ -1195,9 +1195,7 @@ class QAPISchema(object):
|
|||
return name
|
||||
|
||||
def _make_array_type(self, element_type, info):
|
||||
# TODO fooList namespace is not reserved; user can create collisions,
|
||||
# or abuse our type system with ['fooList'] for 2D array
|
||||
name = element_type + 'List'
|
||||
name = element_type + 'List' # Use namespace reserved by add_name()
|
||||
if not self.lookup_type(name):
|
||||
self._def_entity(QAPISchemaArrayType(name, info, element_type))
|
||||
return name
|
||||
|
|
Loading…
Reference in a new issue