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