This is obscure: If we test the type on a local copy instead of the
stored state AFTER the assignment, mypy does not constrain the type of
the copy. If we test on the stored state, it works out fine.

Corrects this warning:

qapi/schema.py:887: error: "QAPISchemaType" has no attribute "element_type"

Signed-off-by: John Snow <js...@redhat.com>
---
 scripts/qapi/schema.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/scripts/qapi/schema.py b/scripts/qapi/schema.py
index 943f234ee2..09c7ceab41 100644
--- a/scripts/qapi/schema.py
+++ b/scripts/qapi/schema.py
@@ -764,7 +764,7 @@ def check(self, schema):
                 self._ret_type_name, self.info, "command's 'returns'")
             if self.name not in self.info.pragma.returns_whitelist:
                 typ = self.ret_type
-                if isinstance(typ, QAPISchemaArrayType):
+                if isinstance(self.ret_type, QAPISchemaArrayType):
                     typ = self.ret_type.element_type
                     assert typ
                 if not isinstance(typ, QAPISchemaObjectType):
-- 
2.26.2


Reply via email to