qapi: Tweak "command returns a nice type" check for clarity

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Message-Id: <20191120182551.23795-2-armbru@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
This commit is contained in:
Markus Armbruster 2019-11-20 19:25:46 +01:00
parent dc65a5bdc9
commit 7e9c1707e1

View File

@ -711,10 +711,11 @@ class QAPISchemaCommand(QAPISchemaEntity):
self.ret_type = schema.resolve_type(
self._ret_type_name, self.info, "command's 'returns'")
if self.name not in self.info.pragma.returns_whitelist:
if not (isinstance(self.ret_type, QAPISchemaObjectType)
or (isinstance(self.ret_type, QAPISchemaArrayType)
and isinstance(self.ret_type.element_type,
QAPISchemaObjectType))):
typ = self.ret_type
if isinstance(typ, QAPISchemaArrayType):
typ = self.ret_type.element_type
assert typ
if not isinstance(typ, QAPISchemaObjectType):
raise QAPISemError(
self.info,
"command's 'returns' cannot take %s"