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.py16
1 files changed, 9 insertions, 7 deletions
diff --git a/scripts/qapi/schema.py b/scripts/qapi/schema.py
index 0b01c841ff..e44802369d 100644
--- a/scripts/qapi/schema.py
+++ b/scripts/qapi/schema.py
@@ -843,13 +843,14 @@ class QAPISchemaCommand(QAPISchemaDefinition):
def check(self, schema):
super().check(schema)
if self._arg_type_name:
- self.arg_type = schema.resolve_type(
+ arg_type = schema.resolve_type(
self._arg_type_name, self.info, "command's 'data'")
- if not isinstance(self.arg_type, QAPISchemaObjectType):
+ if not isinstance(arg_type, QAPISchemaObjectType):
raise QAPISemError(
self.info,
"command's 'data' cannot take %s"
- % self.arg_type.describe())
+ % arg_type.describe())
+ self.arg_type = arg_type
if self.arg_type.variants and not self.boxed:
raise QAPISemError(
self.info,
@@ -866,8 +867,8 @@ class QAPISchemaCommand(QAPISchemaDefinition):
if self.name not in self.info.pragma.command_returns_exceptions:
typ = self.ret_type
if isinstance(typ, QAPISchemaArrayType):
- typ = self.ret_type.element_type
assert typ
+ typ = typ.element_type
if not isinstance(typ, QAPISchemaObjectType):
raise QAPISemError(
self.info,
@@ -903,13 +904,14 @@ class QAPISchemaEvent(QAPISchemaDefinition):
def check(self, schema):
super().check(schema)
if self._arg_type_name:
- self.arg_type = schema.resolve_type(
+ typ = schema.resolve_type(
self._arg_type_name, self.info, "event's 'data'")
- if not isinstance(self.arg_type, QAPISchemaObjectType):
+ if not isinstance(typ, QAPISchemaObjectType):
raise QAPISemError(
self.info,
"event's 'data' cannot take %s"
- % self.arg_type.describe())
+ % typ.describe())
+ self.arg_type = typ
if self.arg_type.variants and not self.boxed:
raise QAPISemError(
self.info,