|
@@ -904,8 +904,9 @@ def _def_predefineds(self):
|
|
|
self._def_entity(QAPISchemaEnumType('QType', None, None, None, None,
|
|
|
qtype_values, 'QTYPE'))
|
|
|
|
|
|
- def _make_features(self, expr, info):
|
|
|
- features = expr.get('features', [])
|
|
|
+ def _make_features(self, features, info):
|
|
|
+ if features is None:
|
|
|
+ return []
|
|
|
return [QAPISchemaFeature(f['name'], info, f.get('if'))
|
|
|
for f in features]
|
|
|
|
|
@@ -955,7 +956,7 @@ def _def_enum_type(self, expr, info, doc):
|
|
|
data = expr['data']
|
|
|
prefix = expr.get('prefix')
|
|
|
ifcond = expr.get('if')
|
|
|
- features = self._make_features(expr, info)
|
|
|
+ features = self._make_features(expr.get('features'), info)
|
|
|
self._def_entity(QAPISchemaEnumType(
|
|
|
name, info, doc, ifcond, features,
|
|
|
self._make_enum_members(data, info), prefix))
|
|
@@ -979,7 +980,7 @@ def _def_struct_type(self, expr, info, doc):
|
|
|
base = expr.get('base')
|
|
|
data = expr['data']
|
|
|
ifcond = expr.get('if')
|
|
|
- features = self._make_features(expr, info)
|
|
|
+ features = self._make_features(expr.get('features'), info)
|
|
|
self._def_entity(QAPISchemaObjectType(
|
|
|
name, info, doc, ifcond, features, base,
|
|
|
self._make_members(data, info),
|
|
@@ -1002,7 +1003,7 @@ def _def_union_type(self, expr, info, doc):
|
|
|
data = expr['data']
|
|
|
base = expr.get('base')
|
|
|
ifcond = expr.get('if')
|
|
|
- features = self._make_features(expr, info)
|
|
|
+ features = self._make_features(expr.get('features'), info)
|
|
|
tag_name = expr.get('discriminator')
|
|
|
tag_member = None
|
|
|
if isinstance(base, dict):
|
|
@@ -1032,7 +1033,7 @@ def _def_alternate_type(self, expr, info, doc):
|
|
|
name = expr['alternate']
|
|
|
data = expr['data']
|
|
|
ifcond = expr.get('if')
|
|
|
- features = self._make_features(expr, info)
|
|
|
+ features = self._make_features(expr.get('features'), info)
|
|
|
variants = [self._make_variant(key, value['type'], value.get('if'),
|
|
|
info)
|
|
|
for (key, value) in data.items()]
|
|
@@ -1052,7 +1053,7 @@ def _def_command(self, expr, info, doc):
|
|
|
allow_oob = expr.get('allow-oob', False)
|
|
|
allow_preconfig = expr.get('allow-preconfig', False)
|
|
|
ifcond = expr.get('if')
|
|
|
- features = self._make_features(expr, info)
|
|
|
+ features = self._make_features(expr.get('features'), info)
|
|
|
if isinstance(data, OrderedDict):
|
|
|
data = self._make_implicit_object_type(
|
|
|
name, info, ifcond,
|
|
@@ -1070,7 +1071,7 @@ def _def_event(self, expr, info, doc):
|
|
|
data = expr.get('data')
|
|
|
boxed = expr.get('boxed', False)
|
|
|
ifcond = expr.get('if')
|
|
|
- features = self._make_features(expr, info)
|
|
|
+ features = self._make_features(expr.get('features'), info)
|
|
|
if isinstance(data, OrderedDict):
|
|
|
data = self._make_implicit_object_type(
|
|
|
name, info, ifcond,
|