aboutsummaryrefslogtreecommitdiff
path: root/scripts/qapi/schema.py
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/qapi/schema.py')
-rw-r--r--scripts/qapi/schema.py11
1 files changed, 8 insertions, 3 deletions
diff --git a/scripts/qapi/schema.py b/scripts/qapi/schema.py
index 6d5f465..b7b3fc0 100644
--- a/scripts/qapi/schema.py
+++ b/scripts/qapi/schema.py
@@ -254,9 +254,11 @@ class QAPISchemaType(QAPISchemaEntity):
def check(self, schema):
QAPISchemaEntity.check(self, schema)
- if 'deprecated' in [f.name for f in self.features]:
- raise QAPISemError(
- self.info, "feature 'deprecated' is not supported for types")
+ for feat in self.features:
+ if feat.is_special():
+ raise QAPISemError(
+ self.info,
+ f"feature '{feat.name}' is not supported for types")
def describe(self):
assert self.meta
@@ -725,6 +727,9 @@ class QAPISchemaEnumMember(QAPISchemaMember):
class QAPISchemaFeature(QAPISchemaMember):
role = 'feature'
+ def is_special(self):
+ return self.name in ('deprecated', 'unstable')
+
class QAPISchemaObjectTypeMember(QAPISchemaMember):
def __init__(self, name, info, typ, optional, ifcond=None, features=None):