diff mbox series

[1/6] qapi: Tweak "command returns a nice type" check for clarity

Message ID 20191120182551.23795-2-armbru@redhat.com (mailing list archive)
State New, archived
Headers show
Series qapi: Module fixes and cleanups | expand

Commit Message

Markus Armbruster Nov. 20, 2019, 6:25 p.m. UTC
Signed-off-by: Markus Armbruster <armbru@redhat.com>
---
 scripts/qapi/schema.py | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

Comments

Eric Blake Nov. 20, 2019, 7:08 p.m. UTC | #1
On 11/20/19 12:25 PM, Markus Armbruster wrote:
> Signed-off-by: Markus Armbruster <armbru@redhat.com>
> ---
>   scripts/qapi/schema.py | 9 +++++----
>   1 file changed, 5 insertions(+), 4 deletions(-)

Reviewed-by: Eric Blake <eblake@redhat.com>

> 
> diff --git a/scripts/qapi/schema.py b/scripts/qapi/schema.py
> index cf0045f34e..cfb574c85d 100644
> --- a/scripts/qapi/schema.py
> +++ b/scripts/qapi/schema.py
> @@ -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"
>
diff mbox series

Patch

diff --git a/scripts/qapi/schema.py b/scripts/qapi/schema.py
index cf0045f34e..cfb574c85d 100644
--- a/scripts/qapi/schema.py
+++ b/scripts/qapi/schema.py
@@ -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"